饥荒联机版专用服务器搭建教程(二)【Linux篇】
全幼儿园最帅66氵
编辑于 2025年04月29日 11:14
收录于文集
共5篇

此为饥荒联机版专用服务器搭建的系列教程。主要包括服务搭建、配置修改、MOD管理、服务器维护等。本篇文章为Linux平台下的服务器搭建教程。

Windows平台教程参见:饥荒联机版专用服务器搭建教程(一)【Windows篇】​

cut-off

更新说明

  • 2025-04-17 编写教程初版

1.本教程适用范围

  • 在云服务器,Linux系统搭建专用服务器

  • 有一定的Linux系统使用能力

  • 建议使用CentOS、Ubuntu系统

  • 部分可能出现的问题及解决方案,可以参见文末的【#常见问题】

2.购买云服务器

想要搭建专用服务器,必须先拥有自己的云服务器,以此为基础进行搭建。饥荒服务器并不需要很高的配置,对于6人以下的场景,如果只开地面地图,1核2G足以。如果需要地面+洞穴,2核4G则足够。

2.1 购买渠道

目前国内主流云服务商(阿里云、腾讯云)都不定期有一些活动,可以在活动期间购买,还是很划算。符合条件的可以低价购买学生机,性价比超高。

2.2 安全组/防火墙配置

购买服务器之后,需要放开网络限制,才能访问到服务器。根据不同的云服务厂商,配置可能略有区别,大体一致。在对应云服务商的管理界面,找到“安全组”或者“防火墙”配置,添加规则,允许所有TCP/UDP连接(追求简单,此处放开所有端口,如果对服务器比较了解,可以自定义放开对应端口,不一定放开全部)

此处以阿里云为例:

3.环境准备

服务器的运行需要依赖32位环境,在搭建服务器之前,安装依赖包。不同发行版的Linux系统处理有一些细微的区别。

3.1 CentOS系统

针对CentOS系统或者其他基于Red Hat的发行版,使用yum进行包管理

更新源

代码块
Shell
自动换行
复制代码
yum update
yum upgrade -y
复制成功

安装依赖

代码块
Shell
自动换行
复制代码
yum install -y glibc.i686 libstdc++.i686 libgcc.i686 libcurl.i686 libcurl-devel
复制成功

3.2 Ubuntu系统

针对Ubuntu系统或者其他基于Debian的发行版,使用apt进行包管理

配置更新源

代码块
Shell
自动换行
复制代码
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt-get -y update
复制成功

安装依赖

代码块
Shell
自动换行
复制代码
sudo apt-get -y install lib32gcc-s1 libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386
复制成功

3.3 问题处理

如果安装失败,可以根据安装失败的具体依赖包,自行搜索处理教程。

4.安装SteamCMD

我们需要使用steamCMD安装游戏服务端。

4.1 创建文件夹

在用户的home目录创建饥荒服务器目录

dst-server: 饥荒服务器的根目录

dst-server/steamcmd: steamcmd的目录

代码块
Shell
自动换行
复制代码
cd ~
mkdir -p dst-server/steamcmd
复制成功

4.2 安装steamcmd程序

下载并解压steamcmd程序

代码块
Shell
自动换行
复制代码
cd ~/dst-server/steamcmd/
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
复制成功

下载完成后,steamcmd文件夹的内容如下图所示

执行steamcmd.sh文件,运行steamcmd程序

代码块
Shell
自动换行
复制代码
./steamcmd.sh
复制成功

等待完成显示【Loading Steam API...OK】

`Ctrl + C`或者输入`quit`退出steamcmd程序。完成后的文件结构如下所示:

如果遇到问题,可查看文末的【#常见问题】,或去官网获取最新软件和相关教程,官网地址:【https://developer.valvesoftware.com/wiki/SteamCMD】

5.安装饥荒服务端

指定游戏安装目录,安装饥荒联机版服务端。

5.1 创建游戏安装文件夹

代码块
Shell
自动换行
复制代码
cd ~
mkdir -p dst-server/dontstarve
复制成功

5.2 安装游戏

代码块
Shell
自动换行
复制代码
~/dst-server/steamcmd/steamcmd.sh +force_install_dir ~/dst-server/dontstarve +login anonymous +app_update 343050 validate +quit
复制成功

由于众所周知的原因,国内安装可能会比较慢,耐心等待。

安装完成后,会看到【Success! App '343050' fully installed.】界面显示如下:

6.创建服务配置

运行服务器,需要游戏官方的token,进行鉴权,并且需要服务器配置信息。如下为一个简单的获取配置信息的办法。

6.1 获取服务配置

  • 访问科雷官网:【https://accounts.klei.com/login】,使用steam账户登陆

登录之后选择【游戏】-【《饥荒:联机版》的游戏服务器】

添加新服务器,输入【你的服务器名称】,然后点击【添加服务器】

添加完成后,选择【配置服务器】

输入基础的信息,然后点击【下载设置】

下载完成后,得到一个名为“MyDediServer.zip”的压缩文件。解压文件后,文件夹的结构如下:

6.2 配置服务器

创建游戏配置文件夹以及上传配置文件

代码块
Shell
自动换行
复制代码
cd ~
mkdir -p dst-server/dontstarve-config/clusters
复制成功

使用`XFtp`等工具将上述解压的`MyDediServer`文件夹上传到`~/dst-server/dontstarve-config/clusters`目录下。此时的`dst-server`目录的结构如下所示:

`dontstarve-config`目录的结构如下:

【cluster.ini】:集群的配置

【cluster_token.txt】:服务器token

【Caves】:洞穴相关的配置

【Master】:地面相关配置

7.启动游戏服务器

创建启动脚本来启动饥荒服务器,如果对Linux操作不熟悉的朋友可以在Windows下创建文件,再上传到`~/dst-server`即可。熟悉Linux的朋友可以直接在服务器创建文件即可。

7.1 创建启动脚本

创建`run_server.sh`文件,输入以下内容

代码块
Shell
自动换行
复制代码
#!/bin/bash

game_home=/home/tom/dst-server/dontstarve
game_config_dir=/home/tom/dst-server/dontstarve-config
game_log_path=/home/tom/dst-server/log

shard=$1
if [[ "$shard" == "Master" ]]; then
    echo "启动地面服务器"
elif [[ "$shard" == "Caves" ]]; then
    echo "启动洞穴服务器"
else
    echo "输入只能是Master或者Caves"
    exit -1
fi

cd "$game_home"/bin
run_command=(./dontstarve_dedicated_server_nullrenderer)
run_command+=(-console)
run_command+=(-persistent_storage_root "$game_config_dir")
run_command+=(-conf_dir clusters)
run_command+=(-cluster MyDediServer)
run_command+=(-shard "$shard")

mkdir -p "$game_log_path"
"${run_command[@]}" >"$game_log_path"/log_$shard.log 2>&1 &
复制成功

7.2 启动服务器

代码块
Shell
自动换行
复制代码
chmod +x run_server.sh
复制成功

启动Master服务器

代码块
Shell
自动换行
复制代码
./run_server.sh Master
复制成功

运行日志会存储在`log_Master.log`文件,可以查看日志内容

cut-off

启动Caves服务器

代码块
Shell
自动换行
复制代码
./run_server.sh Caves
复制成功

运行日志会存储在`log_Caves.log`文件,可以查看日志内容

启动成功之后,就可以在饥荒【浏览游戏】里面看到启动的服务器

8.停止服务器

8.1 查找服务器进程ID

代码块
Shell
自动换行
复制代码
ps -ef| grep dontstarve
复制成功

结果如下图所示,其中`1162530`就是对应的进程ID

8.2 停止对应的进程

代码块
Shell
自动换行
复制代码
kill 1162530
复制成功

9. 常见问题

9.1 缺失libcurl-gnutls.so.4

报错信息如下:

代码块
JavaScript
自动换行
复制代码
./dontstarve_dedicated_server_nullrenderer: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
复制成功

建立软连接即可解决

代码块
JavaScript
自动换行
复制代码
ln -s /usr/lib/libcurl.so /usr/lib/libcurl-gnutls.so.4
复制成功

9.2 缺失libstdc++.so.6

报错信息如下:

代码块
JavaScript
自动换行
复制代码
./dontstarve_dedicated_server_nullrenderer: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
复制成功

复制steamcmd的linux32文件夹下的包即可

代码块
JavaScript
自动换行
复制代码
cp ./linux32/libstdc++.so.6 /usr/lib
复制成功

cut-off

更多教程参见:饥荒联机版专用服务器系列教程​网页链接​