介绍
有时我们想要开个某游戏的服务器,却发现只有 Windows 版的服务端,但自己系统是 Linux。
比如说 雾锁王国、方舟:生存飞升 这些游戏,目前尚未支持 Linux 版服务端。
这种情况,可以尝试用 GE-Proton 来解决这个问题喵。
GE-Proton 基于 Proton 和 Wine 开发,针对游戏做了很多优化,所以更适合用来运行游戏。
教程
以 雾锁王国 举例。
如果有些步骤你已经做过了,则可以跳过。
SteamCMD
安装 SteamCMD。
建议先看看包管理器里有没有,没有的话可以参考以下命令手动安装。
1 2 3 4 5 6
| useradd -m gameds su - gameds wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz -P ~/downloads mkdir ~/Steam && cd ~/Steam tar -xf ~/downloads/steamcmd_linux.tar.gz ./steamcmd.sh +quit
|
GE-Proton
到 GE-Proton 的 发布页面 下载最新版本的压缩包,放到 ~/downloads
目录。
然后参考以下命令进行安装。
1 2 3
| cd ~/Steam mkdir compatibilitytools.d tar -xf ~/downloads/GE-Proton*.tar.gz -C compatibilitytools.d
|
游戏服务端
从 Steam 下载 雾锁王国 的服务端。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| mkdir ~/scripts && cd ~/scripts cat >update-enshrouded.sh <<EOF # 新建脚本 #!/usr/bin/env bash
ROOT="/home/gameds" STEAM_DIR="$ROOT/Steam" GAME_DIR="$ROOT/enshrouded" APP_ID="2278520"
cd $STEAM_DIR ./steamcmd.sh +@sSteamCmdForcePlatformType windows +force_install_dir $GAME_DIR +login anonymous +app_update $APP_ID validate +quit EOF chmod +x update-enshrouded.sh ./update-enshrouded.sh exit
|
以后游戏需要更新时,再次运行最后的脚本即可。
脚本里用了 @sSteamCmdForcePlatformType windows
参数,来强制下载 Windows 平台的文件。
这是因为,如果默认下载 Linux 平台的文件,可能会缺少内容。
系统服务
将游戏服务端设置为系统服务。
服务配置中的部分内容需要根据情况调整,比如 GE-Proton 的版本。
如果你还是 gameds
用户,记得先用 exit
命令,切换回 root
用户。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| cat >/etc/systemd/system/enshrouded.service <<EOF # 新建服务 [Unit] Description=Enshrouded 雾锁王国 服务器 Documentation=https://enshrouded.zendesk.com/hc/en-us/sections/16050842957085-Multiplayer-Server-Hosting
Wants=network-online.target After=network-online.target
StartLimitIntervalSec=5m StartLimitBurst=3
[Service] User=gameds Group=gameds
Restart=on-failure RestartSec=5
Environment="STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/gameds/Steam" Environment="STEAM_COMPAT_DATA_PATH=/home/gameds/enshrouded/steamapps/compatdata/2278520" WorkingDirectory=/home/gameds/enshrouded ExecStart=/home/gameds/Steam/compatibilitytools.d/GE-Proton10-14/proton run enshrouded_server.exe
[Install] WantedBy=multi-user.target EOF systemctl daemon-reload
|
这里的关键点在于,要设置 STEAM_COMPAT_CLIENT_INSTALL_PATH
和 STEAM_COMPAT_DATA_PATH
两个环境变量。
管理服务端
可以参考以下命令来管理服务端。
1 2 3 4
| systemctl start enshrouded systemctl stop enshrouded systemctl restart enshrouded systemctl status enshrouded
|
如果运行正常,命令 systemctl status enshrouded
应该会有如下类似输出。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@VM-8-10-centos ~]# systemctl status enshrouded ● enshrouded.service - Enshrouded 雾锁王国 服务器 Loaded: loaded (/etc/systemd/system/enshrouded.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2025-08-27 19:50:35 CST; 15s ago Docs: https://enshrouded.zendesk.com/hc/en-us/sections/16050842957085-Multiplayer-Server-Hosting Main PID: 2196970 (python3) Tasks: 64 (limit: 47387) Memory: 1.1G CGroup: /system.slice/enshrouded.service ├─2196970 python3 /home/gameds/Steam/compatibilitytools.d/GE-Proton10-14/proton run enshrouded_server.exe ├─2196978 c:\windows\system32\steam.exe enshrouded_server.exe ├─2196984 /home/gameds/Steam/compatibilitytools.d/GE-Proton10-14/files/bin/wineserver ├─2196988 C:\windows\system32\services.exe ├─2196992 C:\windows\system32\winedevice.exe ├─2197002 C:\windows\system32\winedevice.exe ├─2197015 C:\windows\system32\plugplay.exe ├─2197021 C:\windows\system32\svchost.exe -k LocalServiceNetworkRestricted └─2197032 enshrouded_server.exe
8月 27 19:50:35 VM-8-10-centos systemd[1]: Started Enshrouded 雾锁王国 服务器. 8月 27 19:50:36 VM-8-10-centos proton[2196984]: esync: up and running. 8月 27 19:50:36 VM-8-10-centos proton[2196984]: wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
|
大功告成
🎉 恭喜你,解锁了新技能!
再也不怕游戏服务端只有 Windows 版了喵。=ᗜωᗜ=
虽然不一定所有游戏都行得通…… qwq