饥荒联机版服务器搭建教程(Linux)
网上教程多为Winouws,在此出一篇关于Linux的教程,主要包括服务搭建、配置修改等。
1.前置条件
有云服务器,配置推荐:6人以下的场景,只开地面地图,1核2G足以。如果需要地面+洞穴,2核4G则足够
安装Linux系统,推荐CentOS、基于Debian的系统(Ubuntu)
会基本的Linux的使用
2.服务器设置
购买服务器之后,需要放开网络限制,才能访问到服务器。不同的云服务厂商,配置略有区别。在对应云服务商的管理界面,找到“安全组”或者“防火墙”配置,添加规则,如对服务器不了解则允许所有TCP/UDP连接(不推荐),饥荒联机已UDP连接为主,使用10999(地面)和11000(洞穴)两个端口,保险起见开放UDP端口10999-11002即可。
此处以阿里云举例:

3.依赖安装
3.1 CentOS系统
适用于CentOS系统或者其他基于Red Hud的发行版,使用yum进行包管理
注意:自 2024 年 7 月 1 日开始,CentOS 7停止更新维护可能需要更换国内yum源
更新源
yum update
yum upgrade -y安装依赖
yum install -y glibc.i686 libstdc++.i686 libgcc.i686 libcurl.i686 libcurl-devel3.2 Ubuntu系统
适用于Ubuntu系统或者其他基于Debian的发行版,使用apt进行包管理
提示:如服务器在国内可能速度较慢,可更换国内源
更新源
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt-get -y update安装依赖
sudo apt-get -y install lib32gcc-s1 libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i3864.安装SteamCMD
4.1 创建文件夹
在用户的home目录创建饥荒服务器目录
(可自行选择目录,在接下来的配置中要更换为自己配置的目录)
dst-server: 饥荒服务器的根目录
dst-server/steamcmd: steamcmd的目录
cd ~
mkdir -p dst-server/steamcmd4.2 安装steamcmd程序
cd ~/dst-server/steamcmd/
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -执行如下图:

执行steamcmd.sh文件,运行steamcmd程序
./steamcmd.sh等待完成显示OK,并自动进入steamcmd中

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

5.安装饥荒服务端
5.1 创建游戏安装文件夹
cd ~
mkdir -p dst-server/dontstarve5.2 安装游戏
~/dst-server/steamcmd/steamcmd.sh +force_install_dir ~/dst-server/dontstarve +login anonymous +app_update 343050 validate +quit安装完成后,会看到【Success! App '343050' fully installed.】界面显示如下:

6.创建服务配置
6.1 获取服务配置
访问科雷官网:【https://accounts.klei.com/login】,使用steam账户登陆

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


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

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

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

下载完成后,得到一个名为“MyDediServer.zip”的压缩文件。解压文件后,文件夹的结构如下:
6.2 配置服务器
创建游戏配置文件夹以及上传配置文件
mkdir -p dst-server/dontstarve-config/clusters使XFtp、FinalShell等工具将上述解压MyDediServer文件夹上传~/dst-server/dontstarve-config/clusters目录下。此时dst-server目录的结构如下所示:
dontstarve-config目录的结构如下:
7.启动游戏服务器
7.1 创建启动脚本
创建run_server.sh文件,输入以下内容
#!/bin/bash
# 以下需要替换为你自己的路径
game_home=/home/game/dst-server/dontstarve
game_config_dir=/home/game/dst-server/dontstarve-config
game_log_path=/home/game/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 启动服务器
chmod +x run_server.sh启动Master服务器
./run_server.sh Master运行日志会存储log_Master.log文件,可以查看日志内容
启动Caves服务器
./run_server.sh Caves运行日志会存储log_Caves.log文件,可以查看日志内容
启动成功之后,就可以在饥荒【浏览游戏】里面看到启动的服务器
8.停止服务器
8.1 查找服务器进程ID
ps -ef| grep dontstarve8.2 停止对应的进程
kill 1162530