ubuntu上搭建steam饥荒专用联机服务器

2018年11月20日游戏

在南京,花了65块网费和小伙伴们玩了局域网的饥荒(可以吹一年了),甚是好玩。不过俺回杭州了,想用互联网继续玩耍,迫于每次玩都需主机在线的问题,特研究如何让我吃灰的,剩余不到两个月的主机发挥最后的余热。

硬件环境

我的ecs是1核1G内存1M带宽的。 官网对于建立一个稳定的独立服务器必须又以下硬件要求:带宽8KB/玩家/秒,内存约65MB/玩家,cpu没有明确的要求。

环境准备

dpkg --add-architecture i386 # 添加i386的构建器
apt-get update # 更新 apt-get
apt-get install -y lib32gcc1 lib32stdc++6 libcurl4-gnutls-dev:i386 screen # 安装32位依赖库

安装 steamCMD 和 DST

下载 steamCMD

cd ~
mkdir steamcmd # 在 /root 下创建 steamcmd/ 文件夹
cd steamcmd # 进入 sreamcmd/ 文件夹
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz

运行 steamcmd

./steamcmd.sh

运行 steamcmd 之后,命令提示符会变成 Steam>,这时进入了 steamcmd 的命令交互界面。现在使用 steamCMD 安装 DST

login anonymous # 以匿名身份登录
force_install_dir ../dstserver # 在下建立文件夹安装 DST 服务器
app_update 343050 validate # 安装 DST,成功后会出现 Success! App '343050' fully installed.
quit # 完成后退出

cd ~/dstserver/bin
./dontstarve_dedicated_server_nullrenderer # 这个命令会出现错误,但会帮助我们生成配置文件

服务器配置

cd ~/.klei/DoNotStarveTogether/Cluster_1/ # 进入生成配置文件的 Cluster_1/ 文件夹
touch cluster_token.txt cluster.ini # 创建几个需要的配置文件

必须拥有steam饥荒联机帐号才能架设线上独立服务器,所以我们需要通过自己的饥荒联机版客户端生成 Authentication Token。

打开饥荒,点进入游戏主菜单后,按~键(esc 下面那个键)打开控制台,输入 TheNet:GenerateServerToken(),这会在你的电脑上生成内容为 Authentication Token 的文件 clustertoken.txt,具体位置是在文档/klei/DoNotStarveTogether/steamid/下有个clustertoken.txt。你可以把clustertoken.txt 中的 token 复制到服务器上的 clustertoken.txt 中即可(直接rz -y到服务器上也可以)。

继续配置cluster.ini,

[GAMEPLAY]
game_mode = survival # 游戏模式
max_players = 6 # 最大玩家数
pvp = true # 是否开启 PVP
pause_when_empty = true # 没有人的时候暂停游戏

[NETWORK]
lan_only_cluster = false
cluster_intention = social
cluster_description = 
cluster_name = my server # 服务器名称
offline_cluster = false
cluster_password = password # 密码

[MISC]
console_enabled = true

[SHARD]
shard_enabled = false
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10888
cluster_key = defaultPass

注:#及后面的中文需要删除,否则启动会有问题。如果是阿里云的云服务器,注意在安全组里开启10888端口的访问权限,这问题让我处理了近两小时。。。

启动脚本

cd ~
touch startdst.sh

再写入该脚本(vim修改)

#!/bin/sh
cd ~/dstserver/bin
screen -S "Don't Starve Together Server" ./dontstarve_dedicated_server_nullrenderer

然后给脚本运行权限

chmod +x startdst.sh

服务器运行

~/startdst.sh

在登录游戏后,搜索主机,输入对应的主机名称,就可以搜索到我们创建的服务器了。

在xshell界面上,Ctrl + C 可以关闭服务器,Ctrl + A 然后 Ctrl + D 可以后台运行,screen -r 可以恢复(screen不能恢复的,可以用screen -r -d来恢复)。

参考:https://xueli.li/2017/09/22/build-dst-server-on-ubuntu/