10分钟搭好幻兽帕鲁Docker服务器:从零到朋友连进来的完整旅程

10分钟搭好幻兽帕鲁Docker服务器:从零到朋友连进来的完整旅程

【免费下载链接】palworld-server-docker A Docker Container to easily run a Palworld dedicated server. 【免费下载链接】palworld-server-docker 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-server-docker

想和朋友们一起在《幻兽帕鲁》的世界里抓帕鲁、建基地,却被"搭服务器"四个字劝退?别急,这篇文章就是为你准备的。我们将借助 palworld-server-docker 这个开源项目——一个把官方专用服务器完整封装进 Docker 容器的方案,从零开始,走完"下载项目、启动容器、让朋友连进来"的全过程。全程不碰复杂的编译和手动装环境,你只需要会复制粘贴,就能拥有一台属于自己的帕鲁服务器。

幻兽帕鲁游戏封面图

动笔之前,先想清楚:这个容器到底替你省了什么

自己开帕鲁服,最劝退的其实是这些琐事:要装 SteamCMD、要手动拉游戏服务端、要配置一堆启动参数、崩了还得自己排查。而 palworld-server-docker 把这些全打包进了一个镜像,你只需要告诉它"我想要个服务器",剩下的下载、更新、备份,它都自己搞定。

它的名字就是答案:Palworld + Docker + Server。官方定位是"A Docker Container to easily run a Palworld dedicated server",翻译过来就是"让你轻松跑起帕鲁专用服务器的容器"。项目在 README.md 里也写得很直白:帮你快速上手自建服务器。

这个方案已经在 Linux(Ubuntu/Debian)、Windows 10/11、macOS(包括 M1/M2/M3 芯片)以及树莓派 4/5 上验证过,x64 和 ARM64 架构都支持。也就是说,不管你是云服务器用户、家里蹲老台式机,还是拿树莓派折腾的极客,都能跑。

开服前的"体检":你的机器够不够格

不急着复制命令,先花 30 秒看看你的硬件。项目的官方要求很透明:

资源最低要求推荐配置
CPU4 核4 核以上
内存16GB32GB 以上更稳定
存储8GB20GB 以上(游戏本体+更新)

💡 内存是帕鲁服的命门,如果只打算和三五好友玩,16GB 勉强够用;想开 32 人满编服,还是老老实实上 32GB。另外记得在 BIOS 里开启虚拟化(VT-x/AMD-V),Docker 跑得动才有后续。

软件方面就两个前提:装好 Docker Engine 和 Docker Compose(新版 Docker 桌面版通常已内置 Compose)。检查一下你的环境:

docker --version
docker compose version

两条命令都能看到版本号,就可以放心往下走了。

两条路线任选一条:Compose 一步到位 or 一条命令跑起来

项目的仓库里自带了一份可直接用的 compose.yaml,这就是最省事的入口。推荐你先用 Docker Compose,理由很简单:配置写在文件里,看得见、改得着、还能提交到 git 备份;而 docker run 那条长命令每次想改参数都得重新敲一遍。

先把仓库克隆到本地:

git clone https://gitcode.com/gh_mirrors/pa/palworld-server-docker
cd palworld-server-docker

路线A:Compose 文件里写清楚你的需求

打开 compose.yaml,你会看到项目给你准备好的完整模板,核心部分长这样(我已加注释说明每行的作用):

services:
  palworld:
    image: thijsvanloef/palworld-server-docker:latest   # 官方镜像,跟着最新版走
    restart: unless-stopped                             # 崩溃或重启后自动拉起
    container_name: palworld-server                     # 容器名字,后面命令都用它
    stop_grace_period: 30s                              # 停止时给足 30 秒优雅保存
    ports:
      - 8211:8211/udp        # 游戏端口,玩家连的就是它
      - 27015:27015/udp      # 查询端口,上社区服务器列表需要
      # - 8212:8212/tcp      # REST API 端口,注意:不要对外端口转发!
    environment:
      PUID: 1000             # 容器内运行用户的 uid
      PGID: 1000             # 容器内运行用户的 gid
      PORT: 8211             # 游戏端口,最好显式指定
      PLAYERS: 16            # 最大玩家数,1-32
      SERVER_PASSWORD: "worldofpals"        # 服务器密码,建议改掉
      REST_API_ENABLED: true                # 开启 REST API
      REST_API_PORT: 8212
      TZ: "UTC"                              # 时区,影响备份时间戳
      ADMIN_PASSWORD: "adminPasswordHere"   # 管理员密码,务必改成强密码
      COMMUNITY: false       # true 则出现在社区服务器列表,务必配合密码使用
      SERVER_NAME: "palworld-server-docker by Thijs van Loef"   # 你的服务器名
      SERVER_DESCRIPTION: "palworld-server-docker by Thijs van Loef"
      CROSSPLAY_PLATFORMS: "(Steam,Xbox,PS5,Mac)"   # 允许跨平台联机
    volumes:
      - ./palworld:/palworld/   # 数据持久化,存档备份都在宿主机的 ./palworld 里

SERVER_NAMESERVER_DESCRIPTION、两个密码改成你自己的,保存即可。

路线B:一条 docker run 命令直接起飞

如果你只是临时想试一下,不想维护文件,项目同样提供了等价的单行命令。把它粘进终端,把尖括号里的占位符换成你自己的值:

docker run -d \
    --name palworld-server \
    -p 8211:8211/udp \
    -p 27015:27015/udp \
    -v ./palworld:/palworld/ \
    -e PUID=1000 \
    -e PGID=1000 \
    -e PORT=8211 \
    -e PLAYERS=16 \
    -e REST_API_ENABLED=true \
    -e REST_API_PORT=8212 \
    -e TZ=UTC \
    -e ADMIN_PASSWORD="adminPasswordHere" \
    -e SERVER_PASSWORD="worldofpals" \
    -e COMMUNITY=false \
    -e SERVER_NAME="palworld-server-docker by Thijs van Loef" \
    -e SERVER_DESCRIPTION="palworld-server-docker by Thijs van Loef" \
    -e CROSSPLAY_PLATFORMS="(Steam,Xbox,PS5,Mac)" \
    --restart unless-stopped \
    --stop-timeout 30 \
    thijsvanloef/palworld-server-docker:latest

💡 两条路本质上等价,命令参数和 Compose 里的环境变量一一对应。新手如果拿不定主意,记住一句话:长期使用选 Compose,临时尝鲜选 run

给服务器"上户口":必设环境变量清单

环境变量是这个项目配置服务器的唯一入口,理解它你就掌握了整个项目。项目文档 docusaurus/docs/getting-started/configuration/server-settings.md 里有一张几十行的完整表格,我把真正影响开服体验的挑出来讲:

变量作用默认值建议
PLAYERS最大玩家数16按机器性能调,1-32
PORT游戏 UDP 端口8211一般不用改
PUID / PGID容器内运行用户/组1000保持默认即可
SERVER_PASSWORD服务器密码必设,防陌生人乱入
ADMIN_PASSWORD管理员密码必设,管理操作要用
COMMUNITY是否上社区服务器列表false想公开展示就设 true,且必须配密码
REST_API_ENABLED开启 REST APItrue保持开启,自动暂停等功能依赖它
ENABLE_PERF_THREADING_ARGS开启多线程性能参数false多核 CPU 建议 true
UPDATE_ON_BOOT启动时自动安装/更新true首次运行必须保持开启
BACKUP_ENABLED自动备份true保持开启
AUTO_UPDATE_ENABLED自动更新false想省心就设 true(需配合 RCON_ENABLED)
TZ时区UTC改成你的时区,备份时间才对

还有一个容易踩的坑要提前告诉你:项目里标了 DEPRECATED(已弃用)的 MULTITHREADING 变量虽然还能用,但官方现在推荐用 ENABLE_PERF_THREADING_ARGS=trueWORKER_THREADS_SERVER=<核数> 来精确控制多线程,详见 server-settings.md。新手上路直接认准新变量就行。

除了游戏服务器本身的参数,你还能用环境变量直接调游戏内容,比如经验倍率 EXP_RATE、捕获率 PAL_CAPTURE_RATE、帕鲁刷新率 PAL_SPAWN_NUM_RATE、死亡惩罚 DEATH_PENALTY 等等。它们遵循一个简单的转换规则:全大写 + 单词间下划线 + 去掉开头单个字母(比如 PalSpawnNumRate 变成 PAL_SPAWN_NUM_RATEbIsPvP 变成 IS_PVP),完整清单见 docusaurus/docs/getting-started/configuration/game-settings.md。想和朋友玩"十倍经验、死后不掉落"的休闲服?加一行 EXP_RATE: 10DEATH_PENALTY: None 就够了。

点火!启动与第一次连接

配置写完,回到 compose.yaml 所在目录,执行:

docker compose up -d

-d 表示后台运行。第一次启动会下载游戏服务端,根据网速可能要等几分钟,这是正常现象。你可以用下面这条命令盯日志,看到类似 Server started 的字样就说明跑起来了:

docker compose logs -f

💡 如果日志停在下载环节很久没动静,多半是网络问题。项目也贴心地给了备用方案:在环境变量里加 USE_DEPOT_DOWNLOADER: true,改用 DepotDownloader 拉取服务端,专治 steamcmd 不兼容的环境(比如 M 系列 Mac)。

服务器就绪后,打开游戏本体,走这条路径连接:

  1. 主菜单选择"加入多人游戏(Join Multiplayer Game)"
  2. 切到"专用服务器(Dedicated Server)"标签
  3. 输入你的服务器 IP 和端口(默认 8211)
  4. 填上你设置的服务器密码,点击连接

不出意外,你已经在自己的世界里了。🎉

看看你服务器肚子里装了啥:目录结构与存档

连上之后,你可能会好奇:我的存档到底存在哪?答案在你挂载的 ./palworld 目录里。官方文档给出了一张非常直观的结构图:

幻兽帕鲁服务器文件夹结构说明图

对照图,几个关键位置记一下:

  • backups/:自动备份文件存放处
  • Engine/:游戏引擎配置文件
  • Pal/Saved/Config/LinuxServer/:服务器配置目录,PalWorldSettings.ini 就在这
  • steamapps/:Steam 相关文件和游戏资源

需要手动改游戏平衡参数时(比如把掉落率调高),就去编辑 PalWorldSettings.ini。但有两个坑必须提醒你:一是只能趁服务器关着的时候改,运行中改会在停止时被覆盖;二是改了之后要在环境变量里设 DISABLE_GENERATE_SETTINGS: true,否则启动时会被默认值重新生成。新手图省事的话,优先用环境变量改,最不容易出错。

当管理员不难:RCON 命令与 REST API

服务器开起来了,但"开服"不等于"放任自流"。你需要能广播消息、踢人、保存世界的手段。这个项目给了你两把钥匙:rcon-clirest-cli,都内置在容器里。

用 RCON 广播一条欢迎消息,只需:

docker exec -it palworld-server rcon-cli "Broadcast 欢迎来到我们的帕鲁世界"

常用的管理命令还有这些:

命令作用
ShowPlayers查看所有在线玩家
KickPlayer {SteamID}踢出指定玩家
BanPlayer {SteamID}封禁指定玩家
Save立即保存世界
Shutdown {秒数} {提示语}倒计时关服
Broadcast {消息}全员广播

如果你不想暴露 RCON 端口,REST API 是更安全的选择。通过 rest-cli,你可以在不开放任何外部端口的情况下调用管理接口,比如:

docker exec -i palworld-server rest-cli announce '{"message":"广播内容"}'

rest-cli 支持的接口有 info(服务器信息)、players(玩家列表)、metrics(性能指标)、save(保存)、shutdown(关服)等,完整清单同样在 README 的 REST API 章节里。对普通玩家来说,记住一条就够:广播用 rcon-cli,日常管理用 rest-cli,两者都不用对外暴露端口。

让服务器自己照顾自己:备份、更新与自动暂停

自己开服的另一个痛点是"人不可能 7×24 小时守着"。这个项目把最常见的运维场景都做成了开关,你只需要在环境变量里打开它们。

自动备份:默认开启,每天凌晨按 TZ 指定的时区自动备份到 backups/。想改频率就设 BACKUP_CRON_EXPRESSION,比如 0 2 * * * 表示每天凌晨 2 点备份。也可以随时手动备份:

docker exec palworld-server backup

自动更新:设置 AUTO_UPDATE_ENABLED: true,再配合 RCON_ENABLED: trueUPDATE_ON_BOOT: true,服务器会在指定时间自动更新并优雅重启,还会提前广播提醒在线玩家(AUTO_UPDATE_WARN_MINUTES 控制提前几分钟提醒)。

自动暂停:这个功能相当贴心。设置 AUTO_PAUSE_ENABLED: true(需要同时开 REST_API_ENABLEDENABLE_PLAYER_LOGGING),当最后一个玩家离线 180 秒后,服务器进程会自动休眠,世界时间冻结、CPU 占用降到几乎为零;有玩家尝试连接时又会自动唤醒。对于按量计费的云服务器,这能省下一大笔成本。

日常三件套命令,建议直接存进备忘录:

docker compose stop              # 停止服务器
docker compose start             # 再次启动
docker compose logs -f           # 实时看日志
docker compose pull && docker compose up -d   # 更新到最新镜像

万一存档出了问题想回滚,交互式恢复也只要一条命令:

docker exec -it palworld-server restore

它会列出备份让你选择(注意需要 RCON_ENABLED: true)。

从这一步开始,你的服务器生涯

到这里,你已经走完了从"想开服"到"服务器自己会打理自己"的完整旅程:克隆项目、选择 Compose 或 run、配置环境变量、点火连接、学会用 RCON 管理、开启自动化备份与暂停。

接下来的十分钟,我建议你做这三件事:

  1. compose.yamlSERVER_NAME、两个密码改成你自己的,再顺手把 EXP_RATE: 2(双倍经验)加进环境变量,重启生效
  2. 开启 AUTO_PAUSE_ENABLED: true,让服务器在你睡觉时也"睡觉"
  3. 把项目文档里 docusaurus/docs/getting-started/configuration/server-settings.md 完整环境变量表过一遍,你会发现更多玩法,比如把 Discord Webhook 接进来,让玩家进出、备份、更新都实时推送到你的频道

开服这件事,最难的从来不是技术,而是迈出第一步。现在容器已经在你的机器上跑起来了,剩下的——把链接发给朋友,去抓你的第一只帕鲁吧!

【免费下载链接】palworld-server-docker A Docker Container to easily run a Palworld dedicated server. 【免费下载链接】palworld-server-docker 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-server-docker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值