AI 摘要

设置虚拟内存可显著减少服务器因内存不够而崩溃。我的2H4G5M服务器开启8G虚拟内存后大概支持4-5人同时在线,但是需要定时重启。使用命令 `free -h` 可查看所用内存。创建交换文件,建议设置为物理内存的1到3倍,设置文件权限,设置文件类型为交换文件,启用交换文件,设置开机自动使用交换文件。调整交换文件的 swappiness 以提高性能。安装 SteamCMD,开启所需仓库,更新软件源。创建新用户 `steam` 以提高服务器安全性,设置新用户权限,切换到新用户。安装所需依赖项,安装 SteamCMD。下载安装程序,安装 Palworld 服务端。运行 SteamCMD 以匿名模式登录,下载服务器和服务器依赖包,退出 SteamCMD。创建必要文件夹,建立库连接。运行服务器,停止服务器请按 Ctrl+C。开启防火墙,配置服务器文件及相关端口。安装 MCSM,开启防火墙(设置 TCP 协议的23333端口和24444端口)。安装 MCSM 面板,启动守护进程和Web面板,设置开机自启。进入网页进行设置,新建实例。

设置虚拟内存

如果内存够大(16G以上)可跳过该步骤,设置虚拟内存可显著减少服务器因内存不够而崩溃。我的2H4G5M服务器开启8G虚拟内存后大概支持4-5人同时在线,但是需要定时重启。使用命令 free -h 可查看所用内存。

创建交换文件,建议设置为物理内存的1到3倍(还需要注意是否有足够的磁盘空间)

sudo fallocate -l 8G /swapfile

设置文件权限

sudo chmod 600 /swapfile

设置文件类型为交换文件

sudo mkswap /swapfile

启用交换文件

sudo swapon /swapfile

设置开机自动使用交换文件

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

调整交换文件的 swappiness 以提高性能

sudo vim /etc/sysctl.conf

添加或更改以下行( i 键进入编辑,esc 键退出编辑,此时输入 :wq 保存并退出)

vm.swappiness=10

执行命令使更改生效

sudo sysctl -p

安装SteamCMD

开启所需仓库

sudo add-apt-repository multiverse

更新软件源

sudo apt-get update

创建新用户 steam 以提高服务器安全性

sudo useradd -m steam

设置 steam 用户的密码,密码需要输入两遍,输入时不可见,直接输即可

sudo passwd steam

设置新用户权限

usermod -G sudo steam

切换到新用户

sudo -u steam -s

进入新用户的主目录

cd /home/steam

安装所需依赖项

sudo dpkg --add-architecture i386
sudo apt update
sudo apt-get install lib32gcc-s1

安装 SteamCMD

sudo apt install steamcmd

新建文件夹并切换到该目录

mkdir ~/Steam && cd ~/Steam

下载安装程序

curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

安装Palworld服务端

运行 SteamCMD

./steamcmd.sh

以匿名模式登陆

login anonymous

下载服务器

app_update 2394010

下载服务器依赖包

app_update 1007

退出 SteamCMD

quit

新建 .steam 文件夹

mkdir ~/.steam

新建sdk64文件夹

mkdir ~/.steam/sdk64

建立库连接

cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/

进入服务器文件夹

cd ~/Steam/steamapps/common/PalServer

运行服务器,停止服务器请按 Ctrl+C

./PalServer.sh

开启防火墙

在主机提供商出新建防火墙规则,开启 UDP协议的8211端口 以及 TCP协议的8211端口

进入游戏

打开游戏,选择开始游戏下面的加入多人游戏(专用服务器),点进去之后最下面有个输入框,输入 你服务器的IP地址:8211 之后点击旁边联系即可

服务器的配置文件如下,可根据需要进行修改,值写在引号里,注意 不要随意改动布局(加空格,加回车等)会出现无法识别的情况,如果要在本地电脑上修改后复制过去,建议使用专业代码编辑软件如 VScode 等,使用记事本同样可能无法识别。

/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

服务器更新命令如下

sudo -u steam -s /bin/bash -c 'cd && /home/steam/Steam/steamcmd.sh +login anonymous +app_update 2394010 validate +quit'

安装MCSM

使用MCSM可更加方便的管理服务器,实现定时重启,崩溃重启等功能

开启防火墙

在主机提供商出新建2条防火墙规则,分别为 TCP协议的23333端口 以及 TCP协议的24444端口

安装MCSM面板

sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"

启动守护进程和Web面板

systemctl start mcsm-daemon.service
systemctl start mcsm-web.service

设置守护进程和Web面板开机自启

systemctl enable mcsm-daemon.service
systemctl enable mcsm-web.service

进入网页进行设置,从浏览器打开,并创建新用户

你服务器的IP地址:23333

新建实例

点击左侧应用实例,选择右侧创建通用控制台应用程序,无需选择文件或选择已存在文件,自己设置实例名称。

启动命令

sudo -u steam ./PalServer.sh

工作目录

/home/steam/Steam/steamapps/common/PalServer

开启服务器,(上一步安装时如果还开着记得先停止)

点击创建实例后重新点击右侧应用实例,此时可以看到实例已经创建完成,通过对应实例右上角三个点进入实例控制面板,此时可开启实例

MCSM服务器更新命令(应用实例设置-高级设置-更新或安装命令)

sudo -u steam /home/steam/Steam/steamcmd.sh +login anonymous +app_update 2394010 validate +quit

在左侧的实例功能组-事件任务处可以设置崩溃自动重启和开机自动启动。

在计划任务处可以创建计划任务,建议新增定时重启的任务以防长时间运行导致服务器崩溃,重启间隔可根据服务器的配置决定,我的服务器设置了每3小时重启一次。

建议定时备份存档,以防出现坏档情况,存档目录

/home/steam/Steam/steamapps/common/PalServer/Pal/Saved