24 / 01 / 21
首先我们需要准备一台linux系统服务器,下面以Ubuntu来演示。
贴一张官方的服务器配置要求:链接
CPU | 4Cores (recommend) |
---|---|
RAM | 16GB Recommend over 32GB for stable operation. It is possible to start the server with 8 GB, but the further you play, the server will crash due to out of memory. |
Network | UDP Port 8211 (Default) Port forwarding required. |
注意:放行8211端口协议是UDP!!!如果你是国内服务器搭建(比如腾讯阿里云)一定要在防火墙或安全策略放行8211端口协议选UDP。如果使用linux面板比如宝塔,要在安全里添加端口。这个内存建议直接飙到32g,离谱。
sudo add-apt-repository multiverse sudo dpkg --add-architecture i386 sudo apt update
安装Manually:
sudo apt-get install lib32gcc-s1
切换到root创建一个名为steam
的用户(steamcmd不支持root权限启动)
sudo useradd -m steam # 新建steam用户 sudo passwd steam # 设置密码
sudo -u steam -s cd /home/steam mkdir /Steam && cd /Steam # 创建steam账号下路径并进入该路径 curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - # 下载并解压SteamCMD
手动运行:进入Steam文件夹cd ~/Steam
,执行./steamcmd.sh
,将会自动更新SteamCMD,等待终端变为steam>
即可,不要退出。紧接着在steam>
下匿名登录:login anonymous
等待5秒执行完成。
还是在steam>
下app_update 2394010 validate
,下载完成后quit
退出。
进入Pal目录cd ~/Steam/steamapps/common/PalServer
,运行Pal./PalServer.sh
。
第一次运行./PalServer.sh
大概率会出现类似的错误
dlopen failed trying to load: /home/steam/.steam/sdk64/steamclient.so with error: /home/steam/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory [S_API] SteamAPI_Init(): Sys_LoadModule failed to load: /home/steam/.steam/sdk64/steamclient.so
安装一下相关的sdk
mkdir -p ~/.steam/sdk64/ cd ~/.steam/sdk64 # 这里我在此目录下再次tar zxvf steamcmd,如果用软件源安装steamcmd会更方便 ./steamcmd.sh +login anonymous +app_update 1007 +quit ln -sf /home/steam/.steam/sdk64/linux64/steamclient.so /home/steam/.steam/sdk64/steamclient.so # 就是把这个目录下的steamclient.so重定向到上级目录
就恢复正常了,后面可能会出现找不到路径但是可以正常开启
后续就可以使用命令正常使用了
./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
需要注意linxu下配置文件在/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer
下的PalWorldSettings.ini不是主目录下的(mc玩魔怔了,主目录改半天发现没用!)
安装screen并挂载后台
sudo下新建并切换用户到steam
进入路径 cd ~/Steam/steamapps/common/PalServer
启动游戏./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
用管理员密码登录服务器 /AdminPassword 密码 显示当前玩家 /ShowPlayers # esc界面会有玩家id可以快速复制 其他命令类似 踢出 /KickPlayer [UserID]/[SteamID64] 封禁 /BanPlayer [UserID]/[SteamID64] 传送 /TeleportToPlayer {SteamID} 拉人 /TeleportToMe {SteamID} 存档 /Save 强制服务器退出 /DoExit 广播信息 /Broadcast {MessageText} 通知服务器在线玩家n秒后服务器关闭 /Shutdown {Seconds} {MessageText} /Shutdown 180 3分钟后重启,请及时下线,否则有可能坏档
1.查看 Linux 当前分区情况:
free -m
如果是增加 swap 分区,则先把当前所有分区都关闭了:
swapoff -a
2.创建要作为 Swap 分区文件(其中 /var/swapfile
是文件位置,bs*count
是文件大下,例如以下命令就会创建一个 16G 的文件):
dd if=/dev/zero of=/var/swapfile bs=1M count=16000
3.建立 Swap 的文件系统(格式化为 Swap 分区文件):
mkswap /var/swapfile
4.启用 Swap 分区:
swapon /var/swapfile
5.查看 Linux 当前分区:
free -m
如果有 Swap 就说明创建成功了:
6.设置开启启动,在 /etc/fstab 文件中加入一行代码:
vim /etc/fstab
点i输入下方代码,然后esc :wq保存并退出
/var/swapfile swap swap defaults 0 0