文章目录
幻兽帕鲁服务器搭建
为什么折腾呢,是因为有一台服务器,但是只有2c2g,不用上又不甘心,正好还有一台空闲的电脑,所以,开整!
Quote
其实就是 自己电脑当服务器,用云服务器的公网ip映射出去,所有,真正用到的服务只有 frp。
如果有跟我一样配置的朋友,用宝塔面板安装frp即可。
下面的所有仅供参考,不是说不能实现,只是对于服务器只进行frp的朋友来说过于繁琐。
整体流程如下:
- 服务器安装
frps
- 客户端安装
frpc
- 客户端安装
游戏服务
- 开玩~
服务端配置
Docker配置
Tips
Docker
从17.03版本之后分为CE(社区版)和EE(企业版),这里使用社区版
Docker
支持64位版本的``CentOS 7和
CentOS 8`及更高版本,它要求Linux内核版本不低于3.10
-
检查 linux 版本
lsb_release -a >>> LSB Version: :core-4.1-amd64:core-4.1-noarch >>> Distributor ID: CentOS >>> Description: CentOS Linux release 8.5.2111 >>> Release: 8.5.2111 >>> Codename: n/a
可以看到当前
linux
的版本为CentOS 8
,再看下内核是否不低于3.10uname -r >>> 4.18.0-305.3.1.el8.x86_64
-
Docker 安装
这里直接选用一键安装的脚本,主打一个快捷迅速
# 官方的一键安装方式 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # 国内 daocloud 一键安装命令 curl -sSL https://get.daocloud.io/docker | sh
执行上述任意一条命令,耐心等待安装完成
-
启动 Docker
# 服务器重启 docker 进程不会自动启动的 ,需要再次运行此命令 sudo systemctl start docker # 开机自启 systemctl enable docker
docker-compose 安装
-
前往 docker-compose 的 github 官网下载二进制包
-
上传服务器并改名
# 拷贝文件到/usr/local/bin,如果文件已经在/usr/local/bin目录,忽略此步骤 # 假如二进制文件docker-compose-linux-x86_64上传的目录是:/opt/docker cp /opt/docker/docker-compose-linux-x86_64 /usr/local/bin # 更改二进制文件名字 mv docker-compose-linux-x86_64 docker-compose
-
赋予权限
sudo chmod +x /usr/local/bin/docker-compose
-
测试结果
docker-compose --version >>> Docker Compose version v2.24.0
下载 frps
-
方法一:
# 如果没有git yum -y install git git clone xxx
-
方法二:
-
创建frp目录
mkdir -p /usr/my_packeg/frp/conf #默认为root用户 cd /usr/my_packeg/frp
-
创建 docker-compose.yml 和 frps.toml 文件
vim docker-compose.yml touch ./conf/frps.toml
-
配置 docker-compose.yml 文件
version: '3' services: frps: image: 'fatedier/frps:v0.53.2' restart: always container_name: frps environment: TZ: 'Asia/Shanghai' ports: - "7000:7000" - "7001:7001" - "8211:8211/udp" volumes: - '/etc/localtime:/etc/localtime:ro' - './conf/frps.toml:/etc/frp/frps.toml' command: ["-c", "/etc/frp/frps.toml"]
-
开放端口
服务器的端口开放基本在安全组里面,总的来说,需要放行的端口如下:
端口 | 协议 | 来源 |
---|---|---|
8211 | UDP | 0.0.0.0 |
7000 | TCP | 0.0.0.0 |
7001 | TCP | 0.0.0.0 |
客户端配置
下载客户端 frpc
- 下载链接 frp_0.53.2_windows_amd64.zip
- 解压之后打开
frpc.toml
:
serverAddr = "你服务器的ip地址"
serverPort = 7000
[[proxies]]
name = "palword server"
type = "udp"
localIP = "127.0.0.1"
localPort = 8211
remotePort = 8211
- 在此处输入 cmd:
- 在 cmd 中打开 frpc:
frpc -c frpc.toml
- 访问
你的ip:7001
页面,查看 udp 端口 是否已连接
打开steam服务
-
steam上搜索
Palworld Dedicated Server
,点击启动 -
选择
Palworld Dedicated Server
,点击开始游戏即可 控制台会出现如下:
Setting breakpad minidump AppID = xxxxxxxx
Tips
在其他电脑上登同一个 steam 账号的话会有提示,不用管它
开放 windows 端口
-
在底部搜索栏搜索
防火墙
点击Windows Defender 防火墙
-
点击高级设置
-
创建入站规则
备份存档实现
由于服务器不太稳定,可能出现炸存档的情况出现,所以在此用 MinIO 定时存储游戏文件
创建 MinIO 存储桶
还是在 docker-compose.yaml
文件里面:
# 跟fprs同级别
minio:
image: quay.io/minio/minio:RELEASE.2022-08-02T23-59-16Z
container_name: project_minio
volumes:
- ./minio/data:/data
- ./minio/config:/root/.minio
ports:
- "9000:9000" # api 端口
- "9001:9001" # 控制台端口
env_file:
- ./minio/.envs
command: server --address ':9000' --console-address ':9001' /data # 指定容器中的目录 /data
privileged: true
在docker-compose.yaml
所在目录下创建相应文件:
mkdir -p minio/data && mkdir minio/config && touch minio/.env
在配置文件.env
中添加配置
TZ=Asia/Shanghai
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=12345678
MINIO_SERVER_URL=""
MINIO_COMPRESS=off
MINIO_COMPRESS_EXTENSIONS=""
MINIO_COMPRESS_MIME_TYPES=""
Warning
记得防火墙开放端口9000,9001 TCP
进入网站 ip:9001
输入 admin 12345678
进入:
创建一个桶:
设置桶为公开桶:
暂时先手动上传吧,懒得写脚本了==,存档位置在steam\steamapps\common\PalServer\Pal\Saved\SaveGames
其他
优化
-
打开虚拟内存
-
官方优化如下:
-
找到
Palworld Dedicated Server
,右键选择属性: -
在下图所示红框的文本框中输入下面的参数(此参数可以优化服务器多核性能,来自 官方文档):
-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
-
配置
在 steam\steamapps\common\PalServer\DefaultPalWorldSettings.ini
这里面是配置的模板。
依次打开 Pal/Saved/Config/WindowsServer/PalWorldSettings.ini
即为当前世界配置,复制上面的样板粘贴进入后修改即可。
具体配置项您可以参考 官方文档,这里提供一些常用项目:
Tips
倍率类项目可以为小数,即
1.000000
0.500000
此类。
是否类项目应为True
(是) 或False
(否)
配置名 | 说明 |
---|---|
DeathPenalty | 死亡掉落: None : 不掉落 Item : 只掉落物品 ItemAndEquipment : 掉落物品和装备 All : 掉落物品、装备和帕鲁 |
DayTimeSpeedRate | 白天时间流速倍率 |
NightTimeSpeedRate | 夜晚时间流速倍率 |
ExpRate | 经验获取倍率 |
PalStaminaDecreaceRate | 帕鲁耐力消耗速度倍率 |
CollectionDropRate | 收集物掉落倍率 |
WorkSpeedRate | 工作速度倍率 |
bEnableAimAssistKeyboard | 是否开启辅助瞄准 |
bEnableFastTravel | 是否开启传送 |
内存自动回收
这里使用的是Memreduct
,可以定时和超过阈值自动清理内存
随便找的使用方法:Memreduct:一款小巧的内存清理软件 - 知乎 (zhihu.com)
TODO
- 自动定时上传游戏存档
- 一键下载游戏存档并覆盖
- 一键启动windows palworld 和 frpc
- 一键部署服务器脚本