前言

升级服务器,并安装steam和饥荒联机linux版

这里只说centos7的服务器,其他linux的服务器大同小异只是安装命令有所出入。首先在阿里或者腾讯等服务器提供商购买云服务器后。通过ssh进入服务器后进行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 级yum所有包同时也升级软件和系统内核

yum -y update
# 安装依赖
yum -y install glibc.i686 libstdc++.i686 screen libcurl.i686

# 创建用户和目录,推荐创建用户
useradd steam
# 换至新创建的用户
su steam
#新建下载路径
mkdir -p ./module/software
# 进入module目录
cd module
# 新建steamcmd安装目录
mkdir steamcmd_linux
# 进入下载路径
cd module/software

# 载解压steamcmd,此时应该/home/steam/module/software目录下
wegt https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
# 解压安装包至上级steamcmd目录
tar -zxvf steamcmd_linux.tar.gz -C ../steamcmd_linux/

# steamcmd安装目录
cd /home/steam/module/steamcmd_linux
# 运行steamcmd安装脚本,进入steam命令行模式
./steamcmd.sh

# 设置安装目录
Steam>force_install_dir /home/steam/module/DST
# 登录无密码账号
Steam>login anonymous
# 下载饥荒联机版,饥荒联机版代号343050
Steam>app_update 343050 validate
# 退出steam命令行
Steam> quit

设置软连接

1
ln -s /usr/lib/libcurl.so.4 /home/steam/module/DST/bin/lib32/libcurl-gnutls.so.4

配置服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 进入到DST目录创建世界目录
cd /home/steam/module/DST
mkdir -p allworlds/world

# 建启动脚本
cd /home/steam/module/DST/bin/
# 写入主世界启动脚本
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam/module/DST -conf_dir allworlds -cluster world -shard Master" > master_start.sh
# 写入洞穴启动脚本
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam/module/DST -conf_dir allworlds -cluster world -shard Caves" > cave_start.sh
# 启动脚本的相关注释如下
# dontstarve_dedicated_server_nullrenderer饥荒的启动脚本
# -console控制台参数
# -persistent_storage_root /home/steam/module/DST饥荒存档位置参数,roo空格后面跟绝对路径
# -conf_dir allworlds 在之前的存档位置上指定世界配置参数目录,空格后是目录的相对位置
# -cluster World 在之前配置文件目录的基础上,指定世界配置参数目录,空格后跟世界配置目录的相对路径
# -shard Master分区,一般会分地上和洞穴,这里主要为单服务器启动多个世界做区分,比如我一个服务器启动饥荒地面和洞穴,就需要分别启动Master和Cave,空格后跟分区目录名

# 对两个文件授可执行权限
chmod +x master_start.sh cave_start.sh

如此基本搞定了linux版本的DST,接下只是用linux的方式搭建游戏房间。

创建并复制服务器密钥和用户ID

打开steam进入游戏饥荒联机版,进入克雷官网,复制自己的用户ID和服务器密钥,服务器密钥如果没有就自己新建,之前很久没用的建议删除新建。后面要将以上文件复制进配置文件中。分别写入 adminlist.txt cluster_token.txt


游戏设房间,添加MOD配置。并添加管理员权限及密钥文件。

创建游戏房间,添加MOD配置,这部直接在windows系统下进行即可,点击生成世界后进入到选择人物界面,断开连接,回到游戏主页点击数据。

进入世界配置文件夹内,新建 adminlist.txt cluster_token.txt 后将之前复制的内容粘贴进去

然后整体将 cluster_1 文件夹内的内容上传到服务器的 /home/steam/module/DST/allworld/world 文件夹内。
这里可以使用sftp等上传工具上传到服务器上,我懒得用,直接用scp命令打包上传解压的,不做赘述。

服务器添加mods

找到电脑上Master或者Caves目录下的 modoverrides.lua 文件,找到形如 workshop-xxxxxxxx 的内容,后面的xxxxx就是mod的代码,创意工坊内mod界面网址后的数字就是这个。

将这些纯数字代码复制出来写成 ServerModSetup(“xxxxxxx”) 格式,写入服务器上的 home/steam/module/DST/mods/dedicated_server_mods_setup.lua 文件中。
可以直接用vim命令写入,也可以借助第三方工具。

重要的事情
这个 dedicated_server_mods_setup.lua 文件只是代表服务器会下载,具体开启MOD以及设置MOD,需要进入/home/steam/module/DST/allworlds/world/Master,里面修改 modoverrides.lua 文件,由于刚刚电脑中已经配置过了,所以这个文件是准确OK的,但是如果后期添加MOD, dedicated_server_mods_setup.lua modoverrides.lua 都需要修改保存。

进入后台并开启饥荒服务器

这里使用screen进行操作,可以先查看自己服务器有无安装

1
which screen

如存在则会提示路径

1
2
3
[steam@VM-4-14-centos Master]$ 
/usr/bin/screen
[steam@VM-4-14-centos Master]$

没有就使用相关命令进行安装

1
yum install screen

这里保证自己在DST的bin目录下,如果不在cd进入

1
2
3
cd /home/steam/module/DST/bin/
screen -S master
./master_start.sh

等候程序运行完成后,键入CRTL+A+D,保持运行并退出当前master窗口。
继续

1
2
3
cd /home/steam/module/DST/bin/
screen -S cave
./cave_start.sh

等候程序运行完成后,键入CRTL+A+D,保持运行并退出当前cave窗口。
至此我们的服务器已经启动,可以通过运行端口查看程序是否运行。

1
2
3
4
#查看地下世界是否运行
netstat -nlp | grep 10998
#查看地下洞穴是否运行
netstat -nlp | grep 10999

如果成功则会显示端口号否则啥都没有
也可以通过游戏进行搜索或者进入游戏主页按~后在远端控制台使用命令直连。
主机地址可以是IP也可以是IP绑定的域名,也可以添加端口号啥的,具体百度。

1
c_connect("tx.shantiao.top")

总之就能玩耍了,相关的服务器配置后面会另外补充一篇文章进行说明。
重要的事情
需要注意的是,现在的服务器提供商一般都会有安全组或者平台防火墙之类的,这里需要设置开放10999和10998端口,否则即使你搭建的服务器正常也搜索不到你创建的游戏。另外系统的防火墙也请自行检查是否开放相关端口或者关闭,否则也无法进行游戏。

其他的一些BUG以及更新重启及升级

如果头天游戏还能进入,第二天搜索不到了可以进行排查。

  • 1.是程序宕机了,这里一般进入后台窗口重启服务就行。

    1
    2
    3
    4
    # 切换进入主世界后台窗口
    screen -r master
    # 确认程序停止就重启服务
    ./master_start.sh

    等候程序运行完成后,键入CRTL+A+D,保持运行并退出当前master窗口。

    1
    2
    3
    4
    # 切换进入洞穴世界后台窗口
    screen -r cave
    # 确认程序停止就重启服务
    ./cave_start.sh

    等候程序运行完成后,键入CRTL+A+D,保持运行并退出当前cave窗口。

  • 2.切换进入后台后发现服务器依旧在运作,而且端口检查正常,那大概率是游戏更新了。可以通过进入游戏主页按~后在远端控制台使用命令直连,如果有版本问题会进行相应报错。
    这里直接停止相关程序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 切换进入主世界后台窗口
    screen -r master
    # 停止程序
    # 键入Crtl+c,停止程序
    # 入CRTL+A+D,保持运行并退出当前master窗口
    # 切换进入洞穴世界后台窗口
    screen -r cave
    # 停止程序
    # 键入Crtl+c
    # 键入CRTL+A+D,保持运行并退出当前cave窗口

    停止服务后进行游戏更新,游戏更新的步骤和安装步骤是一样的,这里请回头看上文。

  • 3.概率事件
    我遇到了小概率事件更新后,出现MOD丢失,仔细排查后发现是 dedicated_server_mods_setup.lua 文件内的内容丢失,这里需要大家注意。
    重启服务的内容如上,只是如果没有杀掉后台窗口的话,可以直接进入后台窗口,不需要新建后台窗口了。

  • 4.多余的话

  • 重要的事情*
    后面每次用ssh进入系统进行配置的时候记得切换steam账号

  • 重要的事情*
    后面每次用ssh进入系统进行配置的时候记得切换steam账号

  • 重要的事情*
    后面每次用ssh进入系统进行配置的时候记得切换steam账号


码字不易,且读且珍惜,如果有兴趣可以加Q群38706109 一起玩。