我们将使用 Dedicated Server(官方命令行版本)来搭建,因为它更稳定,资源占用也更低。

第一步:准备工作
-
一台 Ubuntu 服务器:
- 推荐版本:Ubuntu 20.04 LTS 或 22.04 LTS,LTS 版本长期支持,更稳定。
- 最低配置:1 CPU 核心, 1GB 内存,但为了流畅运行,建议至少 2 核心, 2GB 内存。
- 网络:必须拥有一个公网 IP 地址,并且能在路由器/防火墙上开放端口。
-
SSH 访问权限:
你需要通过 SSH 客户端(如 PuTTY、Windows Terminal、MobaXterm 等)连接到你的服务器。
-
管理员权限:
(图片来源网络,侵删)- 我们将使用
sudo来执行需要管理员权限的命令。
- 我们将使用
第二步:安装必要软件
登录到你的 Ubuntu 服务器,更新系统包列表并安装一些基础工具。
# 更新软件包列表 sudo apt update # 升级已安装的软件包(可选,但推荐) sudo apt upgrade -y # 安装一些常用工具,如 wget, curl, unzip, screen sudo apt install -y wget curl unzip screen
wget/curl: 用于下载文件。unzip: 用于解压饥荒服务端。screen: 一个非常有用的工具,可以让你的服务器在 SSH 断开连接后依然在后台运行。
第三步:下载《饥荒》服务端
-
创建一个专用目录: 为了保持文件整洁,我们创建一个专门的文件夹来存放服务端文件。
# 创建一个名为 dontstarve 的目录 mkdir ~/dontstarve # 进入这个目录 cd ~/dontstarve
-
下载服务端文件: 访问 Klei 官方的 Dedicated Server 下载页面,获取最新的下载链接。
在页面上找到 "Linux" 版本的下载链接,右键复制链接地址,然后使用
wget下载。
(图片来源网络,侵删)注意:请务必替换下面的 URL 为最新的链接!以下链接可能已过时。
# 使用 wget 下载服务端压缩包 wget https:// Klei.com/downloads/Don'tStarveTogether/linux/dontstarveTogether_dedicated_server.zip
(如果链接失效,请去官网查找新的)
-
解压文件: 下载完成后,解压这个 zip 文件。
# 解压文件 unzip dontstarveTogether_dedicated_server.zip
解压后,你会看到一个名为
DoNotStarveTogether的文件夹,里面包含了服务端的核心文件。
第四步:配置服务器
这是最关键的一步,我们需要告诉服务器如何运行,以及如何连接。
-
创建配置文件: Klei 的服务端使用一个名为
cluster.ini的文件来配置服务器的基本信息(如服务器名称、密码、描述等)。# 进入 DoNotStarveTogether 文件夹 cd ~/dontstarve/DoNotStarveTogether # 创建 cluster.ini 文件(如果不存在) # 使用 > 创建一个空文件,echo >> 用于追加内容 touch cluster.ini
-
编辑
cluster.ini文件: 使用nano或vim编辑器来修改配置,这里我们用nano,它对新手更友好。nano cluster.ini
在打开的文件中,粘贴或修改以下内容:
# 服务器集群名称,客户端连接时需要选择 cluster_name = "我的饥荒服务器" # 服务器密码,客户端连接时需要输入 cluster_password = "your_secure_password" # 游戏描述,在服务器列表中显示 cluster_description = "欢迎来到我的服务器!" # 最大玩家数量 max_players = 6 # 是否启用 PvP (Player vs Player) pvp = false # 是否启用游戏内语音聊天 enable_voice_chat = true # 服务器是否可见在官方列表中 visibility = public # 是否启用投票踢人功能 enable_vote_kick = true # 设置游戏模式 (建议先从 survival 开始) game_mode = survival # 设置赛季 (建议先从 together_normal 开始) season = together_normal # 设置游戏难度 (推荐设置为 0,即正常难度) game_mode = 0 # 保存间隔(单位:秒) save_interval = 300 [SHARD] # 下面的 shard 是世界名称,如果你只开一个世界,可以保持默认 # 如果想开多个世界(如地上世界和洞穴),需要在这里添加更多配置 shard_enabled = true type = master name = Caves master_server = 127.0.0.1 cluster_key = "your_cluster_key"
重要配置解释:
cluster_name: 服务器名字。cluster_password: 请务必修改成一个强密码! 这是玩家进入你服务器的凭证。cluster_description: 服务器简介。game_mode:survival(生存模式): 默认模式,推荐新手。endless(无尽模式): 无需担心饥饿和生命值。
season:together_normal: 正常世界,有四季变化。together_caves: 洞穴世界。
cluster_key: 这是一个集群密钥,用于区分不同的服务器集群,如果你只运行一个世界,可以随便设置一个字符串,如果你想同时运行地上世界和洞穴世界,这个密钥必须完全一样!
编辑完成后,按
Ctrl + X,然后按Y,最后按Enter保存并退出。 -
(可选)配置世界预设: 你可以创建一个名为
worldgenoverride.lua的文件来自定义世界生成,比如设置平原、生物群系等,对于新手,可以先跳过,使用默认设置。
第五步:配置端口转发
为了让外部的玩家能连接到你的服务器,你必须开放端口。
-
《饥荒》需要的端口:
- 主端口:
10888(UDP) - Steam 认证端口:
27016(TCP/UDP) - Steam 查询端口:
27015(UDP) - 备用端口:
10999(UDP)
- 主端口:
-
在服务器上开放端口: 使用
ufw(Uncomplicated Firewall) 来管理防火墙。# 开放上述端口 sudo ufw allow 10888/udp sudo ufw allow 27016/tcp sudo ufw allow 27016/udp sudo ufw allow 27015/udp sudo ufw allow 10999/udp # 启用防火墙(如果还没启用) sudo ufw enable
在输入
sudo ufw enable时,输入y并回车。 -
在路由器上端口转发: 这一步至关重要!如果你的服务器在家庭网络中(比如你的电脑或NAS),你必须在你的路由器设置里进行端口转发。
- 登录你的路由器管理界面(通常是
168.1.1或168.0.1)。 - 找到“端口转发”、“虚拟服务器”或“NAT”设置。
- 添加以下规则:
- 外部端口:
10888-> 内部 IP:你的服务器内网IP -> 内部端口:10888(协议: UDP) - 外部端口:
27016-> 内部 IP:你的服务器内网IP -> 内部端口:27016(协议: TCP/UDP) - 外部端口:
27015-> 内部 IP:你的服务器内网IP -> 内部端口:27015(协议: UDP) - 外部端口:
10999-> 内部 IP:你的服务器内网IP -> 内部端口:10999(协议: UDP)
- 外部端口:
- 如何找到服务器的内网 IP? 在服务器终端里输入
hostname -I。
- 登录你的路由器管理界面(通常是
第六步:启动服务器
万事俱备,可以启动服务器了!我们使用 screen 来让它后台运行。
-
进入服务端目录:
cd ~/dontstarve/DoNotStarveTogether
-
启动主世界:
screen -S dst_master
这会创建一个名为
dst_master的会话并进入它,如果会话已存在,可以使用screen -r dst_master重新进入。 -
在
screen会话中启动服务端: 输入以下命令来启动主世界(地上世界):./dontstarve_dedicated_server_nullrenderer -persistent_storage_root ~/dontstarve -conf_dir cluster
./dontstarve_dedicated_server_nullrenderer: 启动命令。-persistent_storage_root ~/dontstarve: 指定游戏存档和配置的根目录。-conf_dir cluster: 指定配置文件夹名称,它会去寻找~/dontstarve/cluster/下的cluster.ini。
-
启动洞穴世界(可选): 如果你想同时开启洞穴世界,需要另开一个 SSH 窗口,然后执行类似的命令,但指定
type为caves。在新的 SSH 窗口中:
cd ~/dontstarve/DoNotStarveTogether screen -S dst_caves ./dontstarve_dedicated_server_nullrenderer -persistent_storage_root ~/dontstarve -conf_dir cluster -shard Caves
-shard Caves: 这个参数告诉服务端这是一个名为Caves的分片(世界)。
-
detached Screen 会话: 启动后,服务器会开始加载并显示日志,如果你想退出 SSH 但让服务器继续运行,在
screen会话中按Ctrl + A,然后按D,这会 "detached"(分离)会话,但程序仍在后台运行。 -
如何管理服务器:
-
重新连接到服务器:
# 查看所有 screen 会话 screen -ls # 重新连接到某个会话,dst_master screen -r dst_master
-
正常关闭服务器: 在
screen会话中,输入cave然后回车,会进入一个控制台,输入shutdown并回车,服务器会安全保存并关闭。 -
强制关闭服务器: 如果无法正常关闭,可以在主机的 SSH 终端里,找到
screen的进程 ID (PID),kill掉它。# 找到 PID pgrep -f dontstarve_dedicated_server_nullrenderer # 假设 PID 是 12345,强制结束 kill -9 12345
-
第七步:连接你的服务器
- 启动《饥荒:联机版》客户端。
- 在主菜单点击 "开始游戏"。
- 选择 "加入游戏"。
- 在服务器列表下方,点击 "添加服务器"。
- 服务器名称:随便填一个你喜欢的名字,方便识别。
- 服务器地址:填入你的公网 IP 地址。
- 端口:填入
10888。 - 点击 "添加",然后双击你添加的服务器,输入之前设置的
cluster_password,就可以进入游戏了!
常见问题与排错
-
Q: 玩家连接不上,显示超时或无法连接。
- A: 99% 的原因是端口没有正确开放,请仔细检查:
- 服务器的
ufw防火墙是否开放了端口? - 路由器的端口转发是否设置正确?外部端口和内部端口是否都填对了?目标服务器的内网 IP 是否正确?
- 服务器的
- A: 99% 的原因是端口没有正确开放,请仔细检查:
-
Q: 启动服务端时提示缺少库文件,
libcurl.so.4。- A: 这是因为缺少某些系统依赖,根据错误提示,安装相应的库。
sudo apt install -y libcurl4-gnutls-dev libsdl2-2.0-0
可以在网上搜索具体的错误信息来找到解决方案。
- A: 这是因为缺少某些系统依赖,根据错误提示,安装相应的库。
-
Q: 如何更新服务器?
- A: 停止服务器(
cave->shutdown),然后回到第三步,重新下载最新版的服务端文件,覆盖旧文件即可。
- A: 停止服务器(
-
Q: 如何安装 MOD?
- A: 这是一个稍微复杂的话题,基本步骤是:
- 在
DoNotStarveTogether文件夹下创建mods文件夹。 - 从 Steam创意工坊 下载 MOD 的
workshopID。 - 使用
steamcmd命令行工具来下载和管理 MOD。 - 在
cluster.ini中启用你下载的 MOD。
- 在
- A: 这是一个稍微复杂的话题,基本步骤是:
希望这份详细的指南能帮助你成功搭建起自己的《饥荒》服务器!祝你玩得开心!
