饥荒联机版自建服务器搭建
近期在玩饥荒小游戏,是一个比较独特的生存类沙盒游戏,其中创建世界是以自己电脑为服务器创建,然后可以邀请朋友进自己的世界联机生存。
以个人电脑创建的游戏服务器质量,全凭个人PC的机器性能,如果自己的电脑关机或者本身机器性能不好,就会造成朋友连接不稳或掉线。

所以想办法将世界服务器从本机创建改为云服务器创建,这样这个世界就永远在运行,其他人也随时可连,也可以避免受个人机器影响。

一、准备工作
云服务器一台
- 系统:CentOS 7.6
- 配置:2C4G
- 系统盘:40G
- 公网IP:按流量计费、带宽越大越好。
- 安全组:开通 22、8080、10999、10998、10888 端口
我这里买的是华为云的竞价计费\竞享模式主机,一个小时机器费用不到一毛钱。

二、安装步骤
登录服务器,编辑安装脚本并执行
vim InstallDST.sh
脚本内容:
#!/bin/bash
cd ~
yum update -y
yum upgrade -y
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
yum -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686 glibc libstdc++ libcurl4-gnutls-dev libcurl screen
mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh +force_install_dir ~/dst +login anonymous +app_update 343050 validate +quit
cd ~/dst/bin/lib32 && ln -s /usr/lib/libcurl.so.4 ./libcurl-gnutls.so.4
mkdir -p ~/.klei/DoNotStarveTogether/MyDediServer
systemctl stop firewalld
systemctl disable firewalld
cd ~
wget http://clouddn.tugos.cn/release/dst-admin-1.4.0.jar -O dst-admin.jar
if [ $? -eq 0 ]; then
echo 饥荒后台管理下载完成
fi
执行安装
bash InstallDST.sh
脚本执行完毕后,会出现一个 dst-admin.jar 文件,执行该文件

java -jar dst-admin.jar
提示启动成功后,使用 ctrl + c 中断运行,这时又会出现 install.sh 与 dstStart.sh 两个脚本。

先执行 install.sh 脚本,安装基础服务。
bash install.sh
然后执行 dstStart.sh 脚本,选择 3. 重启服务
bash dstStart.sh

显示启动成功后,就可以访问该云服务器的公网 IP:8080 访问饥荒管理后台了,默认账号/密码 admin/123456
查看帮助文档,会教从 0 开始启动一个饥荒服务器。
三、自动备份
由于该后台提供的自动备份为每天早晚 6 点各备份一次,饥荒世界为每五分钟一天,要是想要保存每天的存档,就需要每五分钟执行一次备份,可以通过以下脚本自动完成
vim /opt/backup.sh
脚本内容如下
#!/bin/bash
USERNAME='admin'
PASSWORD='123456'
SERVER=`curl -s cip.cc | grep 'IP'| awk -F ':' '{print $2}' | sed -e 's/^[ \t]*//g'`
# 登录获取 Cookie
JSESSIONID=`curl -i -s -X POST -d "username=${USERNAME}&&password=${PASSWORD}" "http://${SERVER}:8080/login"`
JSESSIONID=${JSESSIONID:38:36}
# 调用备份接口
curl -s -X GET -H "Cookie: JSESSIONID=${JSESSIONID}" "http://${SERVER}:8080/home/backup"
crontab -e
每五分钟执行一次即可
*/5 * * * * bash /opt/backup.sh