凌峰创科服务平台

CentOS如何搭建饥荒服务器?

教程概述

  1. 准备工作:检查系统要求,并创建一个专门的用户来运行服务器(安全最佳实践)。
  2. 安装依赖:安装 steamcmdtmux 等必需软件。
  3. 安装饥荒服务器:使用 steamcmd 命令自动下载和更新游戏。
  4. 配置服务器:修改关键配置文件,如服务器名称、密码、游戏模式等。
  5. 启动与管理服务器:使用 tmux 启动服务器,并学习如何进入和退出控制台。
  6. 防火墙设置:开放服务器所需的端口,以便其他玩家能连接。
  7. 常见问题与维护:介绍如何更新服务器、查看日志以及进行基本的维护。

第一步:准备工作

在开始之前,请确保你有一台已经安装好 CentOS 7、8 或 9 的服务器,并且拥有 root 权限。

CentOS如何搭建饥荒服务器?-图1
(图片来源网络,侵删)

更新系统

更新你的系统软件包到最新版本。

# 对于 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 用户下进行。

CentOS如何搭建饥荒服务器?-图2
(图片来源网络,侵删)

第二步:安装依赖

我们需要安装 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 命令来指定安装目录。

CentOS如何搭建饥荒服务器?-图3
(图片来源网络,侵删)
./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 目录下会生成 bin64datamods 等文件夹。


第四步:配置服务器

饥荒服务器的配置主要在 cluster.iniserver.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,可以这样做:

  1. ~/dst/DoNotStarveTogether 目录下创建一个 mods 文件夹。
  2. 将 MOD 的 .zip 文件放入这个 mods 文件夹。
  3. 创建或编辑 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+B D)。
    • 然后在 SSH 命令行输入:
      tmux kill-session -t dst

第六步:防火墙设置

为了让其他玩家能连接到你的服务器,你需要开放以下端口:

  • 主世界端口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,有时是 343055343050 无法更新,请尝试 343055

服务器无法启动,提示端口被占用?

使用 lsofnetstat 命令检查端口是否被其他程序占用。

sudo lsof -i :11000

如果发现占用,你需要修改 cluster.iniserver.ini 中的端口号,并确保防火墙规则也相应更新。

如何查看服务器日志?

日志文件通常存放在 ~/dst/DoNotStarveTogether/Cluster_X/ 目录下,X 是你的世界名称(如 MasterCaves)。

  • 主世界日志:~/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 和配置信息分享给朋友们,一起开始冒险吧!

分享:
扫描分享到社交APP
上一篇
下一篇