参考博客:
本文使用centos 7.7版本作为案例
一、服务器相关依赖的安装与配置
这里先简单说一下Linux不同发行版本的区别:常用的个人linux系统一般使用ubuntu,为debian系列的linux发行版本;deepin这种为国产系统(不予讨论);本文使用的centos为red-hat系列的linux发行版本。在搭建服务器的过程中,主要的区别就在于安装各种依赖和包的方式不同,ubuntu 一般是apt-get install; sudo apt-get install等等。 centos 一般为yum install; yum remove 等等。并且各种包的依赖管理不一致,有些包在ubuntu上可以直接install,但是使用Yum就找不到,这个时候就需要手动进行安装。但是一般可以根据官方文档的提示进行安装。废话太多,进入主要环节。
1、阿里云服务器的购买、选型、安装
这一步骤自行百度,一般阿里云服务器购买有两种,ECS服务器(弹性计算)和轻量应用服务器,两者区别不大,前者带宽只有1M,后者带宽有5M,建议选后者(我用的是ECS,感觉还行,也不是很卡,偶尔有点网络波动)。PS:25岁以下自动视为学生,享受学生优惠,10元/月,就很划算。
搭建好之后,下载安装Xshell破解版,愿意折腾的可以连带着下一个ftp用于服务器与本机的文件传输。
2、相关依赖安装
这里默认你已经购买并启动了阿里云服务器,使用xshell连接你的服务器,然后使用账号密码进行登录。
首先进行相关依赖的安装:
useradd -m dst
cd /home/dst
yum -y install glibc.i686 libstdc++.i686 screen libcurl.i686 lrzsz
3、steam命令以及饥荒服务器的安装
参考steamCMD,新建专门用于服务器的用户,并在该用户目录下面进行相关文件的配置。
mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit
这一步里面,在wget的时候可能会出错,因为阿里云无法访问steam的网址,这里需要在本机自己下载网址中的文件,然后使用rz命令将文件上传到服务器
cd ~/steamcmd
rz
# rz之后会打开一个窗口,选择你下载好的文件进行上传,这一步用于代替上个代码中的wget那一行
然后检查是否缺乏相关依赖
cd ~/dst/bin
ldd dontstarve_dedicated_server_nullrenderer
./dontstarve_dedicated_server_nullrenderer
如果有错误,可以参考ttionya的博客
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
#一般是因为安装的C运行库版本过低导致的,比如说CentOS从YUM源中安装的仅支持GLIBCXX到3.4.13
#所幸SteamCMD中也需要该动态链接库,并且自带了该动态链接库,只需要拷贝至DST文件夹中即可
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系未测试该方法是否可行
#博主只遇到了这几个错误,其他错误就不是很清楚了= =
4、创建用于配置服务器的脚本文件
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
sh dst_overworld.sh
#待出现Your Server Will Not Start后,按Ctrl+C终止进程(没有什么是靠Ctrl+C不能解决的,如果一下不行,那就两下)
sh dst_caves.sh
#待出现Your Server Will Not Start后,按Ctrl+C终止进程(没有什么是靠Ctrl+C不能解决的,如果一下不行,那就两下)
rm -rf ~/.klei/DoNotStarveTogether/Cluster_*
#删除之前创建的默认文件
在 ~/.klei/DoNotStarveTogether/
中就生成了一个 DediServer
文件夹,该文件夹下有名为 Master
和 Caves
的两个子文件夹,这两个文件夹分别是地上和洞穴的配置目录。
当饥荒升级之后,需要重新运行下列代码进行升级:
~/steamcmd/steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit
#注意这就是之前安装的命令,如果有修改路径的话,记得用实际路径哟
二、服务器的配置
先说下服务器配置的相关文件和路径,主要用到的是这几个目录.建议在本机新建一个tmp文件夹,创建相同的路径,然后将配置文件在对应路径下创建好,最后上传到服务器。
/home/dst/.klei/DoNotStarveTogether\MyDediServer
|---