饥荒服务器搭建

本文记录一下激光服务器搭建的流程。

#type / howto #status / evergreen #recreation / game #tech / ops #resource / dont-starve-together

[!info] related notes

饥荒服务器搭建

概览

阿里云试用 2v 4g 经济型e ESSD Entry 40GiB Ubuntu 使用 docker 部署: jamesits/dst-server - Docker Image - docker容器官方文档,需要仔细阅读

[!NOTE] 注意服务器网络 区分 峰值带宽 和 固定带宽,优先用固定带宽 5 M(4个人应该够了)。

准备基础设施

在连接服务器之前,需要准备好两样东西:Token(令牌)设置防火墙

1. 获取服务器令牌 (Cluster Token)

  1. 打开浏览器访问 Klei 官网账号页面
  2. 登录你的 Steam 账号。
  3. 点击页面上的 “Add New Server”(添加新服务器)。
  4. 随便填个名字(比如 “MyAliyunServer”),点击 “Configure”。
  5. 你会看到一串很长的代码,复制这串 Server Token,保存好备用。
pds-g^KU_LPW1CZE1^hpd17sGKhZrtbP+Hi15Ge36XXpzFy+4ZgkCicuERkI4=

2. 配置阿里云安全组(防火墙)

如果不做这一步,服务器开了你也搜不到。

  1. 进入阿里云 ECS 控制台,找到你的实例。
  2. 点击 “安全组” -> “配置规则”
  3. 点击 “手动添加”,填写以下信息(一定要选 UDP):
    • 端口范围: 10999/1100012346/12347(或者直接填 10900/13000 以防万一)
    • 协议类型: 自定义 UDP (注意:饥荒走的是UDP协议,选TCP没用!)
    • 授权对象: 0.0.0.0/0 (允许所有人连接)
  4. 点击保存。

3. 服务器安装 docker

阿里云试用有预装 docker 选项

# 更新软件源
sudo apt-get update

# 安装 Docker
sudo apt-get install -y docker.io docker-compose

# 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

部署服务器的 docker 容器

我们将使用 Docker Compose 来一次性开启“地面”和“洞穴”。

  1. 创建游戏目录:

    mkdir -p /opt/dst_server
    cd /opt/dst_server
    
  2. 创建 docker-compose.yml 配置文件: 输入 nano docker-compose.yml 进入编辑器。

  3. 粘贴配置代码: 将下面的代码复制,然后粘贴进去。 注意: 必须把 你的令牌粘贴在这里 替换成你在第一步获取的 Token。

version: '3'
services:
  dst_server:
    image: crpi-guiwp8np81j97lp0.cn-hangzhou.personal.cr.aliyuncs.com/jihuang/dst-server # 我的镜像
    container_name: dst_server
    tty: true
    stdin_open: true
    restart: always
    ports:
      # 游戏连接端口 (必须是 UDP)
      - "10999:10999/udp" # 地面 (Master)
      - "11000:11000/udp" # 洞穴 (Caves)
      # Steam 通讯端口 (必须是 UDP)
      - "12346:12346/udp" # Steam 通讯端口 1
      - "12347:12347/udp" # Steam 通讯端口 2
    volumes:
      # 将宿主机当前目录下的 data 文件夹挂载到容器的 /data
      - ./data:/data
    env_file:
      - .env
    environment:
      # 官方文档明确要求的变量名:DST_CLUSTER_TOKEN
      - DST_CLUSTER_TOKEN=${DST_TOKEN}
  1. 启动服务器:
sudo docker-compose up -d

系统会自动下载游戏文件(约1-2GB),需要等待几分钟。

  1. 配置文件修改: 先运行一次生成文件,再手动修改配置文件: 初次启动: 运行 sudo docker-compose up -d。此时服务器会因为没有 Token 而报错停止,但在你的 data 目录下会生成配置文件。 设置 Token: 在 .env 中填入你的 Token(变量名需为 DST_TOKEN)。 修改服务器名称和模式: 打开 data/DoNotStarveTogether/Cluster_1/cluster.ini。 在这里修改 cluster_name(服务器名)、game_mode(游戏模式)等详细设置。 重启生效: 运行 sudo docker-compose restart。

第四步:进入游戏

  1. 等待约 3-5 分钟(第一次启动要下载更新)。
  2. 你可以通过命令 sudo docker logs -f dst_master 查看进度。当你看到 Sim Paused 或者 Registering master server 字样时,说明启动成功了。按 Ctrl + C 退出日志查看。
  3. 打开电脑上的《饥荒联机版》,点击“浏览游戏”。
  4. 搜索你在配置里写的名字(比如“我的阿里云服务器”)。
  • 如果搜不到,可以按 ~ 键打开控制台,输入 c_connect("你的公网IP", 10999) 直连。

进阶:如何添加 Mod?

概述

  1. 有 服务器 mod、 all client required mod、 纯客户端 mod,只有前两者需要加入到服务器中
  2. mod在Steam 创业工坊中获取,地址栏末尾 id 为 MOD ID

添加到服务器

  1. 进入挂载目录:
cd /opt/dst_server/data/DoNotStarveTogether/Cluster_1/mods/
  1. 找到 dedicated_server_mods_setup.lua 文件,编辑它:
ServerModSetup("这里填Mod的ID")
ServerModSetup("这里填另一个Mod的ID")

配置启用

下载了 MOD 并不代表它会自动运行,你需要在世界配置中显式开启它。 - 进入地面世界的配置目录:cd /opt/dst_server/data/DoNotStarveTogether/Cluster_1/Master/。 - 编辑(或创建)启用文件:nano modoverrides.lua。 - 输入以下基础格式代码:

	```Lua
    return {
      ["workshop-2334237595"] = { enabled = true },
      ["workshop-其他ID"] = { enabled = true }
    }
    ```

	_注意:如果你希望洞穴也有同样的 MOD,需要将该文件也复制到 `Cluster_1/Caves/` 目录下。_

重启服务器

  • 返回 Compose 目录:cd /opt/dst_server
  • 重启容器:sudo docker compose restart
  • 检查日志:运行 sudo docker logs -f dst_server
    • 你会看到服务器正在调用 SteamCMD 下载你刚才配置的 MOD。
    • 如果日志显示 Mod 2334237595 download success,说明添加成功。

mod配置样例

dedicated_server_mods_setup.lua

-- 饥荒联机版 Mod 下载配置 (告诉服务器去 Steam 下载哪些 Mod)

-- [人物 Mod] 大狐狸 WhaRang
ServerModSetup("1623253738")
-- 防止掉落所有物品
ServerModSetup("661253977")
-- 额外装备栏+
ServerModSetup("2823530744")
-- 木牌传送(GUI界面)
ServerModSetup("2119742489")
-- DST地图全显
ServerModSetup("363112314")
-- 改良版打包箱
ServerModSetup("1618216788")
-- 快速拾取
ServerModSetup("501385076")
-- Show Me 中文(信息显示类)
ServerModSetup("2287303119")
-- DST简易血条
ServerModSetup("1207269058")
-- 可升级箱子
ServerModSetup("2484725102")
-- 虫洞标记
ServerModSetup("362175979")
-- 骨骼重生
ServerModSetup("1271089343")
-- 全图定位(完全同步)
ServerModSetup("3138571948")
-- 冰箱返鲜上万天
ServerModSetup("2371484058")
-- 史诗血量条
ServerModSetup("1185229307")
-- 更多物品堆叠
ServerModSetup("3007715893")
-- 永久燃料灭火器(雪球机)(自用版)
ServerModSetup("2957474497")
-- 防卡两招_新
ServerModSetup("3044756151")

modoverrides.lua

-- 饥荒联机版 Mod 启用配置 (告诉服务器在世界中激活哪些 Mod)

return {
  -- [人物 Mod] 大狐狸 WhaRang
  ["workshop-1623253738"] = { enabled = true },
  -- 防止掉落所有物品
  ["workshop-661253977"] = { enabled = true },
  -- 额外装备栏+
  ["workshop-2823530744"] = { enabled = true },
  -- 木牌传送(GUI界面)
  ["workshop-2119742489"] = { enabled = true },
  -- DST地图全显
  ["workshop-363112314"] = { enabled = true },
  -- 改良版打包箱
  ["workshop-1618216788"] = { enabled = true },
  -- 快速拾取
  ["workshop-501385076"] = { enabled = true },
  -- Show Me 中文(信息显示类)
  ["workshop-2287303119"] = { enabled = true },
  -- DST简易血条
  ["workshop-1207269058"] = { enabled = true },
  -- 可升级箱子
  ["workshop-2484725102"] = { enabled = true },
  -- 虫洞标记
  ["workshop-362175979"] = { enabled = true },
  -- 骨骼重生
  ["workshop-1271089343"] = { enabled = true },
  -- 全图定位(完全同步)
  ["workshop-3138571948"] = { enabled = true },
  -- 冰箱返鲜上万天
  ["workshop-2371484058"] = { enabled = true },
  -- 史诗血量条
  ["workshop-1185229307"] = { enabled = true },
  -- 更多物品堆叠
  ["workshop-3007715893"] = { enabled = true },
  -- 永久燃料灭火器(雪球机)
  ["workshop-2957474497"] = { enabled = true },
  -- 防卡两招_新
  ["workshop-3044756151"] = { enabled = true }
}

饥荒服务器管理平台

OK 上面的 docker 部署方法直接失败,网络太差。发现了新的更简单的方法。就是试用饥荒服务器管理平台

username: admin
password: Zbp164xs38h4yoqa2l2m

17159867123
创建于 2025/12/23 更新于 2026/5/27