前言

搭建饥荒是因为自己没啥游戏玩了,只狼打了断绝不死结局不想打二周目了(我个人不是很喜欢那种有明确故事线的游戏),正好饥荒促销,之前也是很多人给我推,我也就买了,然后为了以后跟同学联机啥的,我了解了一下它的储存机制,发现他是将本地作为主机,类似一个内网穿透的原理,也就是说我如果关机了,好友是无法进入游戏的,但是作为一个生存类游戏,肯定是希望服务器里的人可以随时进入,然后查阅了相关资料,也有相关的服务器教程,所以自己也是尝试了然后也成功了,自己也是对于这个饥荒不是很懂,对于mod加载,管理员,白名单黑名单等等没有配置,这个也是初步记录一下,以后熟练了再尝试加入新内容

第一步:开放10999,10998端口(UDP,TCP)

第一步是需要开放相关端口,这是饥荒地上和洞穴部分的端口,需要在安全组,如果你使用的是宝塔,还需要在防火墙打开相关端口

第二步:轻量应用服务器相关准备

1.安装服务器的基本条件

sudo yum update 
sudo yum -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686 screen

2.安装SteamCMD

cd /home && mkdir steamcmd && cd steamcmd 
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

这一步是在Linux下创建/home/steamcmd目录,并远程下载steamcmd的安装包,并解压,解压完目录下会有一个steamcmd.sh文件,这时候执行这个文件就可以启动SteamCMD,执行代码如下:

./steamcmd.sh

当你看到以 Steam> 开头的就代表进入了SteamCMD了,接下来再接着执行以下代码代码:

login anonymous 
force_install_dir /home/dstserver
app_update 343050 validate

这一步是下载饥荒服务器到/home/dstserver目录下,执行完代码后服务器会自己下载,等待下载完后输入quit或者 (ctrl + c) 退出SteamCMD,至此服务器已经下载好了,接下来就是配置服务器。

首先解决最重要的问题,linux下饥荒的服务器似乎需要的组件跟现在的组件产生了名字上的差错
导致启动服务器会显示缺少关键的组件libcurl-gnutls.so.4,因此需要执行下面的命令来解决:

ln -s /usr/lib/libcurl.so.4 /home/dstserver/bin/lib32/libcurl-gnutls.so.4

然后接着执行:

cd /home/dstserver/bin 
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/dstsave -conf_dir dst -cluster World1 -shard Master" > master_start.sh
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/dstsave -conf_dir dst -cluster World1 -shard Caves" > cave_start.sh
chmod +x master_start.sh cave_start.sh

输入 ./master_start.sh 启动主世界服务器。
然后你就会看到一些英语,当你看到[Connect] PendingConnection::Reset(true)标明服务器启动但还未配置所以显示未正常启动。
但这是成功的标志,之后按下Ctrl C正常关闭服务器。
同样的输入 ./cave_start.sh 启动洞穴服务器并正常关闭。

经过上述服务器初次启动,在 /home/dstsave/dst/World1/ 文件夹下,这个配置文件就是我们饥荒服务器的配置文件了,接下来在自己电脑上创建一个服务器,然后将配置文件复制到Linux服务器上

第三步:游戏服务器启动

1. 本地创建房间

在自己电脑上先创建一个新的服务器,并设置好你的房间名、密码、地洞、配置好服务器mod,然后点击创建,等房间创建好到选人界面,就可以退出了,比如下图的共产主义接班人房间

2. 找到本地房间的文件路径,并复制到Linux服务器

第一步创建好房间后,返回服务器搜索页面,点击左下角的“数据”,就会打开本地房间的文件目录

这里面Cluster_1代表联机版的房间,双击打开Cluster_1,文件目录如下:

将Cluster_1里面的所有文件全部复制到Linux服务器下的 /home/dstsave/dst/World1/ 目录下

3. 获取服务器token并粘贴到Linux服务器下

点击我的游戏——饥荒联机版服务器——添加新的服务器,然后你就得到了一串字母和数字,这就是token,复制这个token,然后粘贴到服务器上面的cluster_token.txt文件里

4. 启动服务器

先启动主地图服务器,输入如下命令:

cd /home/dstserver/bin 
screen -S master
./master_start.sh

如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台

同样的方式启动洞穴

screen -S caves 
./cave_start.sh

如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台

这时可以通过以下命令来查看改服务是否启动

netstat -nlp |grep :10999 
netstat -nlp |grep :10998
kill -9 进程号

同样你可以通过kill来关闭服务器

先写这么多,已经跑起来了,其他的敬请期待