​ 跟朋友一起联机饥荒的时候经常因为其中一方网络不佳,导致体验极差 (;′⌒`)
​ 为了让兄弟们有最佳的体验,稍微微研究了一下如何在阿里云上搭建一个饥荒服务器 (๑¯∀¯๑)


准备

  1. 云服务器(阿里、腾讯、华为等)
  2. 远程连接工具(xshell、SecureCRT等)
  3. 如果服务器内存不够 (学生机) 可以用swap解决

服务器端的安装

其他版本的Linux仅供参考

首先先更新系统内的源并安装32位运行库

sudo yum upgrade -y

sudo yum update -y

sudo yum -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686 screen -y

安装steamCMD

cd /home && mkdir steamcmd && cd steamcmd

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

tar -xvzf steamcmd_linux.tar.gz

启动SteamCMD

./steamcmd.sh

进入steamCDM后更新饥荒服务器,结束后退出

login anonymous

force_install_dir /home/dstserver

app_update 343050 validate

需要创建一个软连接

ln -s /usr/lib/libcurl.so.4 /home/dstserver/bin/lib32/libcurl-gnutls.so.4

然后将启动指令写入shell脚本并给上权限

cd /home/dstserver/bin

echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/dstsave -conf_dir dst -cluster World1 -shard Master" > master_start.sh

echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/dstsave -conf_dir dst -cluster World1 -shard Caves" > cave_start.sh

chmod +x master_start.sh cave_start.sh

输入 ./master_start.sh 启动世界测试一下,只要出现Sim paused就说明成功了 o( ̄︶ ̄)o
启动之后会自动生成 /home/dstsave/dst/World1/ 路径的文件,之后的配置大部分都会在这里进行
成功示例

服务器的配置与部署

创建本地房间

首先我们要在本地创建一个地图,设置好用户名、密码、模式之后生成世界
基本信息

如果需要添加mod,在模组中选择需要启动的模组后再生成世界(可以免去配置modoverrides.lua文件的步骤)
mod添加

上传服务器

世界创建好后返回大厅并打开数据文件夹
回到主页

打开修改日期最新的Cluster_编号(编号的数量等于创建世界的数量)的文件夹,将Master文件夹压缩成zip(方便在服务器上解压)后通过lrzsz将文件上传到 /home/dstsave/dst/World1/ 路径下并解压
上传解压

配置Token及管理员

打开 科雷(Klei)官网 ,登录后选择游戏并选择 《饥荒:联机版》的游戏服务器
创建Token
输入名字后点击添加新服务器,会生成一个Toekn,复制这串Token并写入 cluster_token.txt 文件内

echo "复制的Token" > /home/dstsave/dst/World1/cluster_token.txt

回到用户信息页
Klei用户ID
新建一个 adminlist.txt 文件,将Klei用户ID粘贴进去

echo "复制的用户ID" >> /home/dstsave/dst/World1/adminlist.txt

配置服务器mod

编辑 /home/dstserver/mods/ 路径下 dedicated_server_mods_setup.lua 文件,格式如下(id为Master文件夹内modoverrides.lua文件中workshop的参数)

//引用该模组
ServerModSetup("id")

//更新该模组
ServerModCollectionSetup("id")

服务器的开启与关闭

首先启动地上世界

cd /home/dstserver/bin

screen -S master

./master_start.sh

如果没有报错按ctrl+d进入后台运行接着启动地下世界

screen -S caves

./cave_start.sh

查看端口是否启用指令(启用说明程序正在运行)

//地上世界
netstat -nlp |grep :10999

//地下世界
netstat -nlp |grep :10998

结束进程

kill -9 id

kill -9 id

部署完成后,如果饥荒大厅搜索不到服务器就执行该操作

cd /home/steamcmd/

./steamcmd.sh

更新一下服务器就可以了(前几天准备玩的时候死活找不到服务器,然后调了一晚上 (`へ´) )

login anonymous

force_install_dir /home/dstserver

app_update 343050 validate
最后修改:2021 年 09 月 14 日
如果觉得我的文章对你有用,请随意赞赏