这篇笔记从obsidian导入,,日期是2024二月份
配置
物理机器
4h Intel J1900,DDR3 8g,128g 固态
系统: Ubuntu
云VPS (用于内网穿透)
去年12月份 90块钱买的
阿里云 2h2g 服务器,流量不限,速率 3mbps
系统: Ubuntu
内网穿透
对于物理机器
- 创建目录 /usr/local/bin/frpc
- 把frpc放进去
- 修改配置,如下:
frpc.toml
user = "palworld"
# 这里填 FRP服务器的ip和端口
serverAddr = "你的frp服务器ip"
serverPort = 端口
loginFailExit = false
log.to = "./frpc.log"
log.level = "info"
log.maxDays = 3
log.disablePrintColor = false
auth.method = "token"
# frps和frpc之间的密码
auth.token = "你的密码"
webServer.pprofEnable = false
transport.poolCount = 5
transport.protocol = "tcp"
transport.connectServerLocalIP = "0.0.0.0"
udpPacketSize = 1500
# 帕鲁的穿透 (注意这里用了UDP)
[[proxies]]
name = "palworld"
type = "udp"
localIP = "127.0.0.1"
localPort = 8211
remotePort = 8211
# 顺便搞个SSH
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
transport.useEncryption = false
transport.useCompression = false
remotePort = 22222
healthCheck.type = "tcp"
healthCheck.timeoutSeconds = 3
healthCheck.maxFailed = 3
healthCheck.intervalSeconds = 10
然后添加服务自动启动
先移动文件 sudo mv frpc.service /etc/systemd/system/.
重载一下systemd systemctl daemon-reload
frpc.service:
[Unit]
Description=FRP Client Daemon
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc/frpc -c /usr/local/bin/frpc/frpc.ini
Restart=always
RestartSec=20s
User=nobody
[Install]
WantedBy=multi-user.target
对于云VPS:
frps.toml
bindAddr = "0.0.0.0"
bindPort = 端口,和上面一样
kcpBindPort = 端口,和上面一样
webServer.addr = "0.0.0.0"
webServer.port = FRP面板端口
webServer.user = "admin"
webServer.password = "admin"
log.to = "./frps.log"
log.level = "info"
log.maxDays = 3
log.disablePrintColor = false
detailedErrorsToClient = true
auth.method = "token"
auth.token = "0090xcqwdn#SZdnaw12"
auth.oidc.issuer = ""
auth.oidc.audience = ""
auth.oidc.skipExpiryCheck = false
auth.oidc.skipIssuerCheck = false
allowPorts = [
{ start = 2000, end = 59000 }
]
maxPortsPerClient = 0
udpPacketSize = 1500
natholeAnalysisDataReserveHours = 168
云VPS的FRP自启也是和客户端一样的,写一个service,记得把frpc换成frps
至此,FRP服务器配置完毕
物理机
扩充swap,变相增加内存
首先,这个游戏吃很多内存,这个8g diy机子的可能吃不消
这里借鉴 WisdomDevil’s BLOG (miku.su)
- 创建一个新的 swap 文件(如果需要):
sudo fallocate -l 10G /swapfile
这会在根目录下创建一个名为 swapfile
的 10GB 大小的 swap 文件。
- 设置新 swap 文件的权限:
sudo chmod 600 /swapfile
- 将文件转换为 swap 文件:
sudo mkswap /swapfile
- 启用新的 swap 文件:
sudo swapon /swapfile
- 查看是否成功启用了新的 swap 文件:
sudo swapon --show
- 永久性配置,以便在系统重新启动时自动加载新的 swap 文件:
- 打开 /etc/fstab文件:
sudo nano /etc/fstab
- 在文件末尾添加以下行:
/swapfile none swap sw 0 0
- 最后,刷新文件系统表:
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
让palserver开机启动:
需要执行以下步骤:
- 打开 systemd 服务单元文件:
sudo vim /etc/systemd/system/palserver.service
palserver.service
[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
设置为自启动然后开服:
sudo systemctl enable palserver
sudo systemctl start palserver
然后就可以玩了!
我先去了局域网的服务器测试,再去连了FRP服务器
中途遇到的几个坑
- 记得阿里云安全组开放端口
- 幻兽帕鲁用的是UDP协议
- 内网穿透幻兽帕鲁的端口,本地端口必须和远程端口一致,否则出现ping不上的情况
- 世界配置里面的端口必须和palserver.service里面的一致,否则出现ping不上的情况
修改世界配置
PalWorld Settings Generator v0.11 (dysoncheng.github.io)
这个网站可以直接输入你想要的设定然后输出PalWorldSettings.ini文件
把目录/home/steam/PalServer/PalSaved/Config/LinuxServer/文件夹中的文件替换掉即可