云计算百科
云计算领域专业知识百科平台

在云服务器上手把手部署《饥荒联机版》(DST) 专用服务器(Ubuntu 22.04 / SteamCMD)

适用人群:零基础、只会用 SSH 连接服务器的人。

目标:在一台云服务器上搭建 Don't Starve Together(DST,饥荒联机版) 的 Dedicated Server(专用服务器),你和朋友用 Steam 正版在游戏里搜索并加入。


1. 你需要准备什么

  • 一台云服务器(建议 Ubuntu 22.04 x64,2 核 2G 或以上更稳)

  • 能 SSH 登录服务器(Xshell / Termius / Windows Terminal / macOS 终端均可)

  • 你本地电脑安装 Steam 版《饥荒联机版》

  • 一个 Klei 账号(用于生成 Cluster Token)

说明:

  • DST = Don’t Starve Together,中文常叫“饥荒联机版”。

  • 专用服务器不需要图形界面,全程 SSH 操作即可。


2. 服务器基础环境安装

2.1 更新系统并安装依赖

apt update && apt -y upgrade
apt -y install wget tar screen unzip lib32gcc-s1 lib32stdc++6

解释:

  • SteamCMD 是 32 位组件,常见需要 lib32gcc-s1、lib32stdc++6。


3. 安装 SteamCMD 并下载 DST 专用服务器

3.1 安装 SteamCMD

mkdir -p /root/steamcmd
cd /root/steamcmd
wget "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
tar -xvzf steamcmd_linux.tar.gz

3.2 用 SteamCMD 下载 DST Dedicated Server

DST 专用服务器的 Steam AppID 通常是 343050。

mkdir -p /root/dst_server
cd /root/steamcmd
./steamcmd.sh

进入 SteamCMD 交互界面后输入:

force_install_dir /root/dst_server
login anonymous
app_update 343050 validate
quit

下载完成后,服务器文件会在:

  • /root/dst_server/bin64/(Ubuntu 22.04 常见是 x64)


4. 创建世界(Cluster)配置

DST 的专用服务器配置位于 Klei 目录结构中:

  • /root/.klei/DoNotStarveTogether/

一个世界(集群)就是一个文件夹,例如:

  • /root/.klei/DoNotStarveTogether/MyDediServer/

里面通常包含:

  • cluster.ini:世界总体配置(名称、密码、人数、模式等)

  • cluster_token.txt:Klei 服务器票据(必须有)

  • Master/:地面世界配置(主世界)

  • Caves/:洞穴世界配置(可选,但多数玩家需要)

4.1 获取 Cluster Token(必须)

登录 Klei 官网账号管理页面,生成用于 Dedicated Server 的 Cluster Token。

  • 把 token 写入 cluster_token.txt

示例:

mkdir -p /root/.klei/DoNotStarveTogether/MyDediServer
nano /root/.klei/DoNotStarveTogether/MyDediServer/cluster_token.txt

把 token 粘贴进去,保存退出。

提示:Token 相当于服务器凭证,不要公开。


5. 编写配置文件(关键)

下面给出一套最常用、最容易成功的模板(地面 + 洞穴)。你只要照抄并按需改名字/密码即可。

5.1 cluster.ini(世界总配置)

路径:

  • /root/.klei/DoNotStarveTogether/MyDediServer/cluster.ini

内容示例:

[GAMEPLAY]
game_mode = survival
max_players = 6
pvp = false
pause_when_empty = false

[NETWORK]
cluster_name = My DST Server
cluster_description = A dedicated server for friends
cluster_password = 123456

[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 = supersecretkey

重要说明:

  • pause_when_empty = false 建议关闭空服暂停,避免出现“看得到服务器但连接异常”的情况。

  • cluster_password 可为空(无密码),也可以设置密码。

  • bind_ip/master_ip/master_port/cluster_key 是地面与洞穴互联的关键参数。

5.2 Master/server.ini(地面)

路径:

  • /root/.klei/DoNotStarveTogether/MyDediServer/Master/server.ini

内容示例:

[NETWORK]
server_port = 11000

[SHARD]
is_master = true

[STEAM]
master_server_port = 27018
authentication_port = 8768

[ACCOUNT]
encode_user_path = true

5.3 Caves/server.ini(洞穴)

路径:

  • /root/.klei/DoNotStarveTogether/MyDediServer/Caves/server.ini

内容示例:

[NETWORK]
server_port = 11001

[SHARD]
is_master = false
name = Caves

[STEAM]
master_server_port = 27019
authentication_port = 8769

[ACCOUNT]
encode_user_path = true

提示:

  • 端口可以换,但不要冲突。

  • 洞穴与地面必须成对配置,并且 cluster.ini 的 shard 配置必须启用。


6. 启动脚本:一键启动地面 + 洞穴

创建启动脚本 /root/run_dst.sh:

cat > /root/run_dst.sh <<'EOF'
#!/usr/bin/env bash
set -e

INSTALL_DIR="/root/dst_server"
CLUSTER="MyDediServer"

# 兼容不同目录(Ubuntu 22.04 常见 DST 在 bin64)
if [ -f "$INSTALL_DIR/bin64/dontstarve_dedicated_server_nullrenderer_x64" ]; then
BIN="$INSTALL_DIR/bin64/dontstarve_dedicated_server_nullrenderer_x64"
BINDIR="$INSTALL_DIR/bin64"
else
BIN="$INSTALL_DIR/bin/dontstarve_dedicated_server_nullrenderer"
BINDIR="$INSTALL_DIR/bin"
fi

cd "$BINDIR"

# 后台运行,日志输出到 /root/master.log 和 /root/caves.log
nohup "$BIN" -cluster "$CLUSTER" -shard Master > /root/master.log 2>&1 &
nohup "$BIN" -cluster "$CLUSTER" -shard Caves > /root/caves.log 2>&1 &

echo "启动完成:/root/master.log 和 /root/caves.log"
EOF

chmod +x /root/run_dst.sh

启动:

/root/run_dst.sh

查看进程:

ps -ef | grep dontstarve_dedicated_server_nullrenderer | grep -v grep

查看日志:

tail -n 80 /root/master.log
tail -n 80 /root/caves.log

停止服务器:

pkill -9 -f dontstarve_dedicated_server_nullrenderer || true


7. 防火墙与端口放行(非常关键)

你需要同时检查两层:

  • 服务器系统防火墙(UFW)

  • 云厂商控制台的“安全组/防火墙/入站规则”

  • 7.1 UFW 放行端口(建议 TCP + UDP 都放)

    ufw allow 11000/udp
    ufw allow 11001/udp
    ufw allow 11000/tcp
    ufw allow 11001/tcp

    ufw allow 27018/udp
    ufw allow 27019/udp
    ufw allow 27018/tcp
    ufw allow 27019/tcp

    ufw allow 8768/udp
    ufw allow 8769/udp
    ufw allow 8768/tcp
    ufw allow 8769/tcp

    ufw reload
    ufw status

    7.2 云安全组(必须也放行)

    在云厂商控制台里,把以下端口入站放行:

    • 11000(地面)

    • 11001(洞穴)

    • 27018、27019(Steam 服务器端口)

    • 8768、8769(Steam 认证端口)

    协议建议:TCP + UDP 都放行(最省心)。


    8. 自检:确认端口正在监听

    8.1 检查 UDP/TCP 监听

    echo "—- UDP —-"
    ss -lunp | egrep '11000|11001|27018|27019|8768|8769|10889' || true

    echo "—- TCP —-"
    ss -lntp | egrep '11000|11001|27018|27019|8768|8769|10889' || true

    正常情况下你会看到:

    • 11000/11001 在监听(对外)

    • 27018/27019 在监听(对外)

    • 8768/8769 可能会监听(根据版本/平台实现不同,但放行不吃亏)

    • 10889 通常只会在 127.0.0.1(地面与洞穴内部通信)

    8.2 日志里应该出现的关键字

    Master.log 常见:

    • Online Server Started on port: 11000

    • Server registered via geo DNS …

    Caves.log 常见:

    • Online Server Started on port: 11001

    • secondary shard is now ready(洞穴就绪)


    9. 游戏里加入服务器

  • 打开 Steam 版 DST

  • 进入“浏览服务器/服务器列表”

  • 搜索你在 cluster.ini 里写的 cluster_name

  • 输入密码(如果你设置了 cluster_password)

  • 加入后,你的朋友也可以同样方式加入


  • 10. 常见问题与排查思路

    Q1:能看到服务器,但进不去/没响应

    优先按这个顺序排查:

  • pause_when_empty 是否是 true?建议改 false 并重启

  • UFW 只开了 UDP?请把 TCP 也放行

  • 云安全组是否真的放行了端口?(很多人漏掉这一层)

  • 看 master.log / caves.log 有没有明显报错

  • Q2:洞穴一直连接不上地面

    检查:

    • cluster.ini 的 [SHARD] 是否 shard_enabled = true

    • master_ip = 127.0.0.1、master_port = 10889 两边一致

    • cluster_key 两边一致

    • Master 端日志里是否有:Shard server started on port: 10889

    Q3:更新 DST 服务器版本

    以后更新只要重新跑一次 SteamCMD:

    cd /root/steamcmd
    ./steamcmd.sh

    输入:

    force_install_dir /root/dst_server
    login anonymous
    app_update 343050 validate
    quit

    然后重启服务器:

    pkill -9 -f dontstarve_dedicated_server_nullrenderer || true
    /root/run_dst.sh


    11. 可选增强(建议以后再做)

    • 用 systemd 做成开机自启

    • 添加管理员(adminlist.txt)

    • 安装 mod(modoverrides.lua)

    • 定期备份存档(MyDediServer/Master/save 和 MyDediServer/Caves/save)


    结语

    到这里,你已经可以在云服务器上稳定运行《饥荒联机版》专用服务器了:

    • SteamCMD 安装与更新

    • Klei Cluster Token 配置

    • 地面 + 洞穴分片配置

    • 一键启动脚本

    • 防火墙与云安全组放行

    • 日志与端口自检

    如果你后续想做“开机自启 + 自动更新 + 定期备份”,可以在这个基础上继续扩展。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 在云服务器上手把手部署《饥荒联机版》(DST) 专用服务器(Ubuntu 22.04 / SteamCMD)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!