1. 从零到一:为什么要在Deepin上搭建《幻兽帕鲁》服务器?
最近《幻兽帕鲁》这款游戏火得一塌糊涂,身边的朋友不是在抓帕鲁,就是在建基地。官服虽然方便,但延迟、人数限制和规则束缚总让人感觉不够尽兴。于是,自己搭建一个私服就成了很多资深玩家的选择。你可能已经看过不少在Windows上用SteamCMD搭建的教程,但今天,我想聊聊一个更酷、更稳定,也更能体现技术范儿的选择:在Linux Deepin系统上搭建《幻兽帕鲁》专用服务器。
Deepin作为一款优秀的国产Linux发行版,以其精美的界面和良好的易用性著称。用它来搭游戏服务器,乍一听有点“跨界”,但实际体验下来,你会发现这是绝配。首先,Linux系统天生的高稳定性和低资源占用,能让你的服务器7x24小时稳定运行,不用担心像Windows那样偶尔来个自动更新导致服务中断。其次,在命令行环境下完成所有部署,整个过程清晰、可控,一旦掌握,后续的维护、迁移、备份都会变得异常简单。最重要的是,你可以完全掌控服务器的一切:修改游戏参数、安装管理插件、设置自动备份,打造一个真正属于你和朋友们的“帕鲁世界”。
这个教程面向的是有一定Linux基础,或者愿意动手学习的玩家。你不需要是运维专家,但需要能打开终端,会输入命令,并且有耐心跟着步骤一步步操作。整个过程涉及SteamCMD工具的使用、服务端配置、防火墙设置以及基础的系统管理。我会把每个步骤背后的“为什么”讲清楚,让你不仅能把服务器跑起来,更能理解其中的原理,未来出了问题也能自己排查。好了,废话不多说,我们直接进入正题,看看需要准备些什么。
2. 搭建前的核心准备:环境、工具与资源规划
在真正动手敲命令之前,充分的准备工作能避免过程中80%的坑。搭建一个游戏服务器,不仅仅是运行一个程序那么简单,它涉及到系统环境、网络配置、资源分配和长期维护的规划。
2.1 硬件与系统环境要求
首先,我们得确保你的Deepin系统满足最低要求。虽然《幻兽帕鲁》服务端对硬件的要求比客户端友好,但为了多人游戏的流畅体验,还是要有一定底线。
- 操作系统:Deepin 20.x 或更新版本(如Deepin 23)。确保系统已更新到最新状态。你可以通过终端执行
sudo apt update && sudo apt upgrade -y来完成系统更新。 - CPU:至少双核处理器。对于支持4-8人同时在线的小型私服,现代的双核CPU(如Intel i3或AMD Ryzen 3)基本够用。如果预计在线人数超过10人,或者你打算同时运行其他服务,建议使用四核或以上的CPU。
- 内存:这是最关键的资源。官方推荐最低为8GB。根据我的实测经验,一个空的、无人连接的服务器大约占用2-3GB内存。每增加一个在线玩家,内存占用会增加约100-200MB。因此,我的建议是:
- 2-4人小服:8GB内存是起步线。
- 5-10人中型服:强烈推荐16GB内存。
- 10人以上:考虑32GB或更高,并需要更细致的参数调优。
- 存储空间:需要至少20GB的可用磁盘空间。这包括了SteamCMD工具、游戏服务端文件以及未来存档数据的增长。固态硬盘能显著减少地图加载和存档读写的等待时间,提升所有玩家的体验。
- 网络带宽:上行带宽至关重要。每个玩家连接大约需要50-100Kbps的稳定上行带宽。这意味着,如果你的上行带宽是10Mbps(约合1280KB/s),理论上支持12-25个玩家同时在线是没问题的。但要注意,这是理想值,还需为系统和其他应用留有余量。
注意:如果你使用的是云服务器(如腾讯云、阿里云的轻量应用服务器),请特别注意其“峰值带宽”和“流量包”限制。游戏服务器属于持续小流量但长连接的类型,流量消耗不容忽视。
2.2 核心工具:SteamCMD与依赖库安装
我们将使用Valve官方提供的SteamCMD命令行工具来下载和更新《幻兽帕鲁》的服务端。它比完整的Steam客户端更轻量,专为服务器部署设计。
第一步:创建专用用户(安全最佳实践)强烈不建议直接使用root用户来运行游戏服务端。创建一个专用用户可以隔离权限,提高安全性。
sudo useradd -m -s /bin/bash paluser sudo passwd paluser # 为paluser设置一个强密码这里,-m参数表示同时创建用户的家目录(通常是/home/paluser),-s指定了用户的默认shell。
第二步:安装必要的32位运行库SteamCMD是32位程序,在64位系统上运行需要对应的32位兼容库。Deepin基于Debian/Ubuntu,使用apt包管理器。
sudo apt update sudo apt install software-properties-common lib32gcc-s1 steamcmd -y关键点在于lib32gcc-s1这个包,它提供了32位C运行库。如果系统提示找不到这个包,可以尝试lib32gcc1或lib32gcc-s1的其他变体,或者先启用32位架构支持:sudo dpkg --add-architecture i386 && sudo apt update。
第三步:安装SteamCMD上面命令中我们已经尝试通过apt直接安装。但更通用、更可靠的方式是使用官方方法:
# 切换到我们创建的用户,并在其家目录下操作 sudo -u paluser -s cd /home/paluser # 创建SteamCMD目录并下载 mkdir ~/steamcmd && cd ~/steamcmd wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz解压后,你会得到一个steamcmd.sh脚本。至此,SteamCMD就准备就绪了。
2.3 目录规划与防火墙设置
清晰的目录结构能让后续管理一目了然。我建议的布局如下:
/home/paluser/ ├── steamcmd/ # SteamCMD工具本体 ├── palworld-server/ # 游戏服务端主目录 │ ├── Pal/ # 游戏服务端程序及文件(将由SteamCMD下载至此) │ └── backups/ # 手动或自动备份的存档目录 └── scripts/ # 存放管理脚本,如启动、停止、备份脚本你可以用命令来创建这些目录:mkdir -p /home/paluser/palworld-server/backups /home/paluser/scripts
防火墙设置: 《幻兽帕鲁》服务端默认使用UDP 8211端口。如果你的Deepin系统开启了防火墙(如UFW),需要放行此端口。
sudo ufw allow 8211/udp sudo ufw reload # 重新加载规则 sudo ufw status # 查看规则是否生效如果你使用的是云服务器,还必须在其云服务商的安全组/防火墙规则中,添加入站规则,允许UDP 8211端口。这是很多人在服务器搭建后无法连接的首要原因。
3. 服务端部署与核心配置详解
环境准备好后,就到了最核心的环节:获取服务端程序并进行配置。这个过程就像组装一台机器,每一步的设置都决定了服务器未来的运行状态。
3.1 使用SteamCMD下载服务端
我们将以paluser身份,使用SteamCMD匿名登录并下载《幻兽帕鲁》专用服务器。
# 确保当前用户是paluser,并位于steamcmd目录 cd /home/paluser/steamcmd # 启动SteamCMD并执行下载命令 ./steamcmd.sh +force_install_dir /home/paluser/palworld-server/Pal +login anonymous +app_update 2394010 validate +quit这条命令需要逐部分理解:
./steamcmd.sh:启动SteamCMD。+force_install_dir ...:指定服务端文件的安装目录。我们将其指向规划好的Pal文件夹。+login anonymous:以匿名方式登录Steam(下载公开的专用服务器不需要付费账户)。+app_update 2394010:这是《幻兽帕鲁》专用服务器的App ID。app_update指令用于下载或更新该应用。validate:验证已下载文件的完整性,确保没有损坏或缺失。+quit:所有操作完成后退出SteamCMD。
首次下载可能需要较长时间(约20-30GB),请耐心等待。完成后,/home/paluser/palworld-server/Pal目录下就会出现PalServer.sh等一系列文件。
3.2 解析与修改PalWorldSettings.ini配置文件
游戏服务器的所有核心参数都集中在PalWorldSettings.ini这个文件里。默认情况下,服务端第一次运行后会在存档目录生成一个默认的。但最佳实践是,我们提前创建并配置好它。
首先,找到默认的配置文件模板。它通常位于服务端程序的Pal/Saved/Config/LinuxServer/目录下,但初始可能不存在。更简单的方法是,先启动一次服务器让它生成默认配置,或者直接从游戏客户端或社区获取一个模板。
我们直接在配置目录创建它:
# 创建配置目录 mkdir -p /home/paluser/palworld-server/Pal/Saved/Config/LinuxServer cd /home/paluser/palworld-server/Pal/Saved/Config/LinuxServer # 使用nano或vim编辑器创建并编辑配置文件 sudo apt install nano -y # 如果还没安装nano nano PalWorldSettings.ini下面是一个功能丰富的配置示例,我为你逐段解读关键参数:
[/Script/Pal.PalGameWorldSettings] OptionSettings=(Difficulty=None, DayTimeSpeedRate=1.000000, NightTimeSpeedRate=1.000000, ExpRate=1.000000, PalCaptureRate=1.000000, PalSpawnNumRate=1.000000, PalDamageRateAttack=1.000000, PalDamageRateDefense=1.000000, PlayerDamageRateAttack=1.000000, PlayerDamageRateDefense=1.000000, PlayerStomachDecreaceRate=1.000000, PlayerStaminaDecreaceRate=1.000000, PlayerAutoHPRegeneRate=1.000000, PlayerAutoHpRegeneRateInSleep=1.000000, PalStomachDecreaceRate=1.000000, PalStaminaDecreaceRate=1.000000, PalAutoHPRegeneRate=1.000000, PalAutoHpRegeneRateInSleep=1.000000, BuildObjectDamageRate=1.000000, BuildObjectDeteriorationDamageRate=1.000000, CollectionDropRate=1.000000, CollectionObjectHpRate=1.000000, CollectionObjectRespawnSpeedRate=1.000000, EnemyDropItemRate=1.000000, DeathPenalty=All, bEnablePlayerToPlayerDamage=False, bEnableFriendlyFire=False, bEnableInvaderEnemy=True, bActiveUNKO=False, bEnableAimAssistPad=True, bEnableAimAssistKeyboard=False, DropItemMaxNum=3000, DropItemMaxNum_UNKO=100, BaseCampMaxNum=128, BaseCampWorkerMaxNum=15, DropItemAliveMaxHours=1.000000, bAutoResetGuildNoOnlinePlayers=False, AutoResetGuildTimeNoOnlinePlayers=72.000000, GuildPlayerMaxNum=20, PalEggDefaultHatchingTime=72.000000, WorkSpeedRate=1.000000, bIsMultiplay=False, bIsPvP=False, bCanPickupOtherGuildDeathPenaltyDrop=False, bEnableNonLoginPenalty=True, bEnableFastTravel=True, bIsStartLocationSelectByMap=True, bExistPlayerAfterLogout=False, bEnableDefenseOtherGuildPlayer=False, CoopPlayerMaxNum=4, ServerPlayerMaxNum=32, ServerName="我们的Deepin帕鲁乐园", ServerDescription="基于Deepin系统搭建的稳定私服,欢迎!", AdminPassword="YourStrongAdminPasswordHere", ServerPassword="", PublicPort=8211, PublicIP="", RCONEnabled=False, RCONPort=25575, Region="", bUseAuth=True, BanListURL="https://api.palworldgame.com/api/banlist.txt")关键参数解析与调优建议:
基础速率类(Rate):所有以
Rate结尾的参数,1.0是官方默认值。你可以根据需求调整。ExpRate=2.0:经验获取倍率调整为2倍。PalCaptureRate=1.5:帕鲁捕获率1.5倍。DayTimeSpeedRate=0.5:白天时间流逝速度减半,让白天更长。WorkSpeedRate=2.0:帕鲁工作速度翻倍,加速生产。
游戏规则类:
DeathPenalty:死亡惩罚。可选None(无),Item(只掉物品),ItemAndEquipment(掉物品和装备),All(掉物品、装备和帕鲁)。根据服务器难度设定。bEnablePlayerToPlayerDamage和bEnableFriendlyFire:是否开启玩家间伤害和友军伤害。PvP服务器需要开启,合作服建议关闭(False)。bIsMultiplay和bIsPvP:必须设置为True才能开启多人模式和PvP模式。
服务器网络与身份标识:
ServerName和ServerDescription:服务器名称和描述,会显示在社区服务器列表中。AdminPassword:超级重要的管理员密码。用于在游戏内通过命令 (/AdminPassword YourPassword) 获取管理员权限,执行踢人、广播等操作。务必设置一个强密码并妥善保管。ServerPassword:服务器连接密码。留空则服务器公开;设置密码后则为私有服务器,玩家需要密码才能进入。PublicPort=8211:服务端口,需与防火墙设置一致。PublicIP:通常留空,服务器会自动绑定。如果你的主机有多个IP,可以在此指定。ServerPlayerMaxNum=32:服务器最大玩家数。根据你的硬件和带宽合理设置,不宜过高。
性能与限制相关:
DropItemMaxNum=3000:地上可同时存在的掉落物最大数量。数值过大会增加服务器负担,导致卡顿。如果服务器运行一段时间后变卡,可以尝试适当调低此值(如2000)。BaseCampMaxNum=128:地图上允许存在的基地最大总数。每个公会(Guild)最多可以建3个基地。GuildPlayerMaxNum=20:单个公会最大玩家数。
修改完毕后,按Ctrl+X,然后输入Y,再按Enter保存退出。
3.3 创建系统服务实现开机自启与后台运行
在终端直接运行服务端,一旦关闭终端,服务就会停止。我们需要将其配置为系统服务,让它在后台稳定运行,并且能随系统启动。
我们将使用systemd,这是Deepin等现代Linux系统标准的服务管理工具。
创建服务单元文件:
sudo nano /etc/systemd/system/palworld.service将以下内容粘贴进去,请务必根据你的实际路径修改User,WorkingDirectory和ExecStart:
[Unit] Description=PalWorld Dedicated Server After=network-online.target Wants=network-online.target [Service] Type=simple User=paluser Group=paluser WorkingDirectory=/home/paluser/palworld-server/Pal ExecStart=/bin/bash /home/paluser/palworld-server/Pal/PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS Restart=on-failure RestartSec=30 KillSignal=SIGINT TimeoutStopSec=30 StandardOutput=journal StandardError=journal # 可选:限制服务资源,防止服务器崩溃拖垮整个系统 # LimitNOFILE=100000 # LimitNPROC=10000 [Install] WantedBy=multi-user.target参数详解:
User和Group:指定以paluser身份运行,确保文件权限正确。WorkingDirectory:设置工作目录,确保服务端能正确找到其依赖文件。ExecStart:启动命令。-useperfthreads和-NoAsyncLoadingThread:是虚幻引擎服务器的常用性能优化参数,有助于提高多核CPU利用率。-UseMultithreadForDS:启用多线程,提升服务器性能。
Restart=on-failure和RestartSec=30:如果服务异常退出,等待30秒后自动重启,极大增强了服务器的健壮性。KillSignal=SIGINT和TimeoutStopSec=30:给服务端30秒的优雅关闭时间,让其保存游戏数据,避免存档损坏。
保存退出后,执行以下命令启用并启动服务:
# 重新加载systemd配置 sudo systemctl daemon-reload # 设置开机自启 sudo systemctl enable palworld.service # 立即启动服务 sudo systemctl start palworld.service # 查看服务状态和实时日志 sudo systemctl status palworld.service sudo journalctl -u palworld.service -f # -f 参数可以持续输出日志(按Ctrl+C退出)如果状态显示active (running),并且日志中没有持续报错,恭喜你,服务器已经在后台稳稳地跑起来了!
4. 连接测试、基础管理与进阶维护
服务器跑起来只是第一步,如何连接、如何管理、如何长期稳定运行,才是更考验人的地方。
4.1 客户端连接服务器的几种方式
根据你的网络环境,连接方式有所不同:
局域网直连:如果你和服务器在同一局域网内(比如家里的另一台电脑),最简单。
- 在游戏主菜单,选择“加入多人游戏(专用服务器)”。
- 在底部的“直接连接”地址栏,输入服务器的局域网IP地址:8211。例如:
192.168.1.100:8211。
互联网连接(有公网IP):如果你的Deepin主机拥有公网IP(例如家庭宽带通过路由器端口转发,或云服务器)。
- 你需要知道你的公网IP地址。可以在服务器上执行
curl ifconfig.me获取。 - 同样使用“直接连接”,地址格式为
公网IP:8211。 - 重要:家庭网络需要在路由器上设置端口转发(Port Forwarding),将WAN口的UDP 8211端口转发到服务器主机的局域网IP(如192.168.1.100)的8211端口。
- 你需要知道你的公网IP地址。可以在服务器上执行
互联网连接(通过社区服务器列表):如果你在配置文件中没有设置
ServerPassword,并且网络可达,你的服务器可能会自动出现在游戏的社区服务器列表中。玩家可以通过浏览列表找到你的ServerName并加入。这种方式最方便,但对网络环境要求较高。
4.2 服务器基础管理命令与管理员操作
成功进入服务器后,作为服主,你需要掌握一些基本的游戏内管理命令。首先,你需要在游戏中输入命令获取管理员权限:
/AdminPassword YourStrongAdminPasswordHere如果密码正确,屏幕会有提示。之后,你就可以使用以下常用命令(在游戏内按Enter打开聊天框输入):
| 命令 | 功能 | 示例 |
|---|---|---|
#Shutdown {Seconds} {MessageText} | 关闭服务器(倒计时+公告) | #Shutdown 60 服务器将在1分钟后维护,请及时保存! |
#DoExit | 立即强制关闭服务器(不推荐) | #DoExit |
#Broadcast {MessageText} | 全服广播消息 | #Broadcast 今晚8点有活动! |
#KickPlayer {SteamID} | 踢出指定玩家 | #KickPlayer 7656119xxxxxxxxxx |
#BanPlayer {SteamID} | 封禁指定玩家 | #BanPlayer 7656119xxxxxxxxxx |
#TeleportToPlayer {SteamID} | 传送到目标玩家身边 | #TeleportToPlayer 7656119xxxxxxxxxx |
#TeleportToMe {SteamID} | 将目标玩家传送到自己身边 | #TeleportToMe 7656119xxxxxxxxxx |
#Save | 手动立即保存世界数据 | #Save |
如何获取玩家的SteamID?在游戏内,管理员按Tab打开玩家列表,可以看到所有在线玩家的名字和SteamID。
4.3 存档备份、恢复与服务器更新
存档备份:这是服主最重要的日常工作!服务器存档位于/home/paluser/palworld-server/Pal/Saved/SaveGames目录下。你应该定期备份整个SaveGames文件夹。
# 一个简单的手动备份脚本示例,可以放到 /home/paluser/scripts/backup.sh #!/bin/bash BACKUP_DIR="/home/paluser/palworld-server/backups" SAVE_DIR="/home/paluser/palworld-server/Pal/Saved/SaveGames" TIMESTAMP=$(date +%Y%m%d_%H%M%S) # 停止服务(可选,热备份可能导致存档不一致,但游戏有#Save命令) # sudo systemctl stop palworld.service # 创建备份 tar -czf "$BACKUP_DIR/palworld_backup_$TIMESTAMP.tar.gz" -C "$SAVE_DIR" . # 启动服务(如果停止了) # sudo systemctl start palworld.service echo "Backup completed: palworld_backup_$TIMESTAMP.tar.gz"给脚本执行权限:chmod +x /home/paluser/scripts/backup.sh。然后可以通过crontab -e添加定时任务,例如每天凌晨3点自动备份:0 3 * * * /home/paluser/scripts/backup.sh。
存档恢复:如果需要回档,先停止服务器,然后清空或移走当前的SaveGames目录,再将备份的压缩包解压回去,最后启动服务器。
服务器更新:《幻兽帕鲁》游戏更新时,服务端也需要更新。流程很简单:
# 1. 停止服务 sudo systemctl stop palworld.service # 2. 以paluser身份运行SteamCMD更新 sudo -u paluser /home/paluser/steamcmd/steamcmd.sh +force_install_dir /home/paluser/palworld-server/Pal +login anonymous +app_update 2394010 validate +quit # 3. 启动服务 sudo systemctl start palworld.service建议在更新前,务必手动执行一次备份。
4.4 性能监控与常见问题排查
服务器运行后,如何知道它是否健康?
查看资源占用:
# 查看palworld-server进程的资源使用情况 top -p $(pgrep -f PalServer) # 或者用更直观的htop(需安装) htop重点关注
%CPU、%MEM和RES(常驻内存)。如果内存使用率持续超过90%,可能需要考虑优化配置(如降低DropItemMaxNum)或升级内存。查看实时日志:
sudo journalctl -u palworld.service -f --lines=50这里会显示玩家连接、断开、游戏内事件等信息,是排查问题的第一现场。
常见问题与排查:
- 玩家无法连接:
- 检查服务器进程是否在运行:
sudo systemctl status palworld.service。 - 检查防火墙/安全组:确保UDP 8211端口在Deepin本地防火墙和云平台安全组均已放行。
- 检查网络连通性:在另一台电脑上用
nc -zu 你的服务器IP 8211测试端口是否开放。
- 检查服务器进程是否在运行:
- 服务器卡顿、延迟高:
- 先用
top或htop查看CPU和内存是否吃满。 - 检查服务器上行带宽是否被占满(可使用
iftop或nethogs工具)。 - 尝试在
PalWorldSettings.ini中调低DropItemMaxNum、BaseCampMaxNum等参数。
- 先用
- 服务启动失败:
- 查看详细日志:
sudo journalctl -u palworld.service -e。 - 常见原因:配置文件
PalWorldSettings.ini格式错误(如括号不匹配、引号错误);磁盘空间不足;端口被占用。
- 查看详细日志:
- 玩家无法连接:
经过以上步骤,你应该已经拥有了一个在Deepin上稳定运行的《幻兽帕鲁》私服。从系统准备到服务部署,从参数调优到日常维护,整个过程虽然有些繁琐,但带来的掌控感和稳定性提升是巨大的。最关键的是,你在这个过程中学到的Linux服务管理、网络配置和问题排查技能,其价值远超搭建一个游戏服务器本身。