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

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

palworld_steam_store_stats

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

palworld_steam_store_page

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

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

搭建步骤

目前, Palworld 服务端存在内存泄漏问题。为了保证能够 24 小时稳定运行, 内存最低为 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

启动参数

PalServer.sh 选项 意义
port=8211 服务器监听的端口号
players=32 服务器上的最大玩家数量
EpicApp=PalServer 设置为社区服务器, 在列表中可见
-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS 提高多核 CPU 环境中的性能。它最多可有效处理 4 个线程, 分配超过该数量的线程就没有什么意义了

服务器启动命令

# 重载 systemd 配置文件
systemctl daemon-reload

# 开机自动启动
systemctl enable palworld.service

# 启动 palworld
systemctl start palworld.service

# 停止 palworld
systemctl stop palworld.service

# 检查运行状态
systemctl status palworld.service

配置防火墙

游戏使用 UDP 8211 端口

firewall-cmd --add-port=8211/udp --permanent
firewall-cmd --reload

进阶游戏设置

默认的幻兽帕鲁服务器设置可能无法满足所有玩家或服务器主的需求。例如, 你希望提升昼夜速度、限制掉落物数量、或是设置更高的玩家上限。此时, 就需要通过自定义游戏设置, 来创建符合自己玩法风格的服务器。

本节将介绍如何修改和管理服务器的配置文件, 深入掌握游戏的各项参数, 并处理那些无法直接通过 .ini 文件配置的高级选项。无论你是要打造休闲服或者是养老服, 还是硬核PVP挑战服, 这部分内容都将完美解决你的问题。

配置文件介绍

Palworld 的服务器配置文件默认位于

/home/steam/PalServer/DefaultPalWorldSettings.ini

该文件定义了游戏的基础规则和服务器参数。需要注意的是, 当前版本中只有在该文件中明确列出的参数才会被游戏引擎识别和生效。如果你尝试添加未支持的选项, 即使格式正确, 也不会产生任何效果。

对于那些未在配置文件中公开支持的高级参数 (例如每个公会的基地数量上限、每个基地的最大工作帕鲁数量、每个基地人数上限等), 则需要通过修改存档目录下的 WorldOption.sav 文件来实现。这种修改方式需要借助专门的工具, 例如开源项目 palworld-worldoptions

复制默认配置文件

直接修改 DefaultPalWorldSettings.ini 不会生效, 游戏启动时并不会读取该文件的更改。正确的做法是复制默认模板到 PalWorldSettings.ini, 并在其中修改参数以启用自定义设置

cp PalServer/DefaultPalWorldSettings.ini PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

配置文件中的常见选项

PalWorldSettings.ini 允许配置以下内容:

[/Script/Pal.PalGameWorldSettings]
OptionSettings=(ServerPlayerMaxNum=32,DayTimeSpeedRate=2.0,DropItemMaxNum=3000)

配置项说明 (来源于 0.5.0 版本):

注意格式, 括号内为结构体字段, 大小写与逗号分隔必须准确。

配置项 作用
AdminPassword 管理员密码, 获得管理员权限
AllowConnectPlatform 指定连接平台, 🚫 当前版本无效, 使用 CrossplayPlatforms 代替
BaseCampMaxNumInGuild 每个公会最大营地数量, 默认 4, 最大 10, 值越大负载越高
BaseCampWorkerMaxNum 每个营地最大帕鲁数, 最大 50, 值越大负载越高
bAllowGlobalPalboxExport 允许导出至全球帕鲁盒
bAllowGlobalPalboxImport 允许从全球帕鲁盒导入
bBuildAreaLimit 限制建筑靠近特定设施, 禁止在快速移动点等附近建造
bCharacterRecreateInHardcore 重生功能 (硬核模式), 🚫 保留字段
bEnableFastTravel 开启快速移动
bEnableInvaderEnemy 开启敌人入侵事件
bHardcore 硬核模式, 死亡后无法复活
bInvisibleOtherGuildBaseCampAreaFX 显示其他公会营地区域特效
bIsRandomizerPalLevelRandom 帕鲁等级完全随机
bIsUseBackupSaveData 启用世界备份功能, 会增加磁盘 I/O
bPalLost 死亡时永久失去帕鲁
bShowPlayerList 显示 ESC 菜单下的玩家列表
BuildObjectDamageRate 建筑受伤倍率
BuildObjectDeteriorationDamageRate 建筑老化速度
ChatPostLimitPerMinute 每分钟可发言次数限制
CollectionDropRate 采集物掉落倍率
CollectionObjectHpRate 采集物生命值倍率
CollectionObjectRespawnSpeedRate 采集物刷新间隔倍率
CrossplayPlatforms 跨平台连接支持, 默认: (Steam,Xbox,PS5,Mac)
DayTimeSpeedRate 白天流逝速度
DeathPenalty 死亡惩罚类型, 支持: None / Item / ItemAndEquipment / All
EnemyDropItemRate 怪物掉落倍率
ExpRate 经验获取倍率
GuildPlayerMaxNum 每个公会最大玩家数
ItemWeightRate 道具重量倍率
LogFormatType 日志格式类型, 可选 TextJson
MaxBuildingLimitNum 每位玩家建筑上限, 0 表示无限制
NightTimeSpeedRate 夜晚流逝速度
PalAutoHPRegeneRate 帕鲁自动回血速度
PalAutoHpRegeneRateInSleep 帕鲁休息回血速度 (帕鲁盒中)
PalCaptureRate 帕鲁捕获倍率
PalDamageRateAttack 帕鲁造成的伤害倍率
PalDamageRateDefense 帕鲁受到的伤害倍率
PalEggDefaultHatchingTime 巨型蛋孵化时间 (小时), 所有蛋通用
PalSpawnNumRate 帕鲁出现数量倍率, 增大会影响性能
PalStaminaDecreaceRate 帕鲁体力消耗速度
PalStomachDecreaceRate 帕鲁饥饿消耗速度
PlayerAutoHPRegeneRate 玩家自动回血速度
PlayerAutoHpRegeneRateInSleep 玩家睡觉回血速度
PlayerDamageRateAttack 玩家造成的伤害倍率
PlayerDamageRateDefense 玩家受到的伤害倍率
PlayerStaminaDecreaceRate 玩家体力消耗速度
PlayerStomachDecreaceRate 玩家饥饿消耗速度
PublicIP 指定外部 IP (社区服务器)
PublicPort 指定外部端口 (社区服务器), 不影响监听端口
RCONEnabled 启用 RCON 控制台
RCONPort RCON 控制台端口
RESTAPIEnabled 启用 REST API
RESTAPIPort REST API 监听端口
ServerDescription 服务器描述
ServerName 服务器名称
ServerPassword 加入服务器所需密码
ServerPlayerMaxNum 服务器最大玩家数
ServerReplicatePawnCullDistance 帕鲁同步距离 (cm), 最小值: 5000, 最大值: 15000
SupplyDropSpan 空投间隔 (分钟)

使用 WorldOption.sav 修改高级设置 (进阶)

并非所有设置都可以在 .ini 文件中修改, 一些选项并不会在该配置文件中列出, 即使手动添加也不会生效

这些选项实际上是保存在保存档目录中 WorldOption.sav 文件里, 必须使用工具修改。

PalServer/Pal/Saved/SaveGames/0/<世界 UUID>/WorldOption.sav

推荐使用社区项目: legoduded/palworld-worldoptions 进行生成

安装示例

环境要求

  • Python 3.10 或更高版本
  • Linux 用户还需额外安装 trumank/uesave-rs (用于解析和编辑 Unreal Engine 的 .sav 文件)
# 克隆项目源码
git clone https://github.com/legoduded/palworld-worldoptions.git
cd palworld-worldoptions

# (Linux 用户专属) 安装 uesave 模块
wget https://github.com/trumank/uesave-rs/releases/download/v0.6.2/uesave_cli-x86_64-unknown-linux-gnu.tar.xz
tar -xf uesave_cli-x86_64-unknown-linux-gnu.tar.xz
mv uesave_cli-x86_64-unknown-linux-gnu/uesave /usr/local/bin/uesave
chmod +x /usr/local/bin/uesave

# 测试是否安装成功
uesave --help

使用方式

legoduded@desktop:~/palworld-worldoptions/src$ python3 main.py /mnt/g/PalServer/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini --uesave /usr/local/bin/uesave --output /mnt/g/PalServer/Pal/Saved/SaveGames/0/8FAEE1FC44A4A5032BC92F8BCFD43AE3
Found settings
Found uesave
Converting JSON

Converted /mnt/g/pal/steamcmd/steamapps/common/PalServer/Pal/Saved/SaveGames/0/8FAEE1FC44A4A5032BC92F8BCFD43AE3/WorldOption.sav.json to /mnt/g/pal/steamcmd/steamapps/common/PalServer/Pal/Saved/SaveGames/0/8FAEE1FC44A4A5032BC92F8BCFD43AE3/WorldOption.sav
Complete!
Restart your palworld server to apply the changes

更新 Palworld 服务端

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

手动更新

使用 steamcmd 命令更新

# 运行 steamcmd.sh
./steamcmd.sh

# 以匿名身份登录
> login anonymous

# 指定 ./PalServer 为安装目录
> force_install_dir ./PalServer

# Palworld 的 App ID 是 2394010 并验证完整性
> app_update 2394010 validate

# 等待进度达到 100

# 退出 steamcmd
> quit

可以使用 + 号将命令连接起来, 拼接为一行命令

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

使用脚本自动更新

使用 api.steamcmd.net 来获取最新的 Build ID, 避免对 Steam 服务器造成过重的负载。脚本运行间隔时间很短影响也不大, 间隔推荐设置为每 30 分钟执行一次

定期检查服务端版本, 如果版本不同, 则进行更新, 服务端将自动更新并重新启动。

创建更新脚本

# 安装 jq 命令来处理 json
yum install jq -y

# 创建更新脚本
vim update-palworld.sh

写入以下内容

#!/bin/bash

# 字体颜色定义
Font_Black="\033[30m"
Font_Red="\033[31m"
Font_Green="\033[32m"
Font_Yellow="\033[33m"
Font_Blue="\033[34m"
Font_Purple="\033[35m"
Font_SkyBlue="\033[36m"
Font_White="\033[37m"
Font_Suffix="\033[0m"

# 消息提示定义
Msg_Info="${Font_Blue}[Info] ${Font_Suffix}"
Msg_Warning="${Font_Yellow}[Warning] ${Font_Suffix}"
Msg_Debug="${Font_Yellow}[Debug] ${Font_Suffix}"
Msg_Error="${Font_Red}[Error] ${Font_Suffix}"
Msg_Success="${Font_Green}[Success] ${Font_Suffix}"
Msg_Fail="${Font_Red}[Failed] ${Font_Suffix}"

# Paths
STEAMCMD="/home/steam/steamcmd.sh"
INSTALL_DIR="/home/steam/PalServer"
SERVICE_NAME="palworld.service"

echo -e "${Msg_Info}Environment Check"
echo -e "${Msg_Info}$(date '+%Y-%m-%d %H:%M:%S %Z')"

# Retrieve the current Build ID
OLD_Build=`$STEAMCMD +force_install_dir $INSTALL_DIR +login anonymous +app_status 2394010 +quit | grep -e "BuildID" | awk '{print $8}'`
echo -e "${Msg_Info}Current BuildID: ${Font_Yellow}$OLD_Build${Font_Suffix}"

# Attempt to fetch the New Build ID using curl
NEW_Build=$(curl -s https://api.steamcmd.net/v1/info/2394010 | jq -r '.data["2394010"].depots.branches.public.buildid')

# Fallback to SteamCMD method if curl fails to retrieve data
if [ -z "$NEW_Build" ] || [ "$NEW_Build" = "null" ]; then
    echo -e "${Msg_Fail}Failed to fetch New BuildID with curl. EXIT"
    exit 1
    # echo "Failed to fetch New BuildID with curl. Resorting to SteamCMD."
    # $STEAMCMD +force_install_dir $INSTALL_DIR +login anonymous +app_update 2394010 validate +quit > /dev/null
    # NEW_Build=`$STEAMCMD +force_install_dir $INSTALL_DIR +login anonymous +app_status 2394010 +quit | grep -e "BuildID" | awk '{print $8}'`
fi

echo -e "${Msg_Info}Fetched New BuildID: ${Font_Yellow}$NEW_Build${Font_Suffix}"

# Update the server if the Build IDs do not match
if [ "$OLD_Build" = "$NEW_Build" ]; then
    echo -e "${Msg_Warning}No update required. Build numbers are equal."
else
    echo -e "${Msg_Info}Stopping ${SERVICE_NAME} ready for update."
    systemctl stop $SERVICE_NAME
    echo -e "${Msg_Info}Updating the game server..."
    # > /dev/null
    $STEAMCMD +force_install_dir $INSTALL_DIR +login anonymous +app_update 2394010 validate +quit
    echo -e "${Msg_Success}Game server updated successfully to BuildID: ${Font_Yellow}$NEW_Build${Font_Suffix}"
    
    echo -e "${Msg_Info}Restart ${SERVICE_NAME} after update."
    systemctl start $SERVICE_NAME

    echo -e "${Msg_Info}Update complete. New BuildID: $NEW_Build"
    systemctl status $SERVICE_NAME
fi

赋予执行权限

chmod +x /home/steam/update-palworld.sh

运行测试

# 在主目录里
./update-palworld.sh

# 完整路径
/home/steam/update-palworld.sh

如果没有问题, 可以使用 cron 定期运行它。每 30 分钟检查一次是否有更新, 如果有, 则执行更新并重新启动服务器。

crontab -e

*/30 * * * * /home/steam/update-palworld.sh

内存不足时自动重启 Palworld

Palworld 服务端持续运行 2 天左右, 占用的内存大的离谱。人物经过的地图会被加载到内存里, 但在人物离开后不会释放内存。

创建内存检查脚本。如果内存使用率超过80%, 服务器将重新启动。

vim check-palworld-memory.sh

写入以下内容

#!/bin/bash

# Palworld Service Name
SERVICE_NAME="palworld.service"

# 当服务器内存使用率 (%) 超过此阈值时, 重启服务
THRESHOLD=80
# 是否检查 SWAP 空间 (设置为 True 表示检查, False 表示不检查)
CHECK_SWAP=False

# 获取当前内存使用率 (%)
mem_usage=$(free -b | awk '/Mem:/ {print int($3/$2 * 100.0)}')
# 获取总内存大小 (GB)
mem_total_gb=$(free -b | awk '/Mem:/ {printf "%.1f", $2/1024^3}')
# 获取已使用内存大小 (GB)
mem_used_gb=$(free -b | awk '/Mem:/ {printf "%.1f", $3/1024^3}')
# 获取 SWAP 总大小 (byte)
swap_total=$(free -b | awk '/Swap:/ {print $2}')
# 获取 SWAP 使用率 (%)
swap_usage=$(free -b | awk '/Swap:/ {if($2 > 0) print int($3/$2 * 100.0); else print 0;}')
# 获取 SWAP 总大小 (GB)
swap_total_gb=$(free -b | awk '/Swap:/ {printf "%.1f", $2/1024^3}')
# 获取已使用 SWAP 大小 (GB)
swap_used_gb=$(free -b | awk '/Swap:/ {printf "%.1f", $3/1024^3}')

current_time=$(date +"%Y-%m-%d %H:%M:%S")

# 如果启用了 SWAP 检查并且系统有 SWAP 空间, 则检查 SWAP 使用率
if [ "$CHECK_SWAP" = True ] && [ $swap_total -gt 0 ]; then
    if [ $swap_usage -gt $THRESHOLD ]; then
        # 如果 SWAP 使用率超过阈值, 则重启服务
        sudo systemctl stop $SERVICE_NAME
        sudo systemctl start $SERVICE_NAME
        echo "The $SERVICE_NAME has been restarted."
        echo "[$current_time] Restarted $SERVICE_NAME due to high swap usage: $swap_usage% (${swap_used_gb}GB/${swap_total_gb}GB)"
        exit 0
    fi
elif [ $mem_usage -gt $THRESHOLD ]; then
    # 如果内存使用率超过阈值, 则重启服务
    sudo systemctl stop $SERVICE_NAME
    sudo systemctl start $SERVICE_NAME
    echo "The $SERVICE_NAME has been restarted."
    echo "[$current_time] Restarted $SERVICE_NAME due to high memory usage: $mem_usage% (${mem_used_gb}GB/${mem_total_gb}GB)"
    exit 0
fi

# 打印当前内存和 SWAP 使用情况
echo "[$current_time] Current memory usage: $mem_usage% (${mem_used_gb}GB/${mem_total_gb}GB)"
if [ $swap_total -gt 0 ]; then
    echo "[$current_time] Current swap usage: $swap_usage% (${swap_used_gb}GB/${swap_total_gb}GB)"
fi

赋予执行权限

chmod +x /home/steam/check-palworld-memory.sh

运行测试

./check-palworld-memory.sh

使用 cron 定期运行。每 30 分钟检查一次内存使用率, 如果超过阈值, 则重新启动服务。

crontab -e

*/30 * * * * /home/steam/check-palworld-memory.sh

备份游戏存档指南

对于 RPG 类型的游戏来说, 存档数据至关重要。定期备份可以帮助我们在以下情况中快速回档、减少损失

  • 游戏出现严重 BUG, 导致无法进入游戏
  • 队友误操作, 例如拆家
  • 挂狗破坏基地
  • 在离线时遇到入侵事件
  • 孵蛋或配种失败, 导致优秀父代遗失

📦 备份存档

手动完整备份

在更新升级服务器时使用, 将 /home/steam/PalServer 目录完整打包压缩为 tar.xz 文件, 保存在 save_backup 目录下。

tar -Jcf save_backup/palworld_server_v3.10.tar.xz -C /home/steam PalServer

自动备份配置 (Cron 任务)

  • 每 30 分钟自动备份一次 SaveGames 文件夹, 并带上时间戳命名
  • 每天凌晨 1 点清理超过 30 小时以上的旧备份, 避免硬盘占满

备份脚本

vim backup-palworld.sh

填入以下内容

#!/bin/bash

# Define source directory and backup directory
SOURCE_DIR="/home/steam/PalServer/Pal/Saved"
BACKUP_DIR="/home/steam/save_backup"
DATE=$(date +\%F_\%H-\%M-\%S)

# Create a xz compressed tarball
# /usr/bin/tar -Jcf /home/steam/save_backup/auto_palworld_$(date +\%F_\%H-\%M-\%S).tar.xz -C /home/steam/PalServer/Pal/Saved SaveGames
tar -Jcf "${BACKUP_DIR}/auto_palworld_${DATE}.tar.xz" -C "${SOURCE_DIR}" SaveGames

echo "Backup of ${SOURCE_DIR} completed at ${BACKUP_DIR}/auto_palworld_${DATE}.tar.xz"

赋予执行权限

chmod +x /home/steam/backup-palworld.sh

运行测试

./backup-palworld.sh

设置定时执行

crontab -e

*/30 * * * * /home/steam/backup-palworld.sh
0 1 * * * find /home/steam/save_backup/ -name "auto_palworld*.tar.xz" -mmin +1800 -exec rm -f {} \;

🔄 恢复存档

完整备份恢复。解压备份文件到 /home/steam 目录, 恢复原始存档结构。

# 恢复备份前, 先停止服务器
systemctl stop palworld

tar -xJvf save_backup/palworld_server_v3.10.tar.xz -C /home/steam

systemctl restart palworld

原文

最大32人 パルワールド Linux 専用サーバの立て方
Deploy dedicated server
Palworld Server Guide - Configuration file
Github - palworld-worldoptions

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