教程概览
- 准备工作:购买一台云服务器,并连接到它。
- 安装 Docker:在 CentOS 系统上安装 Docker 环境。
- 下载饥荒服务器镜像:获取官方的饥荒服务器 Docker 镜像。
- 配置服务器:创建世界配置文件,设置游戏参数。
- 启动服务器:运行容器,启动饥荒服务器。
- 高级配置(可选):配置端口转发、自动更新、Mod 等。
- 常用管理命令:如何查看日志、重启、停止服务器。
第一步:准备工作
-
购买云服务器:
(图片来源网络,侵删)- 推荐配置:至少 2核CPU、2GB内存、40GB硬盘,饥荒本身不算吃资源,但为了流畅运行和多世界,建议配置稍高一些。
- 操作系统:选择 CentOS 7, CentOS 8 或 CentOS 9 (Stream),本教程以 CentOS 7 为例,但步骤在 8/9 上基本通用。
-
连接服务器:
- 使用 SSH 工具连接到你的服务器,Windows 用户可以使用
PowerShell或PuTTY,macOS 和 Linux 用户可以直接使用终端。 - 命令格式:
ssh root@你的服务器IP地址 - 输入你的密码登录。
- 使用 SSH 工具连接到你的服务器,Windows 用户可以使用
第二步:安装 Docker
Docker 是一个容器化平台,能让我们把饥荒服务器和系统环境隔离开,部署和管理都非常方便。
-
更新系统包
yum update -y
-
安装 Docker 依赖
(图片来源网络,侵删)yum install -y yum-utils device-mapper-persistent-data lvm2
-
添加 Docker 官方 Yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装 Docker Engine
yum install docker-ce docker-ce-cli containerd.io -y
-
启动 Docker 并设置为开机自启
systemctl start docker systemctl enable docker
-
验证 Docker 是否安装成功
(图片来源网络,侵删)docker version
如果看到 Client 和 Server 版本信息,说明安装成功。
第三步:下载饥荒服务器镜像
我们使用 Klei 官方提供的 Docker 镜像,它包含了所有必要的依赖。
# 拉取最新的 Don't Starve Together 服务器镜像 docker pull klei/dontstarvetogether:stable
klei/dontstarvetogether是官方镜像名。stable代表稳定版,你也可以使用preview来获取测试版更新,但可能不稳定。
第四步:配置服务器
这是最关键的一步,我们需要告诉服务器如何生成世界、设置密码等。
-
创建配置文件目录 为了方便管理,我们在
/home目录下创建一个dst目录来存放所有配置文件和数据。mkdir -p /home/dst cd /home/dst
-
创建
cluster.ini文件 这个文件是服务器的核心配置,用于设置服务器名称、密码、游戏模式等。vim cluster.ini
- 如果不熟悉
vim,可以使用nano:nano cluster.ini - 按下
i键进入编辑模式,然后粘贴或输入以下内容,并根据你的需求进行修改:
# 服务器名称,在游戏内服务器列表显示的名字 cluster_name = 我的服务器 # 服务器密码,玩家进入游戏时需要输入 cluster_password = your_password_here # 服务器描述,可以留空 cluster_description = 一个由 CentOS 搭建的饥荒服务器 # 游戏模式 # - survival: 生存模式 (默认) # - wilderness: 荒野模式 (无Boss,无科技树) # - endless: 无尽模式 game_mode = survival # 是否启用PvP (玩家互殴) pvp = false # 服务器最大玩家数量 max_players = 4 # 是否启用投票踢人功能 vote_enabled = true # 服务器公开,是否显示在官方服务器列表中 # - true: 显示,任何人都可以通过服务器名称搜索加入 # - false: 不显示,只能通过IP:端口直接加入或使用令牌 lan_only_cluster = false
- 编辑完成后:
- 在
vim中,按Esc键,然后输入wq并回车,保存并退出。 - 在
nano中,按Ctrl + X,然后按Y,再回车,保存并退出。
- 在
- 如果不熟悉
-
创建
server.ini文件 这个文件用于设置特定服务器的配置,比如是创建洞穴世界还是地表世界。vim server.ini
# 这个配置块用于地表世界 [SHARD] shard_enabled = true name = Master master_ip = 127.0.0.1 master_port = 10888 cluster_key = "cluster_key" # 这个值必须和 caves.ini 中的一致 # 这个配置块用于洞穴世界,如果你不想开洞穴,可以注释掉或删除 # [SHARD] # shard_enabled = true # name = Caves # master_ip = 127.0.0.1 # master_port = 10889 # cluster_key = "cluster_key"
name = Master定义了这是地表世界。name = Caves定义了这是洞穴世界。cluster_key必须在所有世界配置文件中保持一致,用于连接地表和洞穴。
-
创建
mods和modoverrides.lua文件(可选,用于安装Mod) 如果你想安装Mod,需要创建这两个文件。mkdir mods touch modoverrides.lua
mods文件夹:将你下载的Mod文件(.zip)放进去。modoverrides.lua:用于配置Mod的启用/禁用和优先级,暂时为空即可。
第五步:启动服务器
现在万事俱备,我们可以启动服务器了。
-
创建启动脚本 为了方便启动和管理,我们创建一个
start.sh脚本。vim start.sh
#!/bin/bash # 设置 DST 服务器数据目录的挂载路径 # 我们将宿主机的 /home/dst 目录挂载到容器内的 /data 目录 VOLUME_DIR="/home/dst" # 设置服务器要监听的端口 # 默认情况下,饥荒使用 10999 和 10998 端口 # 如果你的服务器开启了防火墙,需要放行这些端口 MASTER_PORT=10999 CAVES_PORT=10998 # 启动命令 # -d: 后台运行容器 # --name: 给容器一个名字 # -p: 端口映射 (宿主机端口:容器内端口) # -v: 目录挂载 (宿主机目录:容器内目录) # --restart=always: 容器退出时自动重启 docker run -d --name dst_server \ -p ${MASTER_PORT}:10999/udp \ -p ${CAVES_PORT}:10998/udp \ -v ${VOLUME_DIR}:/data \ --restart=always \ klei/dontstarvetogether:stable -
给脚本添加执行权限
chmod +x start.sh
-
运行脚本启动服务器
./start.sh
-
检查服务器是否运行
docker ps
如果看到名为
dst_server的容器在Up状态,说明服务器已经成功启动!
第六步:高级配置(可选)
配置防火墙
如果你的云服务商(如阿里云、腾讯云)有安全组,或者你本机开启了防火墙,需要开放饥荒服务器使用的端口。
- 游戏端口 (UDP):
10998(洞穴),10999(地表) - Steam 认证端口 (TCP):
27015-27030(通常开放这个范围即可)
使用 firewalld (CentOS 7/8/9 默认防火墙)
# 开放端口范围 firewall-cmd --permanent --add-port=10998-10999/udp firewall-cmd --permanent --add-port=27015-27030/tcp # 重新加载防火墙使配置生效 firewall-cmd --reload
安装和配置 Mod
-
下载 Mod:
- 访问 Steam创意工坊:
https://steamcommunity.com/workshop/browse/?appid=322330&requiredtags[]=Don't%20Starve%20Together - 找到你想要的Mod,点击“订阅”。
- 在你的电脑上,打开 Steam 库 -> 右键点击“饥荒:联机版” -> “属性” -> “已安装文件” -> “浏览”,找到
workshop文件夹。 - 将 Mod 的
.zip文件复制到服务器的/home/dst/mods目录下。
- 访问 Steam创意工坊:
-
配置
modoverrides.lua: 编辑/home/dst/modoverrides.lua文件,格式如下:return { -- workshop-xxxxxxxxxxxxxxxx = { enabled = true }, -- "workshop-xxxxxxxxxxxxxxxx", -- 示例:启用一个Mod ["workshop-123456789"] = { enabled = true }, -- 示例:禁用一个Mod -- ["workshop-987654321"] = { enabled = false }, -- 设置Mod优先级,数字越小优先级越高 ["workshop-123456789"] = { priority = -1 }, }你需要将
workshop-xxxxxxxxxxxxxxxx替换成你下载的Mod的ID。 -
重启服务器以加载Mod:
docker restart dst_server
自动更新服务器
官方镜像支持自动更新,你可以在启动时添加 UPDATE_ON_START=1 环境变量。
修改你的 start.sh 文件:
#!/bin/bash
VOLUME_DIR="/home/dst"
MASTER_PORT=10999
CAVES_PORT=10998
docker run -d --name dst_server \
-p ${MASTER_PORT}:10999/udp \
-p ${CAVES_PORT}:10998/udp \
-v ${VOLUME_DIR}:/data \
-e UPDATE_ON_START=1 \ # <--- 添加这一行
--restart=always \
klei/dontstarvetogether:stable
然后重新运行 ./start.sh,容器在每次启动时会自动检查并更新到最新版本。
第七步:常用管理命令
-
查看服务器日志(实时查看,按
Ctrl+C退出):docker logs -f dst_server
-
进入容器内部(如果需要手动执行命令):
docker exec -it dst_server /bin/bash
-
重启服务器:
docker restart dst_server
-
停止服务器:
docker stop dst_server
-
删除服务器容器(危险!会删除所有数据,除非你已挂载目录):
docker rm dst_server
如何连接到你的服务器
- 启动游戏,点击“开始游戏”。
- 选择“加入游戏”。
- 点击“添加服务器”。
- 在“服务器名称”中填写你在
cluster.ini中设置的cluster_name。 - 在“服务器地址”中填写你的
服务器IP:10999。 - 如果你的
lan_only_cluster设置为false,服务器会出现在官方列表中,可以直接选择。 - 输入你在
cluster.ini中设置的cluster_password,即可进入游戏。
恭喜!你已经成功在 CentOS 服务器上搭建了饥荒服务器!享受游戏吧!
