饥荒服务器搭建流程

记录一下自己饥荒服务器搭建流程。

着重号测试

系统配置

  • 操作系统:Ubuntu Server 18.04.1 LTS 64bit
  • CPU:2核
  • 内存:4GB
  • 系统盘:80GB SSD
  • 带宽:8Mbps(1200GB/月)

之后改成Ubuntu20了

配置服务器防火墙

开启10888、10999、10998 端口 使用UDP协议

使用密钥通过root用户连接主机

腾讯云的Ubuntu机子默认不能使用root用户登录,所以需要进行配置。

创建密钥并绑定服务器

服务器关了再创

使用FinalShell登录服务器

到此依然只能用ubuntu账号通过密钥登录,使用root还需要配置

1
2
3
4
5
sudo passwd root
su - root
cat /home/ubuntu/.ssh/authorized_keys >> /root/.ssh/authorized_keys

passwd -d root

这时重新配置FinalShell,使用root账号即可登录

配置steamcmd

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
dpkg --add-architecture i386
apt update
# libsdl2-2.0-0:i386 必须安装否则会有SDL报错
# libcurl4-gnutls-dev:i386 如果没有则会在开启服务器的时候出现问题,可能是因为启动服务器用了bin里的程序
apt install lib32gcc1 lib32stdc++6 libsdl2-2.0-0:i386 libcurl4-gnutls-dev:i386

useradd -m dst
passwd dst
su - dst

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 /home/dst/dstserver
login anonymous
app_update 343050 validate
quit
1
2
3
cd /home/dst/dstserver/bin

echo "./dontstarve_dedicated_server_nullrenderer -console -cluster ruwosuojian -shard Master" > master_start.sh && echo "./dontstarve_dedicated_server_nullrenderer -console -cluster ruwosuojian -shard Caves" > caves_start.sh && chmod +x master_start.sh caves_start.sh

先运行一遍指令,生成存档。

使用本地的饥荒创建世界后进行如下操作。 dedicated_server_mods_setup.lua 文件放在/home/dst/dstserver/mods cluster_token.txt cluster.ini 放在存档的根目录 modoverrides.lua leveldataoverride.lua server.ini 分别放入Master、Caves

1
2
screen -S master ./master_start.sh
screen -S caves ./caves_start.sh

配置dst用户开机启动服务器

systemd 用户实例在用户首次登陆时启动,并在最后一个会话退出时终止。 但有时候,对于一些不依赖于会话的用户进程,在系统启动时加载用户实例,在会话全部结束时,也不停止用户实例是比较有用的。Lingering 就是用来实现这个的。 使用以下命令来启用驻留指定用户:

1
loginctl enable-linger username
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
loginctl enable-linger dst
export XDG_RUNTIME_DIR=/run/user/$(id -u) && systemctl --user import-environment PATH

# 验证是否配置正确
systemctl --user show-environment


systemctl --user enable dstmaster
systemctl --user enable dstcaves
systemctl --user daemon-reload

systemctl --user status dstcaves

# 查看日志
journalctl --user -u dstmaster -n 20 -f
journalctl --user -u dstcaves -n 20 -f

就为了个以dst用户开机启动dst服务器,真是给我整吐了 之后最好还要加一个定时备份存档

https://wiki.archlinux.org/title/Systemd_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)/User_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#%E9%9A%8F%E7%B3%BB%E7%BB%9F%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8

updatedupdated2022-01-122022-01-12