<script type="application/ld+json">{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.simcentric.com/tc/"},{"@type":"ListItem","position":2,"name":"如何在Mac上架設饑荒專用伺服器","item":"https://www.simcentric.com/tc/hong-kong-dedicated-server-tc/how-to-set-up-dont-starve-dedicated-servers-on-mac/"}]}</script> {"id":21442,"date":"2025-01-07T11:16:59","date_gmt":"2025-01-07T03:16:59","guid":{"rendered":"https:\/\/www.simcentric.com\/uncategorized-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/"},"modified":"2025-01-07T11:20:00","modified_gmt":"2025-01-07T03:20:00","slug":"how-to-set-up-dont-starve-dedicated-servers-on-mac","status":"publish","type":"post","link":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/","title":{"rendered":"\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668"},"content":{"rendered":"<p>\u672c\u7d9c\u5408\u6307\u5357\u5c07\u6307\u5c0e\u60a8\u5728Mac OS\u4e0a\u5efa\u7acb\u7a69\u5b9a\u7684<a href=\"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-configure-and-optimize-dont-starve-dedicated-server\/\" target=\"_blank\">\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668<\/a>\uff0c\u7279\u5225\u95dc\u6ce8<a href=\"https:\/\/www.simcentric.com\/tc\/products\/dedicated-server-hk\/\" target=\"_blank\">\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528<\/a>\u74b0\u5883\u7684\u7279\u6b8a\u9700\u6c42\u3002\u6211\u5011\u7684\u512a\u5316\u914d\u7f6e\u78ba\u4fdd\u4e9e\u592a\u5730\u5340\u73a9\u5bb6\u7372\u5f97\u6700\u4f4e\u5ef6\u9072\uff0c\u540c\u6642\u4fdd\u6301\u5353\u8d8a\u7684\u7a69\u5b9a\u6027\u3002<\/p>\n<div class=\"tip\">\n    <strong>\u5feb\u901f\u6982\u89bd\uff1a<\/strong><\/p>\n<p>\u672c\u6307\u5357\u6db5\u84cb\u5b8c\u6574\u7684\u4f3a\u670d\u5668\u67b6\u8a2d\u3001\u6548\u80fd\u512a\u5316\u3001\u6a21\u7d44\u7ba1\u7406\u548c\u7dad\u8b77\u6d41\u7a0b\u3002\u9810\u8a08\u67b6\u8a2d\u6642\u9593\uff1a30-45\u5206\u9418\u3002<\/p>\n<p>\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528\u7684\u4e3b\u8981\u512a\u52e2\uff1a<\/p>\n<ul>\n<li>\u4e9e\u592a\u73a9\u5bb6\u5ef6\u9072\u66f4\u4f4e\uff0820-60ms\uff09<\/li>\n<li>\u5340\u57df\u904a\u6232\u9023\u63a5\u66f4\u7a69\u5b9a<\/li>\n<li>\u91dd\u5c0d\u4e2d\u570b\u5927\u9678\u8a2a\u554f\u512a\u5316\u7684\u8def\u7531<\/li>\n<\/ul>\n<\/div>\n<h2>\u7cfb\u7d71\u8981\u6c42\u548c\u6e96\u5099\u5de5\u4f5c<\/h2>\n<p>\u5728\u958b\u59cb\u4f3a\u670d\u5668\u67b6\u8a2d\u4e4b\u524d\uff0c\u8acb\u78ba\u8a8d\u60a8\u7684Mac\u6eff\u8db3\u4ee5\u4e0b\u95dc\u9375\u898f\u683c\uff1a<\/p>\n<ul>\n<li><strong>\u4f5c\u696d\u7cfb\u7d71\uff1a<\/strong> macOS 10.15 (Catalina)\u6216\u66f4\u65b0\u7248\u672c<\/li>\n<li><strong>\u8a18\u61b6\u9ad4\uff1a<\/strong> \u6700\u4f4e4GB\u8a18\u61b6\u9ad4\uff08\u6a21\u7d44\u4f3a\u670d\u5668\u5efa\u8b708GB\uff09<\/li>\n<li><strong>\u5132\u5b58\u7a7a\u9593\uff1a<\/strong> 20GB\u53ef\u7528\u7a7a\u9593\uff08\u5efa\u8b70\u4f7f\u7528SSD\u4ee5\u7372\u5f97\u66f4\u597d\u6548\u80fd\uff09<\/li>\n<li><strong>\u7db2\u8def\uff1a<\/strong> \u7a69\u5b9a\u7684\u7db2\u8def\u9023\u63a5\uff0c\u6700\u4f4e\u4e0a\u50b3\u901f\u5ea610Mbps<\/li>\n<li><strong>Steam\u5e33\u865f\uff1a<\/strong> \u64c1\u6709\u9951\u8352\u904a\u6232\u7684\u6709\u6548\u5e33\u865f<\/li>\n<li><strong>\u6280\u8853\u8981\u6c42\uff1a<\/strong> \u57fa\u672c\u7684\u7d42\u7aef\u6a5f\u6307\u4ee4\u4f7f\u7528\u7d93\u9a57<\/li>\n<\/ul>\n<div class=\"warning\">\n    <strong>\u91cd\u8981\u6e96\u5099\u4e8b\u9805\uff1a<\/strong><\/p>\n<ul>\n<li>\u5728\u958b\u59cb\u4e4b\u524d\u5099\u4efd\u6240\u6709\u73fe\u6709\u904a\u6232\u8cc7\u6599<\/li>\n<li>\u95dc\u9589\u6240\u6709\u57f7\u884c\u4e2d\u7684\u9951\u8352\u7a0b\u5f0f<\/li>\n<li>\u78ba\u4fdd\u7d42\u7aef\u6a5f\u64c1\u6709\u5b8c\u5168\u78c1\u789f\u5b58\u53d6\u6b0a\u9650\uff08\u7cfb\u7d71\u504f\u597d\u8a2d\u5b9a \u2192 \u5b89\u5168\u6027\u8207\u96b1\u79c1 \u2192 \u96b1\u79c1\uff09<\/li>\n<li>\u6aa2\u67e5\u9632\u706b\u7246\u8a2d\u5b9a\u4ee5\u5141\u8a31\u50b3\u5165\u9023\u63a5<\/li>\n<\/ul>\n<\/div>\n<h2>\u5b89\u88dd\u524d\u6aa2\u67e5\u6e05\u55ae<\/h2>\n<div class=\"tip\">\n    <strong>\u7e7c\u7e8c\u524d\u8acb\u5b8c\u6210\u4ee5\u4e0b\u6b65\u9a5f\uff1a<\/strong><\/p>\n<ul>\n<li>\u2713 \u9a57\u8b49\u7cfb\u7d71\u6eff\u8db3\u6700\u4f4e\u8981\u6c42<\/li>\n<li>\u2713 \u5b89\u88dd\u6700\u65b0\u7684macOS\u66f4\u65b0<\/li>\n<li>\u2713 \u6aa2\u67e5\u53ef\u7528\u78c1\u789f\u7a7a\u9593<\/li>\n<li>\u2713 \u6e2c\u8a66\u7db2\u8def\u9023\u63a5\u901f\u5ea6<\/li>\n<li>\u2713 \u914d\u7f6e\u9632\u706b\u7246\u8a2d\u5b9a<\/li>\n<li>\u2713 \u9a57\u8b49Steam\u5e33\u865f\u5b58\u53d6\u6b0a\u9650<\/li>\n<\/ul>\n<\/div>\n<h2>SteamCMD\u5b89\u88dd\u6d41\u7a0b<\/h2>\n<p>\u6309\u7167\u4ee5\u4e0b\u6b65\u9a5f\u5b89\u88ddSteamCMD\uff0c\u9019\u662fSteam\u7684\u547d\u4ee4\u5217\u7248\u672c\uff0c\u6211\u5011\u5c07\u7528\u5b83\u4f86\u4e0b\u8f09\u548c\u66f4\u65b0\u4f3a\u670d\u5668\u6a94\u6848\u3002<\/p>\n<div class=\"command-block\">\n<strong>\u6b65\u9a5f1\uff1a\u5efa\u7acb\u4e26\u6e96\u5099SteamCMD\u76ee\u9304<\/strong><\/p>\n<pre><code>mkdir ~\/steamcmd\r\ncd ~\/steamcmd\r\ncurl -sqL \"https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_osx.tar.gz\" | tar zxvf -\r\nchmod +x steamcmd.sh<\/code><\/pre>\n<\/div>\n<div class=\"tip\">\n    <strong>\u5b89\u88dd\u9a57\u8b49\uff1a<\/strong><\/p>\n<p>\u57f7\u884c\u9019\u4e9b\u6307\u4ee4\u5f8c\uff0c\u8acb\u9a57\u8b49\u662f\u5426\u5b58\u5728\u4ee5\u4e0b\u6a94\u6848\uff1a<\/p>\n<ul>\n<li>steamcmd.sh\uff08\u53ef\u57f7\u884c\u6a94\uff09<\/li>\n<li>package\/steam_cmd_osx<\/li>\n<li>package\/config.vdf<\/li>\n<\/ul>\n<\/div>\n<h2>\u4f3a\u670d\u5668\u5b89\u88dd\u548c\u914d\u7f6e<\/h2>\n<div class=\"command-block\">\n<strong>\u6b65\u9a5f2\uff1a\u4e0b\u8f09\u4f3a\u670d\u5668\u6a94\u6848<\/strong><\/p>\n<pre><code># \u555f\u52d5SteamCMD\r\n.\/steamcmd.sh\r\n\r\n# \u5728SteamCMD\u4e2d\u57f7\u884c\u4ee5\u4e0b\u6307\u4ee4\r\nlogin anonymous\r\nforce_install_dir .\/ds_server\r\napp_update 343050 validate\r\nquit<\/code><\/pre>\n<\/div>\n<h2>\u4f3a\u670d\u5668\u8a2d\u5b9a\u914d\u7f6e<\/h2>\n<p>\u5efa\u7acb\u4e26\u914d\u7f6e\u5fc5\u8981\u7684\u4f3a\u670d\u5668\u76ee\u9304\u548c\u8a2d\u5b9a\u6a94\u6848\u3002<\/p>\n<div class=\"command-block\">\n<strong>\u6b65\u9a5f3\uff1a\u5efa\u7acb\u914d\u7f6e\u76ee\u9304<\/strong><\/p>\n<pre><code>cd ~\/steamcmd\/ds_server\/data\r\nmkdir -p ~\/.klei\/DoNotStarve\r\nmkdir -p ~\/.klei\/DoNotStarve\/MyCluster\/Master<\/code><\/pre>\n<\/div>\n<p>\u5728\u60a8\u7684\u53e2\u96c6\u76ee\u9304\u4e2d\u5efa\u7acb\u4e00\u500b\u540d\u70ba&#8217;cluster.ini&#8217;\u7684\u65b0\u914d\u7f6e\u6a94\u6848\uff0c\u4f7f\u7528\u4ee5\u4e0b\u512a\u5316\u8a2d\u5b9a\uff1a<\/p>\n<div class=\"command-block\">\n<pre><code>[GAMEPLAY]\r\ngame_mode = endless\r\nmax_players = 6\r\npvp = false\r\npause_when_empty = true\r\nvote_enabled = true\r\n\r\n[NETWORK]\r\ncluster_name = \u9999\u6e2f\u9951\u8352\u4f3a\u670d\u5668\r\ncluster_description = \u91dd\u5c0d\u4e9e\u592a\u73a9\u5bb6\u512a\u5316\r\ncluster_password = yourpassword\r\ncluster_language = en\r\nautosaver_enabled = true\r\ntick_rate = 15\r\nconnection_timeout = 8000\r\n\r\n[STEAM]\r\nsteam_group_only = false\r\nsteam_group_id = 0\r\nsteam_group_admins = false\r\n\r\n[MISC]\r\nconsole_enabled = true\r\nmax_snapshots = 6\r\n\r\n[SHARD]\r\nshard_enabled = true\r\nbind_ip = 127.0.0.1\r\nmaster_ip = 127.0.0.1\r\nmaster_port = 10888\r\ncluster_key = yourclusterkey123<\/code><\/pre>\n<\/div>\n<div class=\"warning\">\n    <strong>\u5b89\u5168\u6ce8\u610f\u4e8b\u9805\uff1a<\/strong><\/p>\n<p>\u8acb\u8a18\u5f97\u66f4\u6539\u4ee5\u4e0b\u9810\u8a2d\u503c\uff1a<\/p>\n<ul>\n<li>cluster_password\uff1a\u8a2d\u5b9a\u5f37\u4f3a\u670d\u5668\u5bc6\u78bc<\/li>\n<li>cluster_key\uff1a\u7522\u751f\u7368\u7279\u7684\u53e2\u96c6\u91d1\u9470<\/li>\n<li>bind_ip\uff1a\u5982\u679c\u516c\u958b\u8a17\u7ba1\uff0c\u66f4\u6539\u70ba\u60a8\u7684\u4f3a\u670d\u5668IP<\/li>\n<\/ul>\n<\/div>\n<h2>\u4f3a\u670d\u5668\u555f\u52d5\u914d\u7f6e<\/h2>\n<p>\u5efa\u7acb\u4e00\u500b\u555f\u52d5\u8173\u672c\uff0c\u4f7f\u7528\u6700\u4f73\u53c3\u6578\u555f\u52d5\u60a8\u7684\u4f3a\u670d\u5668\u3002<\/p>\n<div class=\"command-block\">\n<strong>\u6b65\u9a5f4\uff1a\u5efa\u7acbstart_server.sh<\/strong><\/p>\n<pre><code>#!\/bin\/bash\r\ncd ~\/steamcmd\/ds_server\/bin\r\n\r\n# \u8a2d\u5b9a\u74b0\u5883\u8b8a\u6578\r\nexport FPS=30\r\nexport PROMETHEUS_METRICS=1\r\n\r\n# \u4f7f\u7528\u6700\u4f73\u53c3\u6578\u555f\u52d5\u4f3a\u670d\u5668\r\n.\/dontstarve_dedicated_server_nullrenderer \\\r\n-console \\\r\n-cluster MyCluster \\\r\n-shard Master \\\r\n-monitor_parent_process $$ \\\r\n-backup_logs \\\r\n-persistent_storage_root ~\/.klei<\/code><\/pre>\n<\/div>\n<div class=\"tip\">\n    <strong>\u555f\u52d5\u8173\u672c\u914d\u7f6e\uff1a<\/strong><\/p>\n<p>\u8a2d\u5b9a\u8173\u672c\u53ef\u57f7\u884c\u6b0a\u9650\u4e26\u914d\u7f6e\u6b63\u78ba\u7684\u6b0a\u9650\uff1a<\/p>\n<pre><code>chmod +x start_server.sh\r\nchmod -R 755 ~\/.klei\/DoNotStarve<\/code><\/pre>\n<\/div>\n<h2>\u7db2\u8def\u914d\u7f6e<\/h2>\n<p>\u914d\u7f6e\u7db2\u8def\u8a2d\u5b9a\u4ee5\u7372\u5f97\u6700\u4f73\u6548\u80fd\uff0c\u9019\u5c0d\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528\u5c24\u70ba\u91cd\u8981\u3002<\/p>\n<div class=\"command-block\">\n<strong>\u9700\u8981\u958b\u653e\u7684\u9023\u63a5\u57e0\uff1a<\/strong><\/p>\n<pre><code># \u6dfb\u52a0\u5230\u60a8\u7684\u8def\u7531\u5668\/\u9632\u706b\u7246\u914d\u7f6e\u4e2d\r\nTCP: 10999 (\u904a\u6232\u9023\u63a5\u57e0)\r\nUDP: 10999 (\u904a\u6232\u9023\u63a5\u57e0)\r\nTCP: 8768  (Steam\u8a8d\u8b49)\r\nTCP: 27016 (\u4e3b\u4f3a\u670d\u5668\u9023\u63a5\u57e0)\r\nUDP: 27016 (\u4e3b\u4f3a\u670d\u5668\u9023\u63a5\u57e0)<\/code><\/pre>\n<\/div>\n<h2>\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528\u6548\u80fd\u512a\u5316<\/h2>\n<p>\u5be6\u65bd\u9019\u4e9b\u5c08\u9580\u7684\u512a\u5316\u63aa\u65bd\u4f86\u63d0\u5347\u4e9e\u592a\u5730\u5340\u73a9\u5bb6\u7684\u4f3a\u670d\u5668\u6548\u80fd\u3002<\/p>\n<div class=\"command-block\">\n<strong>\u9032\u968e\u7db2\u8def\u914d\u7f6e<\/strong><\/p>\n<pre><code># \u6dfb\u52a0\u5230\/etc\/sysctl.conf\u4ee5\u7372\u5f97\u6700\u4f73\u7db2\u8def\u6548\u80fd\r\nnet.ipv4.tcp_fastopen = 3\r\nnet.ipv4.tcp_slow_start_after_idle = 0\r\nnet.ipv4.tcp_keepalive_time = 60\r\nnet.ipv4.tcp_max_syn_backlog = 4096\r\nnet.ipv4.tcp_rmem = 4096 87380 16777216\r\nnet.ipv4.tcp_wmem = 4096 87380 16777216<\/code><\/pre>\n<\/div>\n<div class=\"tip\">\n    <strong>\u5340\u57df\u6548\u80fd\u63d0\u793a\uff1a<\/strong><\/p>\n<ul>\n<li>\u914d\u7f6eCDN\u8a2d\u5b9a\u4ee5\u52a0\u5feb\u8cc7\u6e90\u50b3\u905e<\/li>\n<li>\u4f7f\u7528\u9999\u6e2f\u672c\u5730DNS\u4f3a\u670d\u5668\u4ee5\u964d\u4f4e\u5ef6\u9072<\/li>\n<li>\u5be6\u65bd\u9069\u7576\u7684TCP\u64c1\u585e\u63a7\u5236<\/li>\n<li>\u5982\u679c\u53ef\u7528\uff0c\u555f\u7528BBR\u64c1\u585e\u63a7\u5236<\/li>\n<\/ul>\n<\/div>\n<h2>\u8a18\u61b6\u9ad4\u548cCPU\u512a\u5316<\/h2>\n<div class=\"command-block\">\n<strong>\u7cfb\u7d71\u8cc7\u6e90\u7ba1\u7406<\/strong><\/p>\n<pre><code># \u5efa\u7acb\u8cc7\u6e90\u7ba1\u7406\u8173\u672c (resource_manager.sh)\r\n#!\/bin\/bash\r\n\r\n# \u8a2d\u5b9a\u7a0b\u5e8f\u512a\u5148\u9806\u5e8f\r\nsudo renice -n -5 -p $(pgrep -f dontstarve_dedicated_server)\r\n\r\n# \u8a2d\u5b9aCPU\u89aa\u548c\u6027\uff08\u5982\u679c\u6709\u591a\u500b\u6838\u5fc3\uff09\r\ntaskset -pc 0-3 $(pgrep -f dontstarve_dedicated_server)\r\n\r\n# \u9650\u5236\u8a18\u61b6\u9ad4\u4f7f\u7528\r\nulimit -v 8388608 # \u5c07\u865b\u64ec\u8a18\u61b6\u9ad4\u9650\u5236\u70ba8GB<\/code><\/pre>\n<\/div>\n<h2>\u6a21\u7d44\u6574\u5408\u8207\u7ba1\u7406<\/h2>\n<p>\u6b63\u78ba\u914d\u7f6e\u548c\u7ba1\u7406\u4f3a\u670d\u5668\u6a21\u7d44\u4ee5\u7372\u5f97\u6700\u4f73\u6548\u80fd\u3002<\/p>\n<div class=\"command-block\">\n<strong>\u5efa\u7acbmodoverrides.lua<\/strong><\/p>\n<pre><code>-- ~\/.klei\/DoNotStarve\/MyCluster\/Master\/modoverrides.lua\r\nreturn {\r\n    -- \u6a21\u7d44\u914d\u7f6e\u7bc4\u4f8b\r\n    [\"workshop-462434129\"]={ -- \u4f3a\u670d\u5668API\u5de5\u5177\r\n        configuration_options = {\r\n            [\"Restart_Interval\"] = 0,\r\n            [\"Auto_Restart\"] = true,\r\n            [\"Backup_Interval\"] = 120\r\n        },\r\n        enabled = true\r\n    },\r\n    [\"workshop-378160973\"]={ -- \u5168\u7403\u4f4d\u7f6e\r\n        configuration_options = {\r\n            SHOWPLAYERSOPTIONS = 1,\r\n            FIREOPTIONS = 1,\r\n            OVERRIDEMODE = false,\r\n            SHAREMINIMAPPROGRESS = true\r\n        },\r\n        enabled = true\r\n    }\r\n}<\/code><\/pre>\n<\/div>\n<div class=\"warning\">\n    <strong>\u6a21\u7d44\u6548\u80fd\u6ce8\u610f\u4e8b\u9805\uff1a<\/strong><\/p>\n<ul>\n<li>\u9650\u5236\u6a21\u7d44\u7e3d\u6578\u4ee5\u7dad\u6301\u4f3a\u670d\u5668\u7a69\u5b9a\u6027<\/li>\n<li>\u90e8\u7f72\u524d\u55ae\u7368\u6e2c\u8a66\u6bcf\u500b\u6a21\u7d44<\/li>\n<li>\u76e3\u63a7\u6a21\u7d44\u5c0d\u4f3a\u670d\u5668\u6548\u80fd\u7684\u5f71\u97ff<\/li>\n<li>\u4fdd\u6301\u6a21\u7d44\u66f4\u65b0\u5230\u6700\u65b0\u7248\u672c<\/li>\n<\/ul>\n<\/div>\n<h2>\u6548\u80fd\u76e3\u63a7\u5de5\u5177<\/h2>\n<div class=\"command-block\">\n<strong>\u5efa\u7acb\u76e3\u63a7\u8173\u672c (monitor.sh)<\/strong><\/p>\n<pre><code>#!\/bin\/bash\r\n\r\n# \u4f3a\u670d\u5668\u76e3\u63a7\u8173\u672c\r\nwhile true; do\r\n    echo \"=== \u4f3a\u670d\u5668\u72c0\u614b\u6aa2\u67e5 $(date) ===\"\r\n    \r\n    # \u6aa2\u67e5CPU\u4f7f\u7528\u7387\r\n    ps aux | grep dontstarve_dedicated_server | grep -v grep\r\n    \r\n    # \u6aa2\u67e5\u8a18\u61b6\u9ad4\u4f7f\u7528\u60c5\u6cc1\r\n    memory_usage=$(ps -o rss= -p $(pgrep -f dontstarve_dedicated_server))\r\n    echo \"\u8a18\u61b6\u9ad4\u4f7f\u7528\u91cf: $((memory_usage\/1024)) MB\"\r\n    \r\n    # \u6aa2\u67e5\u7db2\u8def\u9023\u7dda\r\n    netstat -tunap 2>\/dev\/null | grep dontstarve_dedicated_server\r\n    \r\n    # \u6aa2\u67e5\u78c1\u789f\u7a7a\u9593\r\n    df -h ~\/.klei\/DoNotStarve\r\n    \r\n    # \u8a18\u9304\u7d50\u679c\r\n    echo \"----------------------------\"\r\n    sleep 300 # \u6bcf5\u5206\u9418\u6aa2\u67e5\u4e00\u6b21\r\ndone<\/code><\/pre>\n<\/div>\n<h2>\u9032\u968e\u6548\u80fd\u8abf\u6821<\/h2>\n<div class=\"command-block\">\n<strong>\u5efa\u7acb\u6548\u80fd\u8abf\u6821\u8173\u672c (tune_performance.sh)<\/strong><\/p>\n<pre><code>#!\/bin\/bash\r\n\r\n# \u512a\u5316\u78c1\u789fI\/O\r\nsudo blockdev --setra 4096 \/dev\/sda\r\n\r\n# \u914d\u7f6eTCP BBR\r\necho \"net.core.default_qdisc=fq\" | sudo tee -a \/etc\/sysctl.conf\r\necho \"net.ipv4.tcp_congestion_control=bbr\" | sudo tee -a \/etc\/sysctl.conf\r\nsudo sysctl -p\r\n\r\n# \u512a\u5316\u7db2\u8def\u7de9\u885d\u5340\r\necho \"net.core.rmem_max=16777216\" | sudo tee -a \/etc\/sysctl.conf\r\necho \"net.core.wmem_max=16777216\" | sudo tee -a \/etc\/sysctl.conf\r\necho \"net.ipv4.tcp_rmem=4096 87380 16777216\" | sudo tee -a \/etc\/sysctl.conf\r\necho \"net.ipv4.tcp_wmem=4096 87380 16777216\" | sudo tee -a \/etc\/sysctl.conf\r\n\r\n# \u5957\u7528\u8b8a\u66f4\r\nsudo sysctl -p<\/code><\/pre>\n<\/div>\n<div class=\"tip\">\n    <strong>\u6548\u80fd\u76e3\u63a7\u6307\u6a19\uff1a<\/strong><\/p>\n<ul>\n<li>\u4f3a\u670d\u5668\u56de\u61c9\u6642\u9593\uff1a\u76ee\u6a19 < 100ms<\/li>\n<li>CPU\u4f7f\u7528\u7387\uff1a\u6301\u7e8c < 80%<\/li>\n<li>\u8a18\u61b6\u9ad4\u4f7f\u7528\uff1a\u6a21\u7d44\u4f3a\u670d\u5668 < 6GB<\/li>\n<li>\u7db2\u8def\u5ef6\u9072\uff1a\u4e9e\u592a\u5730\u5340 < 150ms<\/li>\n<li>\u78c1\u789fI\/O\uff1a\u76e3\u63a7\u6548\u80fd\u74f6\u9838<\/li>\n<\/ul>\n<\/div>\n<h2>\u4f3a\u670d\u5668\u7dad\u8b77\u548c\u5099\u4efd\u7cfb\u7d71<\/h2>\n<div class=\"command-block\">\n<strong>\u5efa\u7acb\u81ea\u52d5\u5099\u4efd\u8173\u672c (backup_system.sh)<\/strong><\/p>\n<pre><code>#!\/bin\/bash\r\n\r\n# \u914d\u7f6e\r\nBACKUP_DIR=\"$HOME\/ds_backups\"\r\nSERVER_DIR=\"$HOME\/.klei\/DoNotStarve\"\r\nMAX_BACKUPS=5\r\nTIMESTAMP=$(date +\"%Y%m%d_%H%M%S\")\r\n\r\n# \u5982\u679c\u5099\u4efd\u76ee\u9304\u4e0d\u5b58\u5728\u5247\u5efa\u7acb\r\nmkdir -p \"$BACKUP_DIR\"\r\n\r\n# \u5efa\u7acb\u5099\u4efd\r\ntar -czf \"$BACKUP_DIR\/backup_$TIMESTAMP.tar.gz\" -C \"$SERVER_DIR\" .\r\n\r\n# \u8f2a\u66ff\u820a\u5099\u4efd\r\nls -t \"$BACKUP_DIR\"\/backup_*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs -r rm\r\n\r\n# \u8a18\u9304\u5099\u4efd\u5b8c\u6210\r\necho \"\u5099\u4efd\u5b8c\u6210: backup_$TIMESTAMP.tar.gz\" >> \"$BACKUP_DIR\/backup.log\"<\/code><\/pre>\n<\/div>\n<h2>\u81ea\u52d5\u7dad\u8b77\u6392\u7a0b<\/h2>\n<div class=\"command-block\">\n<strong>\u5efa\u7acb\u7dad\u8b77\u8173\u672c (maintenance_scheduler.sh)<\/strong><\/p>\n<pre><code>#!\/bin\/bash\r\n\r\n# \u914d\u7f6e\r\nLOG_FILE=\"$HOME\/ds_maintenance.log\"\r\nNOTIFICATION_EMAIL=\"admin@example.com\"\r\n\r\nlog_message() {\r\n    echo \"[$(date '+%Y-%m-%d %H:%M:%S')] $1\" >> \"$LOG_FILE\"\r\n}\r\n\r\nperform_maintenance() {\r\n    log_message \"\u958b\u59cb\u7dad\u8b77\u4f8b\u884c\u7a0b\u5e8f\"\r\n\r\n    # \u512a\u96c5\u5730\u505c\u6b62\u4f3a\u670d\u5668\r\n    .\/stop_server.sh\r\n    sleep 30\r\n\r\n    # \u5099\u4efd\u4f3a\u670d\u5668\u6a94\u6848\r\n    .\/backup_system.sh\r\n\r\n    # \u66f4\u65b0\u4f3a\u670d\u5668\u6a94\u6848\r\n    cd ~\/steamcmd\r\n    .\/steamcmd.sh +login anonymous +force_install_dir .\/ds_server +app_update 343050 validate +quit\r\n\r\n    # \u6e05\u7406\u820a\u65e5\u8a8c\r\n    find ~\/.klei\/DoNotStarve -name \"*.log\" -mtime +7 -delete\r\n\r\n    # \u91cd\u65b0\u555f\u52d5\u4f3a\u670d\u5668\r\n    .\/start_server.sh\r\n\r\n    log_message \"\u7dad\u8b77\u5b8c\u6210\"\r\n}\r\n\r\n# \u57f7\u884c\u7dad\u8b77\r\nperform_maintenance 2>&1 | tee -a \"$LOG_FILE\"<\/code><\/pre>\n<\/div>\n<h2>\u76e3\u63a7\u548c\u8b66\u5831\u7cfb\u7d71<\/h2>\n<div class=\"command-block\">\n<strong>\u5efa\u7acb\u76e3\u63a7\u8173\u672c (server_monitor.sh)<\/strong><\/p>\n<pre><code>#!\/bin\/bash\r\n\r\n# \u914d\u7f6e\r\nALERT_THRESHOLD_CPU=80\r\nALERT_THRESHOLD_MEM=90\r\nALERT_THRESHOLD_DISK=85\r\n\r\ncheck_server_health() {\r\n    # \u6aa2\u67e5CPU\u4f7f\u7528\u7387\r\n    CPU_USAGE=$(ps aux | grep dontstarve_dedicated_server | grep -v grep | awk '{print $3}')\r\n    \r\n    # \u6aa2\u67e5\u8a18\u61b6\u9ad4\u4f7f\u7528\u7387\r\n    MEM_USAGE=$(free | grep Mem | awk '{print $3\/$2 * 100.0}')\r\n    \r\n    # \u6aa2\u67e5\u78c1\u789f\u4f7f\u7528\u7387\r\n    DISK_USAGE=$(df -h ~\/.klei\/DoNotStarve | tail -1 | awk '{print $5}' | sed 's\/%\/\/')\r\n    \r\n    # \u8d85\u904e\u95be\u503c\u6642\u767c\u51fa\u8b66\u5831\r\n    if (( $(echo \"$CPU_USAGE > $ALERT_THRESHOLD_CPU\" | bc -l) )); then\r\n        send_alert \"CPU\u4f7f\u7528\u7387\u8b66\u544a: ${CPU_USAGE}%\"\r\n    fi\r\n    \r\n    if (( $(echo \"$MEM_USAGE > $ALERT_THRESHOLD_MEM\" | bc -l) )); then\r\n        send_alert \"\u8a18\u61b6\u9ad4\u4f7f\u7528\u7387\u8b66\u544a: ${MEM_USAGE}%\"\r\n    fi\r\n    \r\n    if [ \"$DISK_USAGE\" -gt \"$ALERT_THRESHOLD_DISK\" ]; then\r\n        send_alert \"\u78c1\u789f\u4f7f\u7528\u7387\u8b66\u544a: ${DISK_USAGE}%\"\r\n    fi\r\n}\r\n\r\nsend_alert() {\r\n    echo \"[\u8b66\u5831] $1\" >> \"$HOME\/ds_alerts.log\"\r\n    # \u5728\u6b64\u6dfb\u52a0\u60a8\u504f\u597d\u7684\u8b66\u5831\u65b9\u5f0f\uff08\u90f5\u4ef6\u3001\u7c21\u8a0a\u7b49\uff09\r\n}<\/code><\/pre>\n<\/div>\n<h2>\u6545\u969c\u6392\u9664\u6307\u5357<\/h2>\n<div class=\"warning\">\n    <strong>\u5e38\u898b\u554f\u984c\u548c\u89e3\u6c7a\u65b9\u6848\uff1a<\/strong><\/p>\n<ul>\n<li><strong>\u4f3a\u670d\u5668\u7576\u6a5f\uff1a<\/strong>\n<pre><code># \u6aa2\u67e5\u932f\u8aa4\u65e5\u8a8c\r\ntail -f ~\/.klei\/DoNotStarve\/server_log.txt\r\n\r\n# \u91cd\u8a2d\u4f3a\u670d\u5668\u6a94\u6848\r\ncd ~\/steamcmd\r\n.\/steamcmd.sh +login anonymous +force_install_dir .\/ds_server +app_update 343050 validate +quit<\/code><\/pre>\n<\/li>\n<li><strong>\u6548\u80fd\u554f\u984c\uff1a<\/strong>\n<pre><code># \u6e05\u7406\u4f3a\u670d\u5668\u5feb\u53d6\r\nrm -rf ~\/.klei\/DoNotStarve\/cache\/*\r\n\r\n# \u91cd\u8a2d\u4e16\u754c\u72c0\u614b\r\nrm -rf ~\/.klei\/DoNotStarve\/MyCluster\/Master\/save\/*<\/code><\/pre>\n<\/li>\n<li><strong>\u9023\u7dda\u554f\u984c\uff1a<\/strong>\n<pre><code># \u6aa2\u67e5\u7db2\u8def\u72c0\u614b\r\nnetstat -tunap | grep 10999\r\nsudo tcpdump -i any port 10999<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/div>\n<h2>\u5b89\u5168\u63aa\u65bd<\/h2>\n<div class=\"command-block\">\n<strong>\u5b89\u5168\u914d\u7f6e (security_setup.sh)<\/strong><\/p>\n<pre><code>#!\/bin\/bash\r\n\r\n# \u914d\u7f6e\u9632\u706b\u7246\u898f\u5247\r\nsudo iptables -A INPUT -p tcp --dport 10999 -j ACCEPT\r\nsudo iptables -A INPUT -p udp --dport 10999 -j ACCEPT\r\nsudo iptables -A INPUT -p tcp --dport 8768 -j ACCEPT\r\nsudo iptables -A INPUT -p tcp --dport 27016 -j ACCEPT\r\n\r\n# \u8a2d\u5b9a\u6a94\u6848\u6b0a\u9650\r\nchmod 750 ~\/.klei\/DoNotStarve\r\nchmod 640 ~\/.klei\/DoNotStarve\/cluster.ini\r\n\r\n# \u555f\u7528\u65e5\u8a8c\u8a18\u9304\r\nsudo iptables -A INPUT -p tcp --dport 10999 -j LOG --log-prefix \"DS_SERVER:\"<\/code><\/pre>\n<\/div>\n<h2>\u7e3d\u7d50<\/h2>\n<p>\u900f\u904e\u4ee5\u4e0a\u914d\u7f6e\u548c\u7dad\u8b77\u7a0b\u5e8f\uff0c\u60a8\u7684\u9951\u8352\u4f3a\u670d\u5668\u61c9\u8a72\u80fd\u70ba\u4e9e\u592a\u5730\u5340\u7684\u73a9\u5bb6\u63d0\u4f9b\u7a69\u5b9a\u548c\u512a\u5316\u7684\u904a\u6232\u9ad4\u9a57\u3002\u5b9a\u671f\u76e3\u63a7\u548c\u7dad\u8b77\u662f\u78ba\u4fdd\u6301\u7e8c\u6548\u80fd\u7684\u95dc\u9375\u3002<\/p>\n<div class=\"tip\">\n    <strong>\u6700\u7d42\u5efa\u8b70\uff1a<\/strong><\/p>\n<ul>\n<li>\u5b9a\u671f\u6aa2\u67e5\u4f3a\u670d\u5668\u65e5\u8a8c\u4ee5\u767c\u73fe\u6f5b\u5728\u554f\u984c<\/li>\n<li>\u5c07\u6240\u6709\u8173\u672c\u548c\u914d\u7f6e\u7f6e\u65bc\u7248\u672c\u63a7\u5236\u4e4b\u4e0b<\/li>\n<li>\u7dad\u8b77\u4efb\u4f55\u81ea\u8a02\u4fee\u6539\u7684\u6587\u4ef6\u8a18\u9304<\/li>\n<li>\u5b89\u6392\u5b9a\u671f\u6548\u80fd\u5be9\u67e5<\/li>\n<li>\u4fdd\u6301\u5099\u4efd\u7cfb\u7d71\u81ea\u52d5\u5316\u4e26\u5b9a\u671f\u9a57\u8b49<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7d9c\u5408\u6307\u5357\u5c07\u6307\u5c0e\u60a8\u5728Mac OS\u4e0a\u5efa\u7acb\u7a69\u5b9a\u7684\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668\uff0c\u7279\u5225\u95dc\u6ce8\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528\u74b0\u5883\u7684\u7279\u6b8a\u9700\u6c42\u3002\u6211\u5011\u7684\u512a\u5316\u914d [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":3,"featured_media":21434,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[61],"tags":[5840,5828,4624,2152,259],"class_list":["post-21442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hong-kong-dedicated-server-tc","tag-dont-starve-server-mac-tc-2","tag-mac-gaming-server-tc","tag-ds-server-setup-tc","tag-game-server-hosting-tc","tag-259"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668<\/title>\n<meta name=\"description\" content=\"Mac OS\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668\u67b6\u8a2d\u8207\u512a\u5316\u5b8c\u6574\u6307\u5357\u3002\u5305\u542b\u6548\u80fd\u8abf\u512a\u3001\u6a21\u7d44\u914d\u7f6e\u4ee5\u53ca\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528\u5c08\u696d\u5efa\u8b70\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/21442\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"company\" \/>\n<meta property=\"og:title\" content=\"\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/21442\" \/>\n<meta property=\"og:site_name\" content=\"\u65b0\u5929\u57df\u4e92\u806f\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-07T03:16:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-07T03:20:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.simcentric.com\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-07-111440.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"610\" \/>\n\t<meta property=\"og:image:height\" content=\"341\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668","description":"Mac OS\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668\u67b6\u8a2d\u8207\u512a\u5316\u5b8c\u6574\u6307\u5357\u3002\u5305\u542b\u6548\u80fd\u8abf\u512a\u3001\u6a21\u7d44\u914d\u7f6e\u4ee5\u53ca\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528\u5c08\u696d\u5efa\u8b70\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/21442","og_locale":"zh_TW","og_type":"company","og_title":"\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668","og_url":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/21442","og_site_name":"\u65b0\u5929\u57df\u4e92\u806f","article_published_time":"2025-01-07T03:16:59+00:00","article_modified_time":"2025-01-07T03:20:00+00:00","og_image":[{"width":610,"height":341,"url":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-07-111440.jpg","type":"image\/jpeg"}],"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/#article","isPartOf":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/"},"author":{"name":"Felix Cheung","@id":"https:\/\/simcentric.com\/tc\/#\/schema\/person\/2865b3454f789caf7083a203799d4a6d"},"headline":"\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668","datePublished":"2025-01-07T03:16:59+00:00","dateModified":"2025-01-07T03:20:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/"},"wordCount":72,"publisher":{"@id":"https:\/\/simcentric.com\/tc\/#organization"},"image":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/#primaryimage"},"thumbnailUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-07-111440.jpg","keywords":["\u9951\u8352\u4f3a\u670d\u5668 mac","mac\u904a\u6232\u4f3a\u670d\u5668","\u9951\u8352\u4f3a\u670d\u5668\u67b6\u8a2d","\u904a\u6232\u4f3a\u670d\u5668\u8a17\u7ba1","\u9999\u6e2f\u4f3a\u670d\u5668"],"articleSection":["\u9999\u6e2f\u4f3a\u670d\u5668"],"inLanguage":"zh-HK"},{"@type":"WebPage","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/","url":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/","name":"\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668","isPartOf":{"@id":"https:\/\/simcentric.com\/tc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/#primaryimage"},"image":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/#primaryimage"},"thumbnailUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-07-111440.jpg","datePublished":"2025-01-07T03:16:59+00:00","dateModified":"2025-01-07T03:20:00+00:00","description":"Mac OS\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668\u67b6\u8a2d\u8207\u512a\u5316\u5b8c\u6574\u6307\u5357\u3002\u5305\u542b\u6548\u80fd\u8abf\u512a\u3001\u6a21\u7d44\u914d\u7f6e\u4ee5\u53ca\u9999\u6e2f\u4f3a\u670d\u5668\u79df\u7528\u5c08\u696d\u5efa\u8b70\u3002","breadcrumb":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/#breadcrumb"},"inLanguage":"zh-HK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/"]}]},{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/#primaryimage","url":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-07-111440.jpg","contentUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2025\/01\/Screenshot-2025-01-07-111440.jpg","width":610,"height":341},{"@type":"BreadcrumbList","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-set-up-dont-starve-dedicated-servers-on-mac\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.simcentric.com\/tc\/"},{"@type":"ListItem","position":2,"name":"\u5982\u4f55\u5728Mac\u4e0a\u67b6\u8a2d\u9951\u8352\u5c08\u7528\u4f3a\u670d\u5668"}]},{"@type":"WebSite","@id":"https:\/\/simcentric.com\/tc\/#website","url":"https:\/\/simcentric.com\/tc\/","name":"Simcentric Solutions","description":"","publisher":{"@id":"https:\/\/simcentric.com\/tc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simcentric.com\/tc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-HK"},{"@type":"Organization","@id":"https:\/\/simcentric.com\/tc\/#organization","name":"Simcentric Solutions","url":"https:\/\/simcentric.com\/tc\/","logo":{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/simcentric.com\/tc\/#\/schema\/logo\/image\/","url":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2023\/06\/sim-logo-2023.png","contentUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2023\/06\/sim-logo-2023.png","width":800,"height":222,"caption":"Simcentric Solutions"},"image":{"@id":"https:\/\/simcentric.com\/tc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/simcentric.com\/tc\/#\/schema\/person\/2865b3454f789caf7083a203799d4a6d","name":"Felix Cheung","image":{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/secure.gravatar.com\/avatar\/836e6f2be80c47f0897198ffea03fae331dad9aaafbc988c752691eb595e0e2f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/836e6f2be80c47f0897198ffea03fae331dad9aaafbc988c752691eb595e0e2f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/836e6f2be80c47f0897198ffea03fae331dad9aaafbc988c752691eb595e0e2f?s=96&d=mm&r=g","caption":"Felix Cheung"}}]}},"_links":{"self":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/21442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/comments?post=21442"}],"version-history":[{"count":2,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/21442\/revisions"}],"predecessor-version":[{"id":21452,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/21442\/revisions\/21452"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/media\/21434"}],"wp:attachment":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/media?parent=21442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/categories?post=21442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/tags?post=21442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}