type
Post
status
Published
date
Jan 23, 2024
slug
palserver
summary
烦死这个游戏了
tags
服务器
开发
category
技术分享
password
icon
0.购买服务器前需要了解的
幻兽帕鲁这个游戏极其不靠谱
虽然真的好玩,但是作为一款偏向联机的游戏太失败了
官方服务器崩溃、回档、甚至删档
自建服务器也同样会遇到这些情况
这都和游戏服务端的垃圾内存管理有关
它的内存会不断增加,不会清理,直到内存超过服务器最大限度
游戏崩溃!
无论是8g 16g 32g 就算你是128g的独立服务器
玩久了一样会把内存吃满满,然后服务端崩溃
在官方彻底修补解决前,我们是没有办法根治的
因此我们需要做好频繁崩溃的准备,也要做好崩溃前游戏丢包卡顿的准备
服务器配置8g起步,上不封顶
1.购买完服务器之后
购买完服务器之后,将其重装成Ubuntu20.04系统(因为我是这个系统)
我们需要做到以下几点
- 扩充swap,变相增加内存
- 安装服务端(Steamcmd和Palserver)
- 配置Systemd
- 修改PalWorldSettings.ini文件
- 熟悉管理员命令
swap
- 创建一个新的 swap 文件(如果需要):
这会在根目录下创建一个名为
swapfile 的 10GB 大小的 swap 文件。- 设置新 swap 文件的权限:
- 将文件转换为 swap 文件:
- 启用新的 swap 文件:
- 查看是否成功启用了新的 swap 文件:
- 永久性配置,以便在系统重新启动时自动加载新的 swap 文件:
- 打开 /etc/fstab文件:
- 在文件末尾添加以下行:
- 最后,刷新文件系统表:
服务端搭建
按顺序输入代码
Systemd配置
需要执行以下步骤:
- 打开 systemd 服务单元文件:
- 在 Vim 中,按
i进入插入模式,然后添加或修改文件内容。以下是一个示例 PalServer systemd 服务单元文件的内容,包含了添加 Vim 的配置:
其中,服务器人数上限和服务器停止后等待重启秒数都可以自由设置
- 在编辑完成后,按
Esc键退出插入模式
- 输入
:wq并按Enter保存并退出 Vim
systemd 提供了更强大的服务管理功能,包括启动、停止、重启、状态监控等,而无需依赖终端窗口
通过 systemd,你可以使用以下命令来管理 PalServer 服务:
- 启动服务:
- 停止服务:
- 重启服务:
- 查看服务状态:
- 设置服务开机自启动 :
- 禁用服务开机自启动:
- 重新加载 systemd 以使更改生效(vim修改后报错时):
修改配置文件
本来是很麻烦的事情
但是有台湾友人倾情写了个网站方便大众
这个网站可以直接输入你想要的设定然后输出PalWorldSettings.ini文件
把目录/home/steam/PalServer/PalSaved/Config/LinuxServer/文件夹中的文件替换掉即可
熟悉管理员命令
最后的最后,成为腐竹当然要能掌控全局!
虽然管理员命令不是很多,但有些还是很重要的
在游戏内对话框(按回车打开对话框)中输入/AdminPassword 管理员密码
即可成为管理员
之后在对话框可以输入的命令有:
/Shutdown {Seconds} {MessageText} 服务器关闭数秒后将收到您的 MessageText 通知
/DoExit 强制停止服务器
/Broadcast {MessageText} 向服务器中的所有玩家发送消息
/KickPlayer {SteamID} 将玩家从服务器中踢出
/BanPlayer {SteamID} 从服务器禁止玩家
/TeleportToPlayer {SteamID} 传送到目标玩家的当前位置
/TeleportToMe {SteamID} 目标玩家传送到您当前的位置
/ShowPlayers 显示所有已连接玩家的信息
/Info 显示服务器信息
/Save 保存世界数据
/Save可以在停服前手动保存存档,减少坏档的机率,/Shutdown 60 可以在服务器卡顿时,无须操作终端软件,在服务器内关闭游戏端,并且通过配合systemd实现自动重启游戏端
2.开开心心的玩吧!
服务器准备到这种程度,后续发生的一切都随缘啦
该坏还是坏,该崩还是崩
只能期待自己运气好点,官方早点更新!
附加:游玩中遇到的坑
游戏过程中避免不了经常重启游戏端
而重启就避免不了回档、坏档等各种恶心bug
为了应对这些麻烦,可以使用脚本每小时备份存档
同时也使用脚本快捷的恢复存档
以下是整个脚本的步骤:
- 创建备份脚本:
在打开的编辑器中,粘贴以下内容:
保存并退出编辑器。然后给脚本添加执行权限:
- 创建 systemd 服务单元文件:
在打开的编辑器中,粘贴以下内容:
保存并退出编辑器
- 创建 systemd 定时任务单元文件:
在打开的编辑器中,粘贴以下内容:
保存并退出编辑器
- 启用和启动定时任务:
这样,系统将在每个小时的整点时刻执行备份脚本
接下来是恢复存档的脚本:
- 创建恢复脚本:
将以下内容粘贴到打开的编辑器中:
保存并退出编辑器,然后给予脚本执行权限:
- 运行脚本:
脚本将列出可用的备份供你选择,并进行相应的还原操作
此外,游戏端的软重启可能释放内存不够彻底,使用服务器的硬重启能使内存清理的更加完全,因此和结合自动存档脚本,写一个自动重启服务器的脚本:
- 创建 systemd 定时器:
在打开的编辑器中,粘贴以下内容:
保存并退出编辑器
- 创建 systemd 服务:
在打开的编辑器中,粘贴以下内容:
保存并退出编辑器。
- 启用和启动定时任务:
这样设置后,服务器将在每天0点半自动重启一次,并且每隔两小时自动重启一次。如果希望重启的时间,可以修改以下代码:
- 编辑 systemd 定时器:
在打开的编辑器中,修改
[Timer] 部分的 OnCalendar 行,以适应你想要的开始时间和间隔。例如,如果你想要每隔三小时重启一次,可以将 OnCalendar 行更改为:这将使服务器在每天的 00:30:00 开始,然后每隔三小时重启一次。
保存并退出编辑器。
- 重新加载 systemd 定时器:
- 重新启动 systemd 定时器:
通过这样的操作,你就可以根据自己的需要调整服务器重启的开始时间和间隔