饥荒联机版开服:用 LinuxGSM 搭主世界,洞穴也不落下

先说结论:这条路我没用 Docker

开饥荒联机版(DST)的服务器,现成 Docker 镜像看着不少,但一查更新时间就露馅:常被引用的 Jamesits/docker-dst-server 停在 2023 年,mathielo/dst-dedicated-server 停在 2022 年,当年很流行的 jammsen 镜像仓库现在打开是 404。游戏一直在更新,镜像不动,最后还是要进容器里自己修。

所以这篇用的方法是 LinuxGSM:专做游戏服务器的脚本工具,4,900 多 star,支持 DST(实例名 dstserver),到今天还在提交,安装目标已经跟到 Ubuntu 26.04。它干的事很朴素——用 SteamCMD 装服务端、管进程、管更新、管备份。

准备

  • Ubuntu 24.04 或 26.04,2 核 4GB 起步;要带洞穴就按翻倍准备。
  • 一个能开 UDP 端口的公网 IP,或者至少能让朋友连进来的网络环境。
  • 一份正版 DST(生成 token 必须),以及绑定的 Klei 账号。

顺带记一下两个容易搞混的编号:游戏本体是 Steam app 322330,服务端是 343050。装的是后者。

安装:五条命令

sudo adduser dst --disabled-password
sudo su - dst
curl -Lo linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh
bash linuxgsm.sh dstserver
./dstserver install

安装过程中会停下来问 Cluster Token。去 Klei 的服务器页面(accounts.klei.com/account/game/servers?game=DontStarveTogether)用 Steam 登录,填一个自己认得出来的集群名,点添加,复制那串 token 粘进去。

装完它会写到 ~/.klei/DoNotStarveTogether/Cluster_1/cluster_token.txt。如果当时跳过了,之后用 ./dstserver cluster-token 补,不用重装。

改配置:三个文件就够

路径都在 ~/.klei/DoNotStarveTogether/Cluster_1/ 下面:

  • cluster.ini——服务器名、密码、最大人数、PvP、游戏模式(生存/无尽/荒野)。
  • Master/server.ini——server_port = 10999、is_master = true,以及 Steam 查询和认证端口。
  • cluster_token.txt——安装时已经写好,一般不用动。

cluster.ini 里还有个 cluster_key,安装时随机生成。单分片用不上,但开洞穴时两个分片必须一致——动它之前先记下来,后面会用到。

启动与控制

./dstserver start
./dstserver console    # 进控制台,Ctrl+B 再按 D 退出
./dstserver details    # 看端口、进程、版本

第一次启动要生成世界,等几分钟很正常。控制台能敲命令、日志不再刷生成进度,就算起来了。

端口:不止 10999 一个

用途 默认端口 要不要对外
主世界游戏 10999/udp 必须
主世界 Steam 查询 27018/udp 想在服务器列表里被看到就要
主世界认证 8768/udp 同上
洞穴游戏 10998/udp 开洞穴才需要
洞穴 Steam / 认证 27019 / 8769/udp 开洞穴才需要
分片间通信 11000/udp 只在本机,绝不对外

只放行 10999 是最常见的错误:玩家能直连,但服务器列表里永远找不到你。用 ufw 的话,sudo ufw allow 10999/udp 之后记得把 27018、8768 也加上。

洞穴:它是第二个进程,不是一个开关

很多人以为在配置里勾一下就有洞穴,其实洞穴是另一个同时运行的服务端进程,和主世界共享同一个集群目录、不同的分片目录。LinuxGSM 的做法是再装一个实例,关键配置是这四项:

  • sharding="true"、master="false"、shard="Caves"、cave="true";
  • server.ini 的 server_port 改成 10998,不能和主世界重复;
  • cluster.ini 里 master_ip 填 127.0.0.1、master_port 填 11000;
  • cluster_key 必须和主世界完全一致,否则洞穴连不上主世界。

两个实例要装在各自独立的目录里。装第二个之前,先把整个 Cluster_1 目录备份一份——安装脚本可能会重写配置,这是最容易把世界搞没的一步。

备份与更新

./dstserver backup
./dstserver update

backup 会把存档打包到 LinuxGSM 的 backup 目录,再同步到另一台机器或对象存储,别只留在本机。update 走 SteamCMD 拉新版本;更新后两个分片都要重启,客户端自动更新之后,旧服务端会直接显示版本不匹配。

三个最常见的问题

  • 服务器一直 offline:token 错了或过期了,重新生成一次。
  • 能直连但列表里没有:27018/8768 没放行,或者没在 Klei 的服务器页面把它登记进列表。
  • 洞穴进不去:Caves 进程没起来,或者 cluster_key 两边不一致。

我的判断

DST 的难点从来不在「装」,而在 token、端口和分片这三件事上,而且每一件出错时的表现都很像——连不上。LinuxGSM 把更新和备份接过去之后,这台服务器才算能长期放着不管。

如果是周末和朋友玩两把,游戏里直接「创建世界」更省事。专用服务器的价值在于:你不在线,世界也在;你的存档,不在别人的电脑里。

参考来源

延伸阅读

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像/SUENCA
欢迎您留下宝贵的见解!
提交
头像/SUENCA

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容