本篇文章的技术内容来自于哔哩哔哩的 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
好了以上就是我搭建的过程了!自己动手去尝试吧!!!