介绍

有时我们想要开个某游戏的服务器,却发现只有 Windows 版的服务端,但自己系统是 Linux。
比如说 雾锁王国方舟:生存飞升 这些游戏,目前尚未支持 Linux 版服务端。

这种情况,可以尝试用 GE-Proton 来解决这个问题喵。
GE-Proton 基于 ProtonWine 开发,针对游戏做了很多优化,所以更适合用来运行游戏。

教程

雾锁王国 举例。
如果有些步骤你已经做过了,则可以跳过。

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_PATHSTEAM_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