使用阿里云的无影云电脑(或其他无公网IP的)搭建幻兽帕鲁服务器

最近半个月幻兽帕鲁火了起来,Never 也来凑个热度。

官方文档中阐述的服务器的推荐配置为4核16GB内存,更推荐32GB内存,也提了一句说8GB可以开服,但是后期可能会崩溃。所以,目前来说开服的门槛还是挺高的…

阿里云、腾讯云和京东云等商家也看准了商机,纷纷推出了一系列针对幻兽帕鲁服务器的优惠和教程。在浏览阿里云的时候,碰巧看到无影云电脑(Windows 系统)可以免费试用三个月,配置为4c8g,便想来搭建个幻兽帕鲁的服务器来练练手。为了避免有推广的嫌疑,相关链接就不附上了。选择配置的时候记得要选择 Windows Server 2022,地域按照个人条件,优先选择近处。

继续阅读前,请先确认…

1. 由于会用到 FRP 服务,请确保拥有一台具有公网 IP 的设备,且可被远端连接到。

2. 如果没有的话,可以使用 Tailscale 等内网穿透工具。

安装幻兽帕鲁服务器端

开通完无影云服务后,应该会收到一封含有用户名,密码,办公网络ID等信息的电子邮件,利用这些信息可以登录到无影云客户端中,也可以使用网页端

首先安装 SteamCMD。SteamCMD 是一个命令行版本的 Steam 客户端。它的主要用途是在一个命令行界面的 Steam 客户端上安装及更新各种可用的专用服务端。在数据盘中新建一个文件夹,这里以“steamcmd”为例,然后下载这个文件,将其解压至“steamcmd”文件夹中。此时,该文件夹中应该只有一个“steamcmd.exe”。

然后,更新 steamcmd。右键“steamcmd.exe”,选择“以管理员身份运行”,等待更新结束后,关闭窗口。更新完毕会显示如下内容:

按住 shift同时右键单击文件夹空白区域,点击“在此处打开 Powershell 窗口”:

输入并运行以下命令安装幻兽帕鲁服务器端:

.\steamcmd +login anonymous +app_update 2394010 validate +quit

如果只有以下回显,则说明权限不够,需要用管理员权限来运行:

Redirecting stderr to 'C:\Program Files\steamcmd\logs\stderr.txt'

此时,可以右键单击Windows图标,选择“Powershell(管理员)”,cd至steamcmd所在目录(文件夹存在空格的,要使用双引号“Program Files”引起来),再运行上面的命令,应该可以正常下载安装:

安装完成后,输入以下命令进入服务器文件夹并开始运行服务器:

cd .\steamapps\common\PalServer
.\PalServer.exe

此时应该会有一个命令框出现:

这代表服务器现在开始运行了。

部署并连接 FRP 服务

Never 在之前的一篇文章里提到过在公网IP的机器上部署 Frps 服务,这里就不再复述了。如果按照那篇文章部署的话,看到“接下来配置被远程的Windows机器以前就行,后面的部分不用看了。

需要注意的是,现在 frp 配置文档的后缀改变了,内容也变了,部署时还请注意。具体变更另请参阅 Github 项目页(fatedier/frp)。基本上就几个操作:将项目克隆至机器内,编辑配置文件(设置端口),开启frps服务。可能需要安装 screen 以便在退出 ssh 后 frps 能正常运行。

然后在无影云电脑中连接到 frp。Github 上有个项目(frpmgr)是Windows 下的 frp 图形界面客户端(koho/frpmgr),对新手很友好,Never 就正在使用这个客户端。到release中下载最新版本,安装并打开,点击左下角的“新建配置”:

名称自定义填写,服务器地址填写有公网IP的VPS的IP地址,端口按照 frps 配置文档中的填写,默认为7000。如果没配置用户名和认证的话,点击确定保存。

接下来转发服务器的端口,点击“添加”:

名称自定义填写,类型选择udp,本地地址填写“127.0.0.1”,端口填写“8211”,远程端口可以自定义填写,注意不要与前面的“服务器端口”一样。完成后点击确定:

点击“启动”连接到frps:

如果没问题的话,日志中应该有显示,且vps中也会有提示。

2024/02/03 07:01:26 [I] [service.go:563] [xxxxxxxxx] client login info: ip [1.1.1.1:23333] version [0.51.3] hostname [] os [windows] arch [amd64]
2024/02/03 07:02:12 [I] [udp.go:103] [xxxxxxxxx] [ps] udp proxy listen port [7021]

此时应该可以连接到服务器了,选择“加入多人游戏(专用服务器)”,在最底下输入公网IP+端口,例如“2.2.2.2:7021”,即可开始游玩。

有关服务器的数值设定与优化,另请参阅官方文档:https://tech.palworldgame.com/optimize-game-balance

也可参阅这篇文章来了解各优化项与平衡:

https://zhuanlan.zhihu.com/p/680182775

存档位置位于“…\steamapps\common\PalServer\Pal\Saved\SaveGames\”,其中,“…”代表steamcmd目录。

…或使用 Tailscale 服务

如果没有公网IP的VPS,不能部署frp服务的话,也没有关系,可以使用 Tailscale 来曲线游玩。

Tailscale (以下简称 ts)和 Zerotier 类似,它可以将多个局域网组成一个虚拟局域网,继而实现多个局域网之间的远程访问。

首先注册个ts账号。打开官网,点击右上角的“Get started”,可以用微软、谷歌、苹果等账户登录。

接下来在服务器端和游玩端下载并安装 Windows 客户端,安装完成后,点击弹出的消息框登录,此时会自动打开浏览器,用刚才注册的账户登录即可。注意,两端一定要登录同一个账号

顺利的话,网页中的用户指南应该会提示在一端电脑ping一下另一端电脑分配的IP地址,例如,服务器端分配的IP地址为100.100.100.212,游玩端分配的为100.100.100.219,此时用游玩端电脑,打开 Powershell,输入并运行以下命令,应该可以ping通:

ping 100.100.100.212

正在 Ping 100.100.100.212 具有 32 字节的数据:
来自 100.100.100.212 的回复: 字节=32 时间=1101ms TTL=128
来自 100.100.100.212 的回复: 字节=32 时间=211ms TTL=128
来自 100.100.100.212 的回复: 字节=32 时间=217ms TTL=128
来自 100.100.100.212 的回复: 字节=32 时间=217ms TTL=128

100.100.100.212 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 211ms,最长 = 1101ms,平均 = 553ms

如果右键单击任务栏中的ts图标,在“Network devices—My devices”中应该可以看到另一台机器:

然后,转到服务器端电脑,右键单击任务栏中的ts图标,勾选选择“Exit node—Allow local network access”,以便其他电脑可访问到本机:

此时,再次运行服务端文件。打开游戏后,选择“加入多人游戏(专用服务器)”,在最底下分配的IP+端口(默认端口为8211),例如“100.100.100.212:8211”,即可开始游玩。

需要注意的是,由于ts仍需要一个中心网关以链路两端,而且这个中心网关貌似在国外,所以延迟可能不是很理想。

针对更多关于 Tailscale 的帮助,还请小伙伴们自行搜索。

本篇文章允许转载,但须标注来源。

参考文献

阿东i小叶子. 2024. 幻兽帕鲁一键部署专业服务器(备份存档&恢复存档). Available at: https://zhuanlan.zhihu.com/p/680182775 (Accessed: 4th Feb. 2024)

Palworld Tech Guide. 2024. Dedicated Server Guide. Available at: https://tech.palworldgame.com/dedicated-server-guide (Accessed: 4th Feb. 2024)

Vicki. 2018. Windows PowerShell进入文件夹Program Files时报错. 错误. Available at: https://blog.csdn.net/Vicki_/article/details/79789939 (Accessed: 4th Feb. 2024)