5分钟搭建PalWorld(幻兽帕鲁)游戏服务器

2024-02-09 04:10

本文主要是介绍5分钟搭建PalWorld(幻兽帕鲁)游戏服务器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、准备工作

1.服务器要求

CPU4核(推荐)
内存16GB 建议使用 32GB 以上才能稳定运行。用8GB启动服务器是可以的,但是玩得越久,服务器就会因为内存不足而崩溃。
网络UDP 端口 8211(默认)

由于和作者一起play的小伙伴不多,所以使用的是腾讯云轻量应用服务器4C8G配置

系统镜像需选择为CentOS7.6

推荐使用腾讯云轻量应用服务器,新用户仅66/月即可购买4C16G配置。

在这里插入图片描述

2.(可选)使用OpenVPN保护服务器仅被可信用户连接

首先在轻量应用服务器控制台防火墙中放通tcp1194

服务端配置:
sudo yum install epel-release
sudo yum install -y openvpn easy-rsa
sudo mkdir /etc/openvpn/easy-rsa
sudo mkdir /etc/openvpn/ccd
sudo cp -ai /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass
sudo ./easyrsa build-server-full server nopass
sudo ./easyrsa gen-dh
sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn/

创建配置文件

vim /etc/openvpn/server.conf
port 1194                                    #端口
proto tcp                                    #协议
dev tun                                      #采用路由隧道模式
ca ca.crt                  #ca证书的位置
cert server.crt     #服务端公钥的位置
key server.key     #服务端私钥的位置
dh dh.pem                  #证书校验算法  
server 10.8.0.0 255.255.255.0                #给客户端分配的地址池ifconfig-pool-persist ipp.txt                #地址池记录文件位置,未来让openvpn客户端固定ip地址使用的
keepalive 10 120                             #存活时间,10秒ping一次,120秒如果未收到响应则视为短线
max-clients 100                              #最多允许100个客户端连接
status openvpn-status.log                    #日志位置,记录openvpn状态
log /var/log/openvpn.log                     #openvpn日志记录位置
verb 3                                       #openvpn版本
client-to-client                             #允许客户端与客户端之间通信
persist-key                                  #通过keepalive检测超时后,重新启动VPN,不重新读取
persist-tun                                  #检测超时后,重新启动VPN,一直保持tun是linkup的,否则网络会先linkdown然后再linkup
duplicate-cn                                 #客户端密钥(证书和私钥)是否可以重复
comp-lzo                                     #启动lzo数据压缩格式
client-config-dir /etc/openvpn/ccd               #配置客户端配置文件目录

启动服务端

sudo systemctl start openvpn@server
设置开机自启
sudo systemctl enable openvpn@server

服务端配置完成

客户端配置
(1)下载Windows客户端

官方地址https://openvpn.net/client/client-connect-vpn-for-windows/

(2)服务端生成客户端的证书
cd /etc/openvpn/easy-rsa./easyrsa build-client-full client_name pwd

之后将ca.crt client_name.crt client_name.key都下载下来

文件位置

ca.crt >> /etc/openvpn/easy-rsa/pki

client_name.crt >> /etc/openvpn/easy-rsa/pki/issued

client_name.key >> /etc/openvpn/easy-rsa/pki/private

(3)重启 <服务端>
sudo systemctl restart openvpn@server
(4)创建配置文件client_name.ovpn
client
dev tun
proto tcp
remote 服务端ip 1194
resolv-retry infinite
nobind
ca ca.crt
cert client_name.crt
key client_name.key
verb 3
persist-key
comp-lzo

将ca.crt client_name.crt client_name.key与client_name.ovpn放置在同一个文件夹中

双击文件即可链接

二、安装PalServer

1.安装所需库

yum install glibc.i686 libstdc++.i686

2.创建用户

sudo useradd -m steam 
sudo passwd steamsudo -u steam -s 
cd /home/steam

3.下载steamcmd

mkdir ~/Steam && cd ~/Steamcurl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

4.下载PalServer

官方教程地址https://tech.palworldgame.com/dedicated-server-guide#linux

./steamcmd.sh +login anonymous +app_update 2394010 validate +quit

下载完成后 进入到游戏目录中 尝试运行(务必执行一次PalServer.sh)

cd steamapps/common/PalServer
./PalServer.sh

如果出现报错

.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory

则回到steamcmd目录

cd /home/steam/Steam
mkdir -p ~/.steam/sdk64/
./steamcmd.sh +login anonymous +app_update 1007 +quit
cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/

然后重新尝试运行即可

cd steamapps/common/PalServer
./PalServer.sh

运行后若出现下面的报错为正常情况

sh: xdg-user-dir: command not found
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/steam/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 1 milliseconds to initialize
Setting breakpad minidump AppID = 2394010
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

5.编辑配置文件

默认配置文件位置/home/steam/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini

cp /home/steam/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini 
/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.inivim /home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

配置文件参数(使用OpenVPN,无需填写PublicIP):

Difficulty英文机翻
DayTimeSpeedRateDay time speed白天速度
NightTimeSpeedRateNight time speed夜间速度
ExpRateEXP rate经验率
PalCaptureRatePal capture rate好友捕获率
PalSpawnNumRatePal appearance ratePal出现率
PalDamageRateAttackDamage from pals multipiler好友倍增器造成的伤害
PalDamageRateDefenseDamage to pals multipiler对好友倍增器造成伤害
PlayerDamageRateAttackDamage from player multipiler玩家倍增造成的伤害
PlayerDamageRateDefenseDamage to player multipiler对玩家造成的伤害乘数
PlayerStomachDecreaceRatePlayer hunger depletion rate玩家饥饿消耗率
PlayerStaminaDecreaceRatePlayer stamina reduction rate玩家体力减少率
PlayerAutoHPRegeneRatePlayer auto HP regeneration rate玩家自动HP回复率
PlayerAutoHpRegeneRateInSleepPlayer sleep HP regeneration rate玩家睡眠HP回复率
PalStomachDecreaceRatePal hunger depletion rate伙伴饥饿消耗率
PalStaminaDecreaceRatePal stamina reduction rate帕尔耐力减少率
PalAutoHPRegeneRatePal auto HP regeneration ratePal自动HP回复率
PalAutoHpRegeneRateInSleepPal sleep health regeneration rate (in Palbox)Pal 睡眠健康恢复率(Palbox 中)
BuildObjectDamageRateDamage to structure multipiler多层结构损坏
BuildObjectDeteriorationDamageRateStructure determination rate结构测定率
CollectionDropRateGetherable items multipiler可收集物品倍增器
CollectionObjectHpRateGetherable objects HP multipiler可收集的物体 HP 倍增器
CollectionObjectRespawnSpeedRateGetherable objects respawn interval可收集物体的重生间隔
EnemyDropItemRateDropped Items Multipiler掉落物品倍增器
DeathPenaltyDeath penalty None : No lost, Item : Lost item without equipment, ItemAndEquipment : Lost item and equipment, All : Lost All item, equipment, pal(in inventory)死刑 None : 没有丢失, Item : 丢失的没有装备的物品, ItemAndEquipment : 丢失的物品和装备, All : 丢失所有物品、装备、朋友(库存中)
GuildPlayerMaxNumMax player of Guild公会最大玩家数
PalEggDefaultHatchingTimeTime(h) to incubate massive egg孵化大蛋的时间(h)
ServerPlayerMaxNumMaximum number of people who can join the server服务器最多可加入人数
ServerNameServer name服务器名称
ServerDescriptionServer description服务器描述
AdminPasswordAdminPassword管理员密码
ServerPasswordSet the server password.设置服务器密码。
PublicPortPublic port number公共端口号
PublicIPPublic IP公共IP
RCONEnabledEnable RCON启用RCON
RCONPortPort number for RCONRCON 的端口号

6.连接到游戏服务器

若使用OpenVPN,连接后在专用服务器IP地址处填10.8.0.1:8211即可

若未使用OpenVPN,需要在轻量应用服务器控制台防火墙放通udp8211。

7.在游戏中使用管理员命令

按下Enter调出聊天框,输入/adminpassword 你设置的管理员密码 即可获得管理员权限

管理员命令

命令描述机翻描述
/Shutdown {Seconds} {MessageText}The server is shut down after the number of Seconds Will be notified of your MessageText.服务器关闭后的秒数将通知您的 MessageText。
/DoExitForce stop the server.强制停止服务器。
/Broadcast {MessageText}Send message to all player in the server.向服务器中的所有玩家发送消息。
/KickPlayer {SteamID}Kick player from the server.将玩家从服务器中踢出。
/BanPlayer {SteamID}BAN player from the server.从服务器禁止玩家。
/TeleportToPlayer {SteamID}Teleport to current location of target player.传送到目标玩家的当前位置。
/TeleportToMe {SteamID}Target player teleport to your current location目标玩家传送到您当前的位置
/ShowPlayersShow information on all connected players.显示所有已连接玩家的信息。
/InfoShow server information.显示服务器信息。
/SaveSave the world data.保存世界数据。

9.获取steamID

在获取管理员权限后,按下 ESC 后点击 选项 即可看到steamid,右键单击两次即可复制

10.将程序注册为服务

先Ctrl+C将服务停止,然后输入下方命令即可对程序进行挂起

切到root用户

sudo su
sudo usermod -aG wheel steam
vim /etc/systemd/system/palserver.service

填写以下配置

[Unit]
Description=PalServer
After=network.target[Service]
User=steam
ExecStart=/usr/bin/sudo -u steam /home/steam/Steam/steamapps/common/PalServer/Pal/Binaries/Linux/PalServer-Linux-Test Pal ""
Restart=always[Install]
WantedBy=default.target
设置开机自启
sudo systemctl enable palserver
启动
sudo systemctl start palserver
查看状态
sudo systemctl status palserver

11.配置虚拟内存以及定时清理缓存

配置虚拟内存

查看当前虚拟内存空间

free -h

设置虚拟内存为12G,建议根据机型调整

内存小于等于 2GB: 设置为内存的两倍。
内存大于 2GB 且小于 8GB: 设置为内存的1.5倍。
内存大于 8GB 且小于 64GB:等于内存大小。
内存大于 64GB: 设置为64GB。

sudo fallocate -l 12G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

再次查看虚拟内存空间

free -h
配置定时清理缓存
vim clean.sh
#!/bin/bash
sync
echo 1 > /proc/sys/vm/drop_caches
vim /etc/crontab

这里设置的是每2h执行一次,可以根据自身机型进行调整执行周期

0 */2 * * * root /path/to/sync.sh

12.(可选)定期备份到轻量对象存储

如果你与作者一样选用了腾讯云的轻量应用服务器,那么同时也可使用轻量对象存储来定期备份自己的游戏数据

轻量对象存储相比标准的对象存储少了很多的费用,例如请求费用,真正做到了一个套餐包解决问题。

腾讯云轻量对象存储详情页

1. 创建存储桶

登录轻量云控制台的对象存储,点击创建存储桶,输入存储桶名称(例如,palserver)。注意:一定要选择与轻量应用服务器同样的地域。

在这里插入图片描述

2.将桶挂载到服务器

进入到服务器详情页,选择 对象存储-挂载存储桶-选择刚刚创建的桶 ,存储桶挂载目录填写/palbackup ,服务器挂载目录 填写/root/palbackup ,完成后点击确定。

在这里插入图片描述
在这里插入图片描述
提示挂载成功后,即可进入下一步

3.编辑备份脚本

以root用户登录服务器

vim palbackup.sh
#!/bin/bash# Define source directory and backup directory
SOURCE_DIR="/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/SaveGames/0"
BACKUP_DIR="/root/palbackup"
DATE=$(date +%Y%m%d_%H%M%S)# Create a gzip compressed tarbal
tar -cvf "${BACKUP_DIR}/backup_${DATE}.tar" "${SOURCE_DIR}"echo "Backuppalbackup.sh of ${SOURCE_DIR} completed at ${BACKUP_DIR}/backup_${DATE}.tar.gz"

保存后尝试运行 bash palbackup.sh

在这里插入图片描述
运行后可以看到 已经成功将数据打包到了/root/palbackup目录下,进入轻量对象存储桶中查看,可以看到对应的文件已经存储到了桶中。
在这里插入图片描述

4.将备份脚本设置为定时任务
crontab -e
0,30 * * * * bash /root/palbackup.sh >> /root/palbackup.log

保存后即可生效
教程到这里就结束了 各位可以享受自己的游戏之旅

这篇关于5分钟搭建PalWorld(幻兽帕鲁)游戏服务器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693072

相关文章

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife