10 10 月 2026
本文只讲 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
CPU2 核
内存单地上:2G | 地上+洞穴:3-4G
硬盘10G

端口表:

端口协议用途
10999UDP地上世界
10998UDP洞穴
27016-27018UDPSteam 查询
8766-8768UDPSteam 认证
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 = 8766

Caves/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 reload

NAT 型服务器还要在服务商控制台映射。详见:《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.target
sudo 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 起步,人多会增加。


十五、总结

项目值
AppID343050
地上端口UDP 10999
洞穴端口UDP 10998
启动命令dontstarve_dedicated_server_nullrenderer -cluster Cluster_1 -shard Master
配置目录~/.klei/DoNotStarveTogether/Cluster_1/
进程数开洞穴=2 个
Linux 支持✅ 原生

📌 有问题评论区见。
我们家的云服务器支持多进程长期挂服,内存给得足;NAT 型价格更省,控制台自助映射端口 → 财富云计算 https://z0w.cn
延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:饥荒联机版开服保姆级教程(Windows版):地上与洞穴双世界
  2. 下一篇:方舟生存飞升ASA开服保姆级教程(Windows版):UE5部落长期服
发表评论 1

    1. Steam 游戏配置与开服教程总索引:一页查清要吃多少配置、教程在哪 - 			财富云计算 - 维基百科的头像

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