Linux系统搭建PalWorld私服,幻兽帕鲁开服联机教程,保姆级教程

最近这游戏挺火,很多人想跟朋友联机,如果有专用服务器,就不需要房主一直开着电脑,稳定性也好得多。

幻兽帕鲁简介

幻兽帕鲁》是一款游戏作品。 它既有类似《宝可梦》的宠物,又有 FPS 战斗系统。在游戏中,玩家可以培养“帕鲁”,使其战斗、繁殖、耕种、制造,还可以出售帕鲁,甚至将其制作成食物。

在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等,这是一款支持多人游戏模式的全新开放世界生存制作游戏。

帕鲁可以进行战斗、繁殖、协助玩家做农活,也可以为玩家在工厂工作。玩家也可以将它们进行售卖,或肢解后食用。

幻兽帕鲁PalWorld开服联机教程(雨云面板服):https://blog.zeruns.tech/archives/756.html

幻兽帕鲁开服交流群:769357256

准备

首先需要一台云服务器,这里推荐雨云的:

雨云优惠注册地址:https://www.rainyun.com/zeruns_?s=blog

优惠码:zeruns

使用优惠码注册后绑定微信可获得5折优惠券

其他云服务器/VPS推荐:https://blog.zeruns.tech/archives/383.html

购买大厂的服务器时最好买时间长一点,因为只有新用户优惠便宜,后续续费非常贵。

注册完账号后进到雨云控制台,游戏云入口可以在后台的 总览云产品 部分找到:

点击购买游戏云,选择VPS服务器

接着选择机型和配置,VPS服务器目前有14900KF、13900KF、Ryzen 7950X、5900X、Gold 6146和E5 2666V3这6种配置,选哪个都可以,幻兽帕鲁对CPU性能要求不高,配置建议4核8G以上(幻兽帕鲁官方推荐服务器配置为4核16G,最低8G,最好32G以上,当然如果只是好友几个玩用不着这么高)

计费模式如果是经常玩的建议选固定计费,不常玩的选动态计费即可。

系统选择Ubuntu最新版

选好后就可以点右下角的购买了,年付有7折优惠。可以1元试用1天。

因为这游戏太火了服务器都卖完了,所以截图里都没货,这几天会陆续上架新机器了。

下面教程我都用美国的云服务器演示,操作流程跟游戏云的一样。

购买后即可在我的游戏云这里看到你买的VPS,点击这个卡片或者管理键。

接着就可以看到VPS的信息了,在这里重装/切换系统,可以升级配置。

连接服务器

下载安装并打开ssh客户端软件,ssh客户端软件推荐putty或mobaxterm。

我这里用mobaxterm,在SSH客户端中输入你的服务器的IP地址或域名(雨云控制台获取),还有SSH端口,然后点击好的或者打开。

然后输入账号并按回车,账号一般默认为root,接着输入密码并按回车确定,输入密码时不会显示出来。

温馨提示:在SSH终端中按住鼠标左键选择文字,然后松开鼠标,再在空白处单击一下,这样就把选中的文字复制了;在SSH终端单击右键即为粘贴。

设置端口映射

如果用的服务器有独立公网IP就不需要进行这一步的端口映射设置。

点击NAT端口映射,新建规则,设置需要映射出去的内网端口(幻兽帕鲁服务器默认端口 8211),然后点创建映射规则,外网端口不用改,它会随机生成,如果创建提示外网端口被使用你就手动随便输入一个。

记住映射后的公网地址和端口,下面开好服后联机要用。

然后回到SSH终端输入下面这些命令来关闭系统自带防火墙(也可以不关闭防火墙,只需你自己配置开放所需要的端口即可,这样更安全,不过这里不细讲了)。

# 关闭防火墙,依次执行
systemctl stop firewalld
systemctl disable firewalld
service iptables stop

我下面命令提示是防火墙本就并没有开启,不过为了保证顺利开服照例执行一遍。

开服

操作步骤

有别于Windows的部署教程,Linux的部署操作需要通过命令行来完成,如果您不熟悉Linux的相关操作,建议您使用Windows操作系统进行部署。

在开始部署之前,您需要首先登录服务器,然后依次在命令框输入并执行以下命令即可(#号后面的是注释,不用执行)。本节选用了官方推荐的Linux操作系统Ubuntu作为演示。

脚本一键部署

在SSH终端输入下面的命令:

# 由于palworld服务端不支持以root用户运行,所以需要创建个ubuntu账号,如果登陆就是ubuntu账号的就忽略这步直接执行下面的一键安装脚本
sudo useradd -s /bin/bash -m ubuntu
# 设置ubuntu用户的密码,运行这条指令后按提示输入两遍密码
sudo passwd ubuntu
# 授予ubuntu用户sudo权限
sudo usermod -aG sudo ubuntu
# 切换到ubuntu用户
sudo su ubuntu
# 切换到用户主目录,通常是“/home/用户名”目录
cd ~

# 一键安装脚本
wget -O - https://tc2.zeruns.tech/other/pal-server-install.sh | sh

注意:如果您使用中国内地地域的服务器运行一键部署脚本,则有可能因为网络原因导致脚本运行失败,建议您多次重试或换个时间段再次部署。此处的原因主要是安装过程中需要请求Steam的服务器,网络状况不稳定。

安装成功如下图所示:

一键部署脚本执行成功后,会为您创建一个名为pal-server的服务,如果您后续想管理该服务,可以使用以下命令来进行:

# 启动幻兽帕鲁的服务
sudo systemctl start pal-server
# 重启幻兽帕鲁的服务
sudo systemctl restart pal-server
# 关闭幻兽帕鲁的服务
sudo systemctl stop pal-server
# 查询幻兽帕鲁服务的状态
sudo systemctl status pal-server

如果您想要从零开始一步一步手动部署,可以参考接下来的教程。如没有需要,则可直接跳过

手动部署

第一步:由于palworld服务端不支持以root用户运行,所以需要创建个ubuntu账号,如果登陆就是ubuntu账号的就忽略这步直接执行下面的

# 创建ubuntu账号
sudo useradd -s /bin/bash -m ubuntu
# 设置ubuntu用户的密码,运行这条指令后按提示输入两遍密码
sudo passwd ubuntu
# 授予ubuntu用户sudo权限
sudo usermod -aG sudo ubuntu
# 切换到ubuntu用户
sudo su ubuntu
# 切换到用户主目录,通常是“/home/用户名”目录
cd ~

第二步:在系统中添加multiverse组件,为系统添加32位软件支持,并更新软件包列表。

sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update

第三步:下载并安装SteamCMD软件包及其依赖项。

sudo apt install steamcmd

第四步:使用SteamCMD登录到Steam服务器并更新ID为2394010的游戏。

steamcmd +login anonymous +app_update 2394010 validate +quit

第五步:在当前用户的家目录下创建一个名为sdk64的子目录,并且如果需要,也会创建其父级目录(如~/.steam/

mkdir -p ~/.steam/sdk64/

第六步:使用 SteamCMD 登录到 Steam 服务器并更新 ID 为 1007 的游戏。更新过程完成后,会退出SteamCMD 。请注意,具体的游戏 ID 可能因实际情况而异,您可以根据需要替换为您要更新的游戏的正确 ID 。

steamcmd +login anonymous +app_update 1007 +quit

第七步:复制文件

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

第八步:进入~/Steam/steamapps/common/PalServer目录中

cd ~/Steam/steamapps/common/PalServer

第九步:运行名为PalServer.sh的脚本文件,并将端口号设置为 8211

./PalServer.sh port=8211

至此,服务器已成功搭建,但是此种模式下启动的游戏服,会在关闭终端时被结束,想要长期保持游戏服启动,需要创建一个服务。

先创建一个脚本,复制下面命令框中全部内容到终端里执行(这里这个不要复制单行,要全部):

cat <<EOF > pal-server-run.sh
#!/bin/bash

cd $HOME/Steam/steamapps/common/PalServer

(./PalServer.sh >> /tmp/PalServer.log &)
EOF

给脚本权限和移动脚本位置:

chmod +x pal-server-run.sh && mv pal-server-run.sh $HOME/Steam/steamapps/common/PalServer

创建服务,复制下面命令框中全部内容到终端里执行(这里这个不要复制单行,要全部):

cat <<EOF > pal-server.service
[Unit]
Description=pal-server.service

[Service]
Type=forking
User=ubuntu
Restart=on-failure
RestartSec=30s
ExecStart=$HOME/Steam/steamapps/common/PalServer/pal-server-run.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS

[Install]
WantedBy=multi-user.target
EOF

pal-server.service文件移动到/usr/lib/systemd/system/目录

sudo mv pal-server.service /usr/lib/systemd/system/

设置palworld服务端开机自启并重启一遍

sudo systemctl enable pal-server && sudo systemctl restart pal-server

接下来您可以继续完成后续步骤。

如果您后续想管理该服务,可以使用以下命令来进行:

# 启动幻兽帕鲁的服务
sudo systemctl start pal-server
# 重启幻兽帕鲁的服务
sudo systemctl restart pal-server
# 关闭幻兽帕鲁的服务
sudo systemctl stop pal-server
# 查询幻兽帕鲁服务的状态
sudo systemctl status pal-server

进入服务器

进入游戏,点击加入多人游戏(专用服务器)

在底下这里输入你服务器地址和端口,然后点击联系

然后就进到服务器了,可以开始游戏了,把地址发给别人就可以一起联机了

修改配置文件

先安装nano编辑器

sudo apt install nano

切换到ubuntu用户,如果已经是ubuntu用户就忽略这一步

sudo su ubuntu

复制默认配置文件

sudo cp ~/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini ~/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

编辑配置文件

sudo nano ~/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

这是编辑器界面,可以用方向键移动光标到要修改的参数,修改后按 Ctrl+O 然后回车保存,接着按 Ctrl+X 退出编辑器。

使用如下命令重启服务,重启完成后即可生效。

sudo systemctl restart pal-server

看不懂英文可以参考下面这个注释版修改:

; 这个配置文件是默认服务器设置的一个样例。 
; 对这个文件的修改不会影响服务器。 
; 要改变服务器设置,请修改 Pal/Saved/Config/LinuxServer/PalWorldSettings.ini 文件。 
[/Script/Pal.PalGameWorldSettings]
OptionSettings=(Difficulty=None, ; 难度,None 或 Difficulty 
    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, ; 死亡惩罚,None 不掉落,Item 只掉物品不掉装备,ItemAndEquipment 掉物品和装备,All 全都掉 
    bEnablePlayerToPlayerDamage=False, ; 启用玩家对玩家伤害功能 
    bEnableFriendlyFire=False, ; 启用友军伤害功能 
    bEnableInvaderEnemy=True, ; 启用袭击事件功能 
    bActiveUNKO=False, ; 启用 UNKO 功能 
    bEnableAimAssistPad=True, ; 启用手柄瞄准辅助功能 
    bEnableAimAssistKeyboard=False, ; 启用键盘瞄准辅助功能 
    DropItemMaxNum=3000, ; 掉落物品最大数量 
    DropItemMaxNum_UNKO=100, ; 掉落物品最大数量_UNKO 
    BaseCampMaxNum=128, ; 大本营最大数量 
    BaseCampWorkerMaxNum=15, ; 大本营工人最大数量 
    DropItemAliveMaxHours=1.000000, ; 掉落物品存在最大时长(小时) 
    bAutoResetGuildNoOnlinePlayers=False, ; 自动重置没有在线玩家的公会 
    AutoResetGuildTimeNoOnlinePlayers=72.000000, ; 无在线玩家时自动重置公会的时间(小时) 
    GuildPlayerMaxNum=20, ; 公会玩家最大数量 
    PalEggDefaultHatchingTime=72.000000, ; 帕鲁蛋默认孵化时间(小时) 
    WorkSpeedRate=1.000000, ; 工作速度倍率 
    bIsMultiplay=False, ; 是否为多人游戏 
    bIsPvP=False, ; 是否为 PvP 游戏 
    bCanPickupOtherGuildDeathPenaltyDrop=False, ; 是否可以拾取其他公会的死亡掉落物 
    bEnableNonLoginPenalty=True, ; 是否启用不登录惩罚 
    bEnableFastTravel=True, ; 是否启用快速旅行 
    bIsStartLocationSelectByMap=True, ; 是否通过地图选择起始位置 
    bExistPlayerAfterLogout=False, ; 是否在登出后保留玩家 
    bEnableDefenseOtherGuildPlayer=False, ; 是否启用对其他公会玩家的防御 
    CoopPlayerMaxNum=4, ; 合作玩家最大数量 
    ServerPlayerMaxNum=32, ; 服务器玩家最大数量 
    ServerName="Default Palworld Server", ; 服务器名称 
    ServerDescription="", ; 服务器描述 
    AdminPassword="", ; 管理员密码 
    ServerPassword="", ; 服务器密码 
    PublicPort=8211 ; 公共端口 
    

管理员命令

如果要使用命令,需要设置管理员密码后并使用 /AdminPassword 密码 命令在聊天框获取管理权限。

命令格式作用
/shutdown {秒} {messageText}服务器在秒数后关闭 将收到您的 MessageText 的通知
/DoExit强制停止服务器
/Broadcast {MessageText}向服务器中的所有玩家发送消息
/KickPlayer {SteamID}将玩家从服务器上踢出
/BanPlayer {SteamID}将玩家从服务器上封禁
/TeleportToPlayer {SteamID}传送到目标玩家的当前位置
/TeleportToMe {SteamID}目标玩家传送到您当前的位置
/ShowPlayers显示所有已连接玩家的信息
/Info显示服务器信息
/Save保存服务器数据

内存优化(可选)

收到大量玩家反馈,使用4核8G的服务器开服,在进行一段时间的游戏后会出现内存不足的情况,这里为大家提供一个缓解内存不足的方案作参考:定时重启

为 Linux 配置 Swap

Swap是计算机系统中的一种虚拟内存技术,它允许操作系统将部分内存中的数据暂时存储到硬盘上,以便为其他需要更多内存的任务提供空间。

第一步:检查当前的swap情况,如果您首次配置,运行这个命令将不会返回任何内容。

swapon --show

第二步:创建一个swap文件

命令里的“8G”是指创建一个大小为8GB的文件,这个文件可以用作swap空间,用于临时存储不适合放在内存中的数据。您可以根据需要调整大小。 对于 Linux 来说,建议您将该文件的大小设置为与系统内存一致,此处以8GB内存为例。
sudo fallocate -l 8G /swapfile

第三步:设置文件权限

sudo chmod 600 /swapfile

第四步:将文件格式化为swap格式

sudo mkswap /swapfile

第五步:启用swap文件

sudo swapon /swapfile

第六步:设置永久使用swap文件(系统在启动时自动启用swap文件)

sudo vim /etc/fstab

使用键盘方向键或j、k、h、l键浏览到文件的末尾。按下i进入编辑模式,光标将移动到文件的末尾,并将以下内容添加进文件:

/swapfile   none    swap    sw    0   0

按下Esc键退出编辑模式,并输入:wq并按下回车键保存文件并退出vim。

第七步:重新加载fstab文件

sudo swapon --all

第八步:验证swap设置是否成功

swapon --show

如出现下图内容,则说明设置成功。

当然,说了这么多,最佳实践可能还是升级服务器套餐配置啦。

推荐阅读

最后修改:2024 年 01 月 25 日
如果您觉得我的文章有帮助,请随意赞赏,赞赏有助于激发博主的热情,感谢!