自建一个 饥荒:联机 服务器

自建一个 饥荒:联机 服务器

本篇文章的技术内容来自于哔哩哔哩的 WananeezZ
他的文章讲解的很详细,也感谢他的文章了!!!

起因还是因为我和我同学一起玩饥荒时,加入他的世界我这延迟迟迟不下 100ms 以内
最低也就是 500+ms 【还是开加速器的情况下!
不清楚是什么问题,我死活都无法解决,但是!我突然想到有一个 富婆 送了我一台香港的服务器。
反正这个服务器闲着也是闲着,不如拿来被我 拷打 搭建算了!

索性就开始了我的搭建之路~

1.准备一台2H4G的服务器

为什么说是准备一台2H4G的服务器呢??
因为我自建的就是2H2G的服务器,测试了一下不加MOD四个人玩没什么压力
那么就开始我的搭建之旅吧!

我的服务器配置如下

CPU:2核 E5 v4

内存:4G DDR4

系统盘:30G

数据盘:40G

带宽:10Mbps

线路:香港CTG CN2三网精品

系统:乌班图 最新

1.安装依赖所需要的依赖

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386 
sudo apt update  //会出现一个粉色的弹窗,直接回车即可其他不用管
sudo apt install libstdc++6 libgcc1 libcurl4-gnutls-dev:i386 lib32z1

我这是没遇到什么问题直接通过了但是原作者说是会遇见【add-apt-repository command not found】的报错并给出了解决命令

sudo apt update
sudo apt install software-properties-common
sudo apt update

如果你没有报错的话可以省略这段ssh命令直接进行下一步的操作

作者的原文章中写了这么一句话
注意:有些源里可能没有libcurl4-gnutls-dev,需要直接安装:

cd /usr/lib/
ln -s libcurl.so.4 libcurl-gnutls.so.4

这应该是安装必要的扩展吧,我也是执行了这段命令行增加了这个扩展

2.安装SteamCMD和饥荒联机版

在安装完成依赖之后就是开始安装服务器的饥荒了!
创建steamcmd文件夹

mkdir ~/steamcmd

cd ~/steamcmd

下载、解压并启动steamcmd

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

tar -xvzf steamcmd_linux.tar.gz

./steamcmd.sh

输入左侧出现“steam>”说明steamcmd启动成功

接着,安装饥荒联机版

force_install_dir ../dontstarvetogether_dedicated_server

login anonymous

app_update 343050 validate

quit

'app_update 343050 validate'是去steam中下载饥荒联机服务器的命令,需要等待一会,当执行完成后输入'quit'退出steam服务

3.创建一个存档

这里我也是懒得截图说明了,直接搬运作者的原话吧!
这是图片中给的命令,怕有些人懒得输入我就贴出来吧,请从上往下看完图片的内容之后在来使用这个命令

mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1 

4.把设置好的存档传入服务器

我还是懒得自己动手截图索性贴上图片吧!!

文件传输软件的话是 FileZilla 在果核剥壳的网站内就有这绿色版本资源

5.设置启动脚本

编写服务器中启动饥荒服务器的脚本

根目录下,创建并设置脚本文件

cd ~

vim boot.sh

把如下代码粘贴到刚创建的boot.sh

#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="Cluster_1"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
function fail() {
    echo Error: "$@" >&2
    exit 1
}
function check_for_file() {
    if [ ! -e "$1" ]; then
        fail "Missing file: $1"
    fi
}
cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
check_for_file "$install_dir/bin"
cd "$install_dir/bin64" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)
"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'

注意:代码粘贴完毕后按“:”,然后输入“wq”,回车,便可保存并退出【切记是英文的:而不是中文的:哦~

该设置中的启动方式为64位服务器,想启动32位的如下修改

修改这两行

cd "$install_dir/bin64" || fail

run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)

如下:

cd "$install_dir/bin" || fail

run_shared=(./dontstarve_dedicated_server_nullrenderer)

设置boot.sh权限

sudo chmod u+x boot.sh

6.开放端口

UDP协议开放10888、10998、10999

TCP和UDP协议开放8767、27017

7.启动脚本运行饥荒服务端

到根目录,也就是boot.sh所在的目录,运行下面的代码,启动服务器

cd ~

nohup ./boot.sh>root.log 2>&1 &

如果报错error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file:或者其中有‘libcurl-gnutls.so.4’一类的报错,那是依赖没有装好,回到上面重新装一下

执行后饥荒服务器会在后台运行,可以通过下面这个命令查看输出的日志

tail -f root.log

有这些提示就代表启动成功了

8.关闭服务器

服务器启动后会一直运行,玩家都不在会暂停,关闭服务器需要找到服务器pid,然后kill掉即可,再想启动还是上述命令

ps -ef | grep don

kill 服务器pid【Pid就是你ps -ef | grep don 出来的那些数字


服务器性能查看

top 

好了以上就是我搭建的过程了!自己动手去尝试吧!!!