教程概述
- 准备工作:检查系统要求,并创建一个专门的用户来运行服务器(安全最佳实践)。
- 安装依赖:安装
steamcmd和tmux等必需软件。 - 安装饥荒服务器:使用
steamcmd命令自动下载和更新游戏。 - 配置服务器:修改关键配置文件,如服务器名称、密码、游戏模式等。
- 启动与管理服务器:使用
tmux启动服务器,并学习如何进入和退出控制台。 - 防火墙设置:开放服务器所需的端口,以便其他玩家能连接。
- 常见问题与维护:介绍如何更新服务器、查看日志以及进行基本的维护。
第一步:准备工作
在开始之前,请确保你有一台已经安装好 CentOS 7、8 或 9 的服务器,并且拥有 root 权限。

更新系统
更新你的系统软件包到最新版本。
# 对于 CentOS 7 sudo yum update -y # 对于 CentOS 8/9 sudo dnf update -y
创建专用用户(推荐)
出于安全考虑,不建议使用 root 用户来运行游戏服务器,我们创建一个名为 dontstarve 的用户。
sudo useradd -m -s /bin/bash dontstarve
-m: 创建用户的主目录。-s /bin/bash: 设置用户的默认 shell。
切换到这个新用户:
su - dontstarve
之后,所有的操作都将在 dontstarve 用户下进行。

第二步:安装依赖
我们需要安装 steamcmd(Steam 命令行工具,用于下载游戏)、tmux(终端复用器,用于后台运行服务器)和一些其他库。
# 切换回 root 用户,因为 yum/dnf 需要 root 权限 exit # 安装 EPEL 仓库(CentOS 7/8 可能需要) sudo yum install -y epel-release # 安装所有必需的依赖 sudo yum install -y tmux wget gcc-c++ SDL2-devel
tmux: 用于创建一个持久的会话来运行服务器,即使你关闭了 SSH 连接,服务器也会继续运行。wget: 用于下载steamcmd。gcc-c++,SDL2-devel: 这些是steamcmd运行和饥荒服务器可能需要的库。
第三步:安装饥荒服务器
创建服务器目录
我们将在 /home/dontstarve 目录下创建一个 dst 文件夹来存放服务器文件。
# 切换回 dontstarve 用户 su - dontstarve # 创建服务器目录 mkdir -p ~/dst cd ~/dst
下载并安装 steamcmd
在 ~/dst 目录下下载 steamcmd 并解压。
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz rm steamcmd_linux.tar.gz
使用 steamcmd 安装饥荒服务器
这是最关键的一步,我们将使用 steamcmd 的 +login 和 +force_install_dir 命令来指定安装目录。

./steamcmd.sh +login anonymous +force_install_dir /home/dontstarve/dst +app_update 343050 validate +quit
命令解释:
+login anonymous: 以匿名用户登录 Steam。+force_install_dir /home/dontstarve/dst: 非常重要,指定游戏安装的目录。+app_update 343050:343050是《饥荒》联机版的 App ID。validate: (可选但推荐)在下载时验证文件完整性,如果文件损坏会自动修复。+quit: 退出steamcmd。
首次安装会下载大量文件,请耐心等待,完成后,你的 /home/dontstarve/dst 目录下会生成 bin64、data、mods 等文件夹。
第四步:配置服务器
饥荒服务器的配置主要在 cluster.ini 和 server.ini 这两个文件中。
创建集群配置
饥荒允许多个游戏实例(如生存、联机版)共享一个存档,我们需要创建一个集群配置文件。
cd ~/dst mkdir -p DoNotStarveTogether cd DoNotStarveTogether
创建并编辑 cluster.ini 文件:
nano cluster.ini ```粘贴进去,并根据你的需求进行修改: ```ini [SHARD] shard_enabled = true # 是否启用分片(多世界),true为启用 master_ip = 127.0.0.1 # 主世界的IP地址,本地就写127.0.0.1 master_port = 11000 # 主世界的端口 cluster_key = "secret_key" # 集群密钥,所有分片必须保持一致,连接时需要 [MISC] console_enabled = true # 是否启用服务器控制台(在tmux里按Ctrl+C+C可以打开)
cluster_key: 这个密钥非常重要!玩家通过客户端连接时,需要输入这个密钥才能加入你的服务器,请务必修改成一个复杂的字符串。master_port: 主世界默认使用11000,如果你的服务器上还运行着其他服务,请修改为一个未被占用的端口。
创建服务器配置
回到 ~/dst 目录,创建 server 目录(这是游戏服务器程序的存放位置),然后编辑 server.ini。
cd ~/dst mkdir -p server cd server nano server.ini ```粘贴进去,并修改: ```ini [GAMEPLAY] game_mode = survival # 游戏模式:survival(生存),endless(无尽),wilderness(荒野) max_players = 4 # 最大玩家数量 pvp = false # 是否开启PVP pause_when_empty = true # 当没有玩家时是否暂停游戏 [NETWORK] cluster_name = "My First DST Server" # 服务器名称,在游戏内服务器列表显示 cluster_description = "A server hosted by me!" # 服务器描述 cluster_password = "" # 服务器连接密码(留空则无密码) tick_rate = 20 # 游戏帧率,20为推荐值,不要轻易修改 [STEAM] lan_only_cluster = false # 是否仅限局域网访问
cluster_password: 这是玩家进入游戏世界时需要的密码,不是cluster.ini里的密钥。game_mode: 根据你的喜好选择游戏模式。max_players: 根据你的服务器配置设置玩家数量。
(可选)配置 MODS
如果你想安装 MOD,可以这样做:
- 在
~/dst/DoNotStarveTogether目录下创建一个mods文件夹。 - 将 MOD 的
.zip文件放入这个mods文件夹。 - 创建或编辑
modoverrides.lua文件来启用/禁用 MOD。
第五步:启动与管理服务器
使用 tmux 启动服务器
tmux 可以让我们在后台运行服务器,并且可以随时重新连接到它的控制台。
# 切换到 ~/dst 目录 cd ~/dst # 创建一个新的 tmux 会话,命名为 dst tmux new -s dst
在 tmux 会话中启动服务器
进入 tmux 会话后,你会看到一个类似终端的界面,输入以下命令来启动服务器(先启动主世界):
./dontstarve_dedicated_server_nullrenderer -console -cluster DoNotStarveTogether -shard Master
命令解释:
./dontstarve_dedicated_server_nullrenderer: 服务器启动程序。-console: 启用控制台。-cluster DoNotStarveTogether: 指定集群配置文件夹的名称。-shard Master: 指定这是一个主世界。
启动洞穴世界(分片)
当主世界启动后,你需要再开一个 SSH 连接到服务器,用同样的方法进入 tmux 会话,然后启动洞穴世界。
# 新开一个 SSH 连接 # 切换到 dontstarve 用户 su - dontstarve cd ~/dst # 进入名为 dst 的 tmux 会话 tmux a -t dst # 在这个新的窗口/面板中启动洞穴 ./dontstarve_dedicated_server_nullrenderer -console -cluster DoNotStarveTogether -shard Caves
你的主世界和洞穴都在后台运行了,你可以关闭所有 SSH 窗口,服务器会继续运行。
如何管理服务器(进入/退出控制台)
-
进入控制台:
# SSH 登录服务器 su - dontstarve # 进入 tmux 会话 tmux a -t dst
你现在就在服务器的实时控制台里了,可以看到服务器的日志输出。
-
退出控制台但不关闭服务器:
- 按
Ctrl + B,然后松开,再按D,这会 detach(分离)当前 tmux 面板,但服务器进程仍在后台运行。
- 按
-
完全杀死 tmux 会话(会关闭服务器):
- 先退出 tmux 会话(按
Ctrl+BD)。 - 然后在 SSH 命令行输入:
tmux kill-session -t dst
- 先退出 tmux 会话(按
第六步:防火墙设置
为了让其他玩家能连接到你的服务器,你需要开放以下端口:
- 主世界端口:
11000(TCP/UDP) - 洞穴世界端口:
11001(TCP/UDP) - 客户端查询端口:
27016(UDP) - 用于在 Steam 服务器列表中显示
# 切换到 root 用户 exit # 开放端口 (CentOS 7 使用 firewall-cmd) sudo firewall-cmd --permanent --add-port=11000/tcp sudo firewall-cmd --permanent --add-port=11000/udp sudo firewall-cmd --permanent --add-port=11001/tcp sudo firewall-cmd --permanent --add-port=11001/udp sudo firewall-cmd --permanent --add-port=27016/udp sudo firewall-cmd --reload # 对于 CentOS 8/9 使用 nftables (firewalld 后端) # 命令与 firewall-cmd 相同,因为 CentOS 8/9 默认也使用 firewalld
第七步:常见问题与维护
如何更新服务器?
当游戏有更新时,你需要更新服务器,方法很简单:
# SSH 登录,切换到 dontstarve 用户 su - dontstarve cd ~/dst # 使用 steamcmd 更新 ./steamcmd.sh +login anonymous +force_install_dir /home/dontstarve/dst +app_update 343055 validate +quit
注意:app_update 的 ID 有时是 343050,有时是 343055。343050 无法更新,请尝试 343055。
服务器无法启动,提示端口被占用?
使用 lsof 或 netstat 命令检查端口是否被其他程序占用。
sudo lsof -i :11000
如果发现占用,你需要修改 cluster.ini 和 server.ini 中的端口号,并确保防火墙规则也相应更新。
如何查看服务器日志?
日志文件通常存放在 ~/dst/DoNotStarveTogether/Cluster_X/ 目录下,X 是你的世界名称(如 Master 或 Caves)。
- 主世界日志:
~/dst/DoNotStarveTogether/Cluster_Master/console.log - 洞穴日志:
~/dst/DoNotStarveTogether/Cluster_Caves/console.log
你可以使用 tail 命令实时查看日志:
tail -f ~/dst/DoNotStarveTogether/Cluster_Master/console.log
如何备份世界存档?
存档文件就在 ~/dst/DoNotStarveTogether/ 目录下,直接打包这个目录即可。
# 在 ~/dst 目录下执行 tar -czf backup-$(date +%Y%m%d).tar.gz DoNotStarveTogether/
这会创建一个名为 backup-YYYYMMDD.tar.gz 的压缩包。
恭喜!至此,你已经成功在 CentOS 系统上搭建并配置好了《饥荒》联机版服务器,你可以将服务器 IP 和配置信息分享给朋友们,一起开始冒险吧!
