本文只讲 Linux 系统开服。用 Windows 的朋友请转:《饥荒联机版开服保姆级教程(Windows版)》→ https://z0w.cn/wiki/dst-server-guide-windows.html
Linux 系统准备见:《Linux 云服务器开服通用前置教程》→ https://z0w.cn/wiki/linux-gameserver-setup.html
DST 在 Linux 上是官方原生支持的,用 dontstarve_dedicated_server_nullrenderer 跑,稳定性很好,是最适合长期挂服的方案之一。
一、开服前必读:三个坑
坑 1:必须先拿 cluster_token.txt
去 https://accounts.kleistation.com/account/game/servers 免费生成集群令牌,没有它服务端起不来。
坑 2:地上和洞穴是两个进程
需要分别启动,分别占用端口(10999 和 10998)。
坑 3:依赖 32 位库
64 位 Linux 需要装 i386 运行库,否则启动报缺 libcurl.so.4。
二、配置与端口规划
| 项目 | 要求 |
|---|---|
| 系统 | Ubuntu 22.04 / Debian 12 |
| CPU | 2 核 |
| 内存 | 单地上:2G | 地上+洞穴:3-4G |
| 硬盘 | 10G |
端口表:
| 端口 | 协议 | 用途 |
|---|---|---|
| 10999 | UDP | 地上世界 |
| 10998 | UDP | 洞穴 |
| 27016-27018 | UDP | Steam 查询 |
| 8766-8768 | UDP | Steam 认证 |
| 10889 | — | 内部通信(不用对外) |
三、安装依赖
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 libcurl4-gnutls-dev:i386 screen创建专用用户:
sudo useradd -m -s /bin/bash dst
sudo passwd dst
sudo su - dst四、SteamCMD 下载服务端
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +quit
./steamcmd.sh +force_install_dir /home/dst/dstserver +login anonymous +app_update 343050 validate +quit装完后确认二进制位置:
ls -lh /home/dst/dstserver/bin/五、建立存档目录结构
mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1/Master
mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1/Caves
cd ~/.klei/DoNotStarveTogether/Cluster_1把从 Klei 官网下载的 cluster_token.txt 放到这个目录。没有图形界面的话,在本地下载后用 scp 传上来:
scp cluster_token.txt dst@服务器IP:~/.klei/DoNotStarveTogether/Cluster_1/六、编辑 cluster.ini
nano ~/.klei/DoNotStarveTogether/Cluster_1/cluster.ini[GAMEPLAY]
game_mode = survival
max_players = 6
pvp = false
pause_when_empty = true
[NETWORK]
cluster_name = 我的饥荒服
cluster_description = 和朋友一起生存
cluster_password = 你的密码
cluster_intention = cooperative
tick_rate = 30
offline_cluster = false
[MISC]
console_enabled = true
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10889
cluster_key = dstClusterKey七、编辑两个 shard 配置
Master/server.ini(地上):
[SHARD]
is_master = true
name = Master
[NETWORK]
server_port = 10999
[STEAM]
master_server_port = 27016
authentication_port = 8766Caves/server.ini(洞穴):
[SHARD]
is_master = false
name = Caves
[NETWORK]
server_port = 10998
[STEAM]
master_server_port = 27017
authentication_port = 8767八、启动脚本
创建 /home/dst/start_dst.sh:
#!/bin/bash
DST_DIR="/home/dst/dstserver/bin"
CLUSTER="Cluster_1"
cd "$DST_DIR"
# 启动地上
screen -dmS dst_master ./dontstarve_dedicated_server_nullrenderer -console -cluster "$CLUSTER" -shard Master
sleep 15
# 启动洞穴
screen -dmS dst_caves ./dontstarve_dedicated_server_nullrenderer -console -cluster "$CLUSTER" -shard Caves
echo "已启动。用 screen -r dst_master / screen -r dst_caves 查看控制台"chmod +x /home/dst/start_dst.sh
/home/dst/start_dst.sh查看状态:
screen -ls
screen -r dst_master # Ctrl+A 再按 D 退出查看九、放行端口
sudo ufw allow 10999/udp
sudo ufw allow 10998/udp
sudo ufw allow 27016:27018/udp
sudo ufw allow 8766:8768/udp
sudo ufw reloadNAT 型服务器还要在服务商控制台映射。详见:《NAT 端口映射完全指南》→ https://z0w.cn/wiki/nat-port-forwarding-guide.html
十、开机自启
创建 /etc/systemd/system/dst.service:
[Unit]
Description=Don't Starve Together Server
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=dst
WorkingDirectory=/home/dst
ExecStart=/home/dst/start_dst.sh
ExecStop=/bin/bash -c 'screen -X -S dst_master quit; screen -X -S dst_caves quit'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now dst十一、客户端进服
游戏主菜单 → 浏览游戏 → 搜 cluster_name。
十二、控制台命令
在 screen 会话里输入:
c_shutdown() -- 保存并关闭
c_save() -- 立即存档
c_announce("消息") -- 广播
c_listallplayers() -- 查看玩家十三、更新与备份
# 停服
screen -X -S dst_master quit
screen -X -S dst_caves quit
# 备份存档(重要!)
tar -czf ~/dst_backup_$(date +%Y%m%d).tar.gz ~/.klei/
# 更新
/home/dst/steamcmd/steamcmd.sh +force_install_dir /home/dst/dstserver +login anonymous +app_update 343050 +quit
# 重启
/home/dst/start_dst.sh详细的自动备份方案见:《存档备份与自动维护教程》→ https://z0w.cn/wiki/game-server-backup-guide.html
十四、常见问题
Q:启动报 error while loading shared libraries: libcurl.so.4?
缺 32 位库:sudo apt install libcurl4-gnutls-dev:i386。
Q:token 无效 / 服务端秒退?
重新生成 cluster_token.txt,确认放在 ~/.klei/DoNotStarveTogether/Cluster_1/ 下。
Q:洞穴进不去?
洞穴进程没起来(screen -ls 看有没有 dst_caves),或 10998 没映射。
Q:搜不到服务器?offline_cluster 是否 false;Steam 查询端口 27016 是否放行;等几分钟刷新。
Q:两个进程内存占用多少?
地上约 1-1.5G,洞穴约 800M-1G,合计 2-3G 起步,人多会增加。
十五、总结
| 项目 | 值 |
|---|---|
| AppID | 343050 |
| 地上端口 | UDP 10999 |
| 洞穴端口 | UDP 10998 |
| 启动命令 | dontstarve_dedicated_server_nullrenderer -cluster Cluster_1 -shard Master |
| 配置目录 | ~/.klei/DoNotStarveTogether/Cluster_1/ |
| 进程数 | 开洞穴=2 个 |
| Linux 支持 | ✅ 原生 |
📌 有问题评论区见。
我们家的云服务器支持多进程长期挂服,内存给得足;NAT 型价格更省,控制台自助映射端口 → 财富云计算 https://z0w.cn
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]这是本站长期维护的游戏配置与教程总索引。想开服,先在这页搞清楚两件事:你的游戏要吃多少配置、你的系统该看哪篇教程。建议收藏——换游戏、加 MOD、人数变多时,回来核对一遍能省掉大部分"卡爆了"和"连不上"。搭配阅读:还没买服务器?先看购前决策索引(预算分级 / NAT vs 独立 IP / 避坑清单);端口映射看不懂?先看端口速查表(40+ 游戏端口协议一页查清)。一、全游戏配置需求速查表下表按"[...]
2026-10-18 回复