[重写]饥荒服务器搭建全指南

发布于 2020-03-14  190 次阅读


引入

众所周知,我之前写了一篇如何搭建饥荒服务器的指南,但是后面我自己看起来,看起来简直是sh*t,所以在这里重写!

注:本文借鉴http://blog.ttionya.com/article-1233.html这篇文章,但是改进了配置方式。亦可前往官方论坛中的教程dontstarve.fandom.com参考

搭建环境要求

我的配置

以下是我测试的环境,不保证你的环境能使用,请尽量和我保持一致。拒绝Windows服务器(对于学生服务器1G1M,资源占用还是太高)

  • CentOS 7.5 x64(阿里云CentOS 7.6 x64遇到不明问题)
  • 国内网络环境
  • Steam《饥荒联机版》(Wegame版用户仍可以参考本文)
  • 一个能玩《饥荒联机版》的Windows电脑
  • 一个会使用cd、mkdir等基础Linux命令的脑子

服务器硬件需求

以下是官方给出的每位玩家所需的带宽以及内存需求(1Mbps=1000Kbps=1000/8 Kbytes/s)所以10块一个月的学生服务器足以

  • Internet (Upload) = 8Kbytes / player / s
  • Ram =  around 65Mbytes/player

安装Steam CMD

注:《饥荒》不是开源游戏, 你需要先给服务器安装Steam,就像在电脑上安装Steam一样。碰到问题也可以参考官方给出的wiki说明文档

SSH到服务器,进行操作前的日常升级并安装SteamCMD

yum -y update #升级服务器
yum -y install glibc.i686 libstdc++.i686 screen libcurl.i686 #安装所需环境
user add -m dst -p 1234 #创建用户,建议为用户设置一个密码以便操作,以1234为例
#注意:使用root账户登录Steam会带来风险!
sudo su dst #切换到dst用户
mkdir ~/steamcmd #以下为手动安装过程
cd ~/steamcmd ##创建安装位置
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz ##下载程序
tar -zxvf steamcmd_linux.tar.gz ##解压
./steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit
##登录Steam并安装《饥荒联机版》PS:还是一大串命令复制起来方便(滑稽)

上面的343050是《饥荒联机版》的ID,你可以去 https://developer.valvesoftware.com/wiki/Dedicated_Servers_List看所有支持搭建远程服务器的游戏ID

检查依赖

cd ~/dst/bin
ldd dontstarve_dedicated_server_nullrenderer
./dontstarve_dedicated_server_nullrenderer

#我只遇到了一个错误: 
#/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
#采用CP法解决
cp ~/steamcmd/linux32/libstdc++.so.6 ~/dst/bin/lib32/


#以下是博客《天天の記事簿》中记载的错误解决方法

#/lib/libc.so.6: version `GLIBC_2.15' not found
#一般是因为安装的glibc版本过低导致的,比如说CentOS从YUM源中安装的仅有2.12版本
#从Klei官方提供的链接下载与glibc相关的3个文件,Debian系也是这样解决
cd ~/dst/bin/lib32/
wget https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/libc.so.6
wget https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/libpthread.so.0
wget https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/librt.so.1
 
#error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
#这是因为系统没有搜索到该文件
#使用cp方法运行时会出现./lib32/libcurl-gnutls.so.4: no version information available警告,无视之~
sudo apt-get install libcurl4-gnutls-dev:i386 #Debian系
cp /usr/lib/libcurl.so.4 ~/dst/bin/lib32/libcurl-gnutls.so.4 #RedHat系,Debian系未测试该方法是否可行

创建启动文件

以下命令是为了生成一个基本的配置文件目录框架

cd ~/dst/bin/
echo ./dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master > dst_overworld.sh
echo ./dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves > dst_caves.sh

接下来运行脚本,并在其提示 Your Server Will Not Start后,按Ctrl+C停止进程

sh dst_overworld.sh #输完等其运行完成按一下Ctrl+C
sh dst_caves.sh #同上,再按Ctrl+C
rm -rf ~/.klei/DoNotStarveTogether/Cluster_* #删除无效的默认配置

在 ~/.klei/DoNotStarveTogether/ 有一个 DediServer 文件夹,里面有 Master 和 Caves 的两个文件夹,这两个文件夹分别是地上和洞穴的配置目录。PS:.keli是隐藏文件,你需要使用ls -la命令来列出全部内容

安装完成!下一篇文章就是配置啦!


长风破浪会有时,直挂云帆济沧海。在这条路上一直走下去!