如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

baiyakai 2024-1-23 2 1/23

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

  • 0.购买服务器前需要了解的

    幻兽帕鲁这个游戏极其不靠谱
    虽然真的好玩,但是作为一款偏向联机的游戏太失败了
    官方服务器崩溃、回档、甚至删档
    自建服务器也同样会遇到这些情况
    这都和游戏服务端的垃圾内存管理有关
    它的内存会不断增加,不会清理,直到内存超过服务器最大限度
    游戏崩溃!
    无论是8g 16g 32g 就算你是128g的独立服务器
    玩久了一样会把内存吃满满,然后服务端崩溃
    在官方彻底修补解决前,我们是没有办法根治的
    因此我们需要做好频繁崩溃的准备,也要做好崩溃前游戏丢包卡顿的准备
    服务器配置8g起步,上不封顶

    1.购买完服务器之后

    购买完服务器之后,将其重装成Ubuntu20.04系统(因为我是这个系统)
    我们需要做到以下几点
    • 扩充swap,变相增加内存
    • 安装服务端(Steamcmd和Palserver)
    • 配置Systemd
    • 修改PalWorldSettings.ini文件
    • 熟悉管理员命令

    swap

      1. 创建一个新的 swap 文件(如果需要):

    sudo fallocate -l 10G /swapfile
    这会在根目录下创建一个名为 swapfile 的 10GB 大小的 swap 文件。
      1. 设置新 swap 文件的权限:

    sudo chmod 600 /swapfile
      1. 将文件转换为 swap 文件:

    sudo mkswap /swapfile
      1. 启用新的 swap 文件:

    sudo swapon /swapfile
      1. 查看是否成功启用了新的 swap 文件:

    sudo swapon --show
      1. 永久性配置,以便在系统重新启动时自动加载新的 swap 文件:
          • 打开 /etc/fstab文件:

    sudo nano /etc/fstab
          • 在文件末尾添加以下行:

    /swapfile none swap sw 0 0
      1. 最后,刷新文件系统表:

    sudo swapon --all --verbose

    服务端搭建

    按顺序输入代码

    # 添加 32 位架构支持和安装相关库
    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get install lib32gcc1 lib32stdc++6
    
    # 创建一个新用户并安装 screen 工具,这里会要求创建steam用户的密码
    adduser steam
    
    # 切换到新用户
    su -ls /bin/bash steam
    
    # 下载并安装 SteamCMD
    wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
    tar -xvzf steamcmd_linux.tar.gz
    ./steamcmd.sh
    
    # 设置 PalServer 安装目录并使用 SteamCMD 登录并更新 PalServer
    force_install_dir /home/steam/PalServer
    login anonymous
    app_update 2394010 validate
    quit
    
    # 进入 PalServer 目录
    cd PalServer
    
    # 创建 Steam SDK 目录并复制 steamclient.so 文件
    mkdir -p ~/.steam/sdk64/
    cp linux64/steamclient.so ~/.steam/sdk64/
    
    # 运行 PalServer 脚本,出现AppID服务器即运行成功
    ./PalServer.sh

    Systemd配置

    需要执行以下步骤:
      1. 打开 systemd 服务单元文件:

    sudo vim /etc/systemd/system/palserver.service
      1. 在 Vim 中,按 i 进入插入模式,然后添加或修改文件内容。以下是一个示例 PalServer systemd 服务单元文件的内容,包含了添加 Vim 的配置:

    [Unit]
    Description=Palworld Server
    Wants=network-online.target
    After=syslog.target network.target nss-lookup.target network-online.target
    
    [Service]
    WorkingDirectory=/home/steam/PalServer
    
    ExecStart=/bin/bash -c "/home/steam/PalServer/PalServer.sh -port=8211 -players=16 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS"
    
    LimitNOFILE=100000
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s INT $MAINPID
    
    Restart=always
    RestartSec=10
    
    User=steam
    Group=steam
    
    [Install]
    WantedBy=multi-user.target
    其中,服务器人数上限和服务器停止后等待重启秒数都可以自由设置
    1. 在编辑完成后,按 Esc 键退出插入模式
    1. 输入 :wq 并按 Enter 保存并退出 Vim
    systemd 提供了更强大的服务管理功能,包括启动、停止、重启、状态监控等,而无需依赖终端窗口
    通过 systemd,你可以使用以下命令来管理 PalServer 服务:
      • 启动服务:

    sudo systemctl start palserver
      • 停止服务:

    sudo systemctl stop palserver
      • 重启服务:

    sudo systemctl restart palserver
      • 查看服务状态:

    sudo systemctl status palserver
      • 设置服务开机自启动 :

    sudo systemctl enable palserver
      • 禁用服务开机自启动:

    sudo systemctl disable palserver
      • 重新加载 systemd 以使更改生效(vim修改后报错时):

    sudo systemctl daemon-reload

    修改配置文件

    本来是很麻烦的事情
    但是有台湾友人倾情写了个网站方便大众
    这个网站可以直接输入你想要的设定然后输出PalWorldSettings.ini文件
    把目录/home/steam/PalServer/PalSaved/Config/LinuxServer/文件夹中的文件替换掉即可

    熟悉管理员命令

    最后的最后,成为腐竹当然要能掌控全局!
    虽然管理员命令不是很多,但有些还是很重要的
    在游戏内对话框(按回车打开对话框)中输入/AdminPassword 管理员密码
    即可成为管理员
    之后在对话框可以输入的命令有:
    /Shutdown {Seconds} {MessageText} 服务器关闭数秒后将收到您的 MessageText 通知
    /DoExit 强制停止服务器
    /Broadcast {MessageText} 向服务器中的所有玩家发送消息
    /KickPlayer {SteamID} 将玩家从服务器中踢出
    /BanPlayer {SteamID} 从服务器禁止玩家
    /TeleportToPlayer {SteamID} 传送到目标玩家的当前位置
    /TeleportToMe {SteamID} 目标玩家传送到您当前的位置
    /ShowPlayers 显示所有已连接玩家的信息
    /Info 显示服务器信息
    /Save 保存世界数据
    /Save可以在停服前手动保存存档,减少坏档的机率,/Shutdown 60 可以在服务器卡顿时,无须操作终端软件,在服务器内关闭游戏端,并且通过配合systemd实现自动重启游戏端

    2.开开心心的玩吧!

    服务器准备到这种程度,后续发生的一切都随缘啦
    该坏还是坏,该崩还是崩
    只能期待自己运气好点,官方早点更新!

常见问题

游戏显示的 LOSS 高、丢包、闪回、走路被拉回去怎么办

Palworld 显示 “丢包” 主要有下面几种情况:

第一,游戏服务器负载过高

根据我们近几天收到的反馈和调查结果,绝大多数 “丢包” 实际上是由于服务器负载过高,尤其是内存不足

Palworld 服务器目前 不会主动卸载区块,内存占用只会一路爬升。尤其是 人多跑图 的情况下占用尤为离谱。

根据我们的经验,一个 8 人的服务器在没有跑图、正常游玩的情况下可以在 4 小时内吃满 32 GB 的内存:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

更糟糕的是,Palworld 服务器在性能不足时 不会像 Minecraft 那样输出警告信息,只会默默的丢包,并且在客户端会体现为走路走不动、被拉回等情况。

因此,如果您在游玩时遇到了丢包,请务必先检查服务器的内存和 CPU 使用情况,并及时重启服务器。

注意

根据我们的开服经验,碰到 “闪回”、“建造不了”、“走路被拉回去” 等等症状,都是服务器内存爆了造成的

简单的说就是服务器内存不足时把状态回滚了,并且 成功的 把这个状态 发送到客户端,造成本地状态被回滚

也就是说,网络侧是没有问题的,服务器还能正常把状态同步回客户端,只是没有能力处理客户端的状态更新

提示

单个服务器的最大内存占用可以达到 70~80 GB 左右。如果您的服务器没有超过 80 GB 的空闲内存,请务必关注内存和 CPU 使用情况并在必要的时候重启

如果您的 SSD 性能 和 空闲空间 足够,可以 打开 Windows 的分页文件功能 并配置一个巨大的分页文件
Windows 会自动将未使用的内存换入分页来减少实际的物理内存占用,该方法可以 有效减小内存压力

第二,节点负载过高

在晚高峰时段,节点负载过高会造成丢包,请检查 节点状态在新窗口打开 页面显示的节点负载。

  • 如果节点负载直接无法显示,说明节点负载高到甚至无法稳定的维持 TCP 连接,请更换其他节点。
  • 如果节点负载没有超过 60%,基本上可以排除节点负载问题。
  • 部分节点(尤其是枣庄多线)由于机房超售严重,在晚高峰无法达到峰值性能,达到 70% ~ 80% 的负载可能已经是节点的极限

请在空闲时段(上午 6 ~ 11 点)使用同样的节点进行测试,如果可以流畅的进行游玩则说明您碰到的丢包是节点负载过高造成的。

节点负载过高的问题很容易解决,更换负载较低的节点即可。我们已经在尽量扩容了,但晚高峰时段可能无法保障免费用户的体验,敬请谅解。

第三,网络问题

如果上述情况都不符合,可能说明您碰到了网络问题。

请更换 其他机房 的节点进行测试,我们 不推荐 使用启动器的延迟测试功能,请 到管理面板创建隧道

Palworld 对延迟并不敏感,
如果您希望使用启动器测试,显示的延迟在 100ms 内,游戏内显示延迟在 180ms 以内都可以 流畅 进行游玩。
卡顿通常都是其他因素造成的。

创建隧道

选择节点

请在创建隧道前到 节点状态在新窗口打开 页面选择一个较低负载的服务器。

服务器选择时不需要过于关心服务器的地理位置,
只要您距离服务器的赛博距离并不太远(如中国内地到其他地区,东北地区到华南地区),一个异地的服务器并不会明显影响您的游戏体验。

创建隧道

在 隧道列表在新窗口打开 中点击右上角创建隧道按钮,然后选择您此前选定的服务器:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

请确保对应服务器上有 UDP 标识(即图中红框部分)。

选择隧道类型为 UDP 隧道,拟定一个隧道名(隧道名与使用无关),
本地 IP 中输入 您连接本地服务器时使用的 IP(如果您的服务器与穿透客户端运行在同一台电脑上,输入 127.0.0.1),
本地端口处选择幻兽帕鲁,创建即可:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

(可选) 启动多个隧道

在下面的情况下,您可以考虑重复上面的步骤,启动 在不同的节点 多个隧道用于备份或改善体验:

  • 您希望使用的节点负载较高
  • 您的玩伴位于不同的地区

在连接时使用不同服务器的地址即可。

启动服务端

找到并配置 Palworld Dedicated Server

在 Steam 的 “库” 中,选中展示 工具 类:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

找到 Palworld Dedicated Server,右键选择属性:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

在下图所示红框的文本框中输入下面的参数(此参数可以优化服务器多核性能,来自 官方文档在新窗口打开):

-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

启动服务器

只需要像启动游戏一般启动 Palworld Dedicated Server 即可。

请注意在启动时选择 Dedicated Server 项,而不是 Community Server

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

请务必确认,联机游玩时这个启动后弹出的黑框框始终存在,这表示您的服务器一直在开启:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

启动隧道

安装并登录启动器后,在 SakuraFrp 启动器中找到您先前创建的隧道,启用即可。
(如果找不到请点击刷新按钮)

您将在 “日志” 页中看到用于连接的信息,复制图中选中(不含两侧的[])的部分即为连接信息:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

如果您启动了多条隧道,则需要在此处复制多个连接信息。

连接服务器游玩

打开游戏后,选择 加入多人游戏 (专用服务器) 项目:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

在屏幕下方的文本框中,删除其中原有的内容,粘贴上面复制的连接信息,点击 “联系” 即可连接:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

如果您启动了多条隧道,请根据需要和体验选择一条输入。

修改服务器配置

在 Steam 中找到 Palworld Dedicated Server,右键打开本地文件:

如何在Ubuntu20.04搭建幻兽帕鲁Palworld服务器及常见问题

在此文件夹中,打开 DefaultPalWorldSettings.ini 作为配置样板。

依次打开 Pal/Saved/Config/WindowsServer/PalWorldSettings.ini 即为当前世界配置,复制上面的样板粘贴进入后修改即可。

配置项目由逗号分隔,即逗号后面为新的一项配置,配置名和配置内容之间用等号连接。

具体配置项您可以参考 官方文档在新窗口打开,这里提供一些常用项目:

提示

倍率类项目可以为小数,即 1.000000 0.500000 此类。
是否类项目应为 True(是) 或 False(否)

配置名 说明
DeathPenalty 死亡掉落:
None: 不掉落
Item: 只掉落物品
ItemAndEquipment: 掉落物品和装备
All: 掉落物品、装备和帕鲁
DayTimeSpeedRate 白天时间流速倍率
NightTimeSpeedRate 夜晚时间流速倍率
ExpRate 经验获取倍率
PalStaminaDecreaceRate 帕鲁耐力消耗速度倍率
CollectionDropRate 收集物掉落倍率
WorkSpeedRate 工作速度倍率
bEnableAimAssistKeyboard 是否开启辅助瞄准
bEnableFastTravel 是否开启传送
- THE END -

baiyakai

1月23日16:40

最后修改:2024年1月23日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论