Linux系统搭建幻兽帕鲁服务器,PalWorld开服联机教程,保姆级教程
最近这游戏挺火,很多人想跟朋友联机,如果有专用服务器,就不需要房主一直开着电脑,稳定性也好得多。
幻兽帕鲁简介
《幻兽帕鲁》是一款游戏作品。 它既有类似《宝可梦》的宠物,又有 FPS 战斗系统。在游戏中,玩家可以培养“帕鲁”,使其战斗、繁殖、耕种、制造,还可以出售帕鲁,甚至将其制作成食物。
在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等,这是一款支持多人游戏模式的全新开放世界生存制作游戏。
帕鲁可以进行战斗、繁殖、协助玩家做农活,也可以为玩家在工厂工作。玩家也可以将它们进行售卖,或肢解后食用。
准备
首先需要一台云服务器,这里推荐雨云的:
雨云优惠注册地址:https://www.rainyun.com/ryy_?s=rainbbs
优惠码:ryy
使用优惠码注册后绑定微信可获得5折优惠券
注册完账号后进到雨云控制台,游戏云入口可以在后台的 总览 和 云产品 部分找到:
点击购买游戏云,选择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
如出现下图内容,则说明设置成功。
当然,说了这么多,最佳实践可能还是升级服务器套餐配置啦。
推荐阅读
- 雨云服务器快速搭建Cloudreve网盘网站并挂载雨云对象存储的教程:https://forum.rainyun.com/t/topic/6201
- PicGo+雨云ROS搭建自己的图床,可配合Typora使用:https://forum.rainyun.com/t/topic/5659/
- 雨云游戏云MCSM面板服使用&我的世界Forge服务端开服教程:https://forum.rainyun.com/t/topic/5727
- 雨云虚拟主机使用教程&WordPress博客网站搭建教程:https://forum.rainyun.com/t/topic/5769
- 我的世界(MC)整合包开服教程,Pokehaan Craft 2整合包服务器搭建教程:https://forum.rainyun.com/t/topic/6707
- 雨云服务器搭建内网穿透服务器教程,NPS搭建和使用教程:https://forum.rainyun.com/t/topic/6008