CentOS 7 搭建 Palworld (幻兽帕鲁) 服务器

突然看到 Steam 好友列表都在玩 Palworld。这到底是个啥游戏这么火, 打开 Steam 商店统计一看哦豁热销、游玩都是第一名。

palworld_steam_store_stats

离游戏发布短短 16 天 43 个好友已拥有??? 什么游戏这么热门!?

palworld_steam_store_page

下载启动, 逐渐入迷下机的时候一看时间 7 天过去了。一直都是单机玩的如果可以和小伙伴一起联机该多好啊。但是使用游戏自带的邀请码加入游戏, 需要房主在线才能其他人才能加入游戏。对于这种 RPG 游戏存档很重要, 但是它保存在房主的电脑上, 非常不方便。

不如我们用云服务器搭建一个游戏服务器, 这样随时都可以加入游戏, 我们睡觉的时候帕鲁也会继续工作。压榨帕鲁让他们 007 的工作

搭建步骤

目前, Palworld 服务端存在内存泄漏问题。为了保证能够全天稳定运行, 内存最低为 32 或 64GB

规格 数值 备注
系统 CentOS 7 也可以使用 Ubuntu 等系统
CPU 4 个虚拟 CPU 官方建议为 4 核以上
内存 16 GB 官方建议为 16GB 以上, 为了稳定运行建议使用 32GB
硬盘 100 GB 截至 2024 年 1 月, 服务器文件总容量为 4.8 GB
公开端口 8211 (UDP) 默认端口
SELinux 已禁用

如果内存很小, 比如在 VPS 中, 可以创建 swap 虚拟内存, 即使物理内存小于官方推荐值也能稳定运行。不过, 这取决于磁盘 I/O 性能。

禁用 SELinux

sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

setenforce 0

安装 SteamCMD

为了安全起见, 使用非 root 用户运行游戏服务端。首先, 以 root 用户身份登录到服务器, 创建一个名为 steam 的用户, 并切换到该用户的环境下

# 安装 32 位运行依赖
yum install glibc.i686 libstdc++.i686 -y

# 创建 steam 用户
useradd -m steam

# 切换为 steam 用户
su - steam

# 下载 SteamCMD
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -xf steamcmd_linux.tar.gz
./steamcmd.sh

安装 Palworld 服务端

# 创建安装目录
mkdir PalServer

# 进入 steam 命令行
./steamcmd.sh

Steam>force_install_dir ./PalServer   # 指定安装目录
Steam>login anonymous                 # 以匿名身份登录
Steam>app_update 2394010 validate     # Palworld 的 App ID 是 2394010
Steam>quit                            # 退出 steamcmd

启动 Palworld 服务端

cd PalServer/
./PalServer.sh

如果遇到找不到 steamclient.so 文件的错误需要按照下面步骤修复

steamclient.so: cannot open shared object file: No such file or directory
dlopen failed trying to load:
/home/steam/.steam/sdk64/steamclient.so
with error:
/home/steam/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Sys_LoadModule failed to load: /home/steam/.steam/sdk64/steamclient.so

^CFUnixPlatformMisc::RequestExitWithStatus
FUnixPlatformMisc::RequestExit
Exiting abnormally (error code: 130)
Shutdown handler: cleanup.

修复步骤

# 创建依赖文件路径
mkdir -p .steam/sdk64/

# 创建软连接
ln -s /home/steam/linux64/steamclient.so /home/steam/.steam/sdk64/steamclient.so

# 检查文件
[steam@server ~]$ ls -al /home/steam/.steam/sdk64/steamclient.so
lrwxrwxrwx 1 steam steam 34 Feb  4  2024 /home/steam/.steam/sdk64/steamclient.so -> /home/steam/linux64/steamclient.so

再次启动服务端

[steam@server PalServer]$ ./PalServer.sh
Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.
sh: xdg-user-dir: command not found
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/steam/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 3 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
Setting breakpad minidump AppID = 2394010
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

检查是否可以正常启动, 没有其他错误后可以按 Ctrl+C 停止服务器。

设置 systemd 服务

使用 systemd 管理 Palworld 服务端

vim /etc/systemd/system/palworld.service

输入以下内容并使用 :wq 保存

[Unit]
Description=Palworld Dedicated Server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target

[Service]
User=steam
Group=steam
ExecStart=/home/steam/PalServer/PalServer.sh EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
LimitNOFILE=100000

Restart=always
TimeoutStartSec=300

[Install]
WantedBy=multi-user.target

更新 Palworld 服务端

游戏推出新版本后服务端也需要更新

手动更新

./steamcmd.sh +force_install_dir ./PalServer +login anonymous +app_update 2394010 validate +quit

原文

最大32人 パルワールド Linux 専用サーバの立て方

最后更新于 2025-03-14
使用 Hugo 构建
主题 StackJimmy 设计