想和朋友长期玩 V Rising(夜族崛起),房主开“私人游戏”通常只能解决今晚的问题:房主下线,世界也停;版本更新后谁先升级,谁就可能暂时进不去。把专用服务器放到 VPS 上,世界能持续运行,管理员、存档、更新窗口和备份也都能单独管理。
这篇以 Ubuntu 24.04 LTS、SteamCMD、Wine 和 systemd 为例,部署当前 PC 版 1.1.x 专用服务器。先把限制说在前面:Stunlock Studios 的官方专用服务器说明明确写着,目前只有 Windows 服务端。所以下面的 Linux 方案依赖 Wine 兼容层,不是官方原生 Linux 发行版。想要最省心,应选择 Windows VPS 或游戏托管面板;想控制成本、备份和运维细节,再用本文方案。
截至 2026 年 8 月,官方仓库把 PC 当前版本标为 1.1.x,默认分支就是当前服务端。SteamCMD 下载专用服务器使用 App ID 1829350,运行后则使用游戏客户端的 App ID;不要把两者混在更新命令里。
官方 1.1.x 文档当前给出的端口示例是:
| 端口 | 协议 | 用途 | 是否开放公网 |
|---|---|---|---|
| 27015 | UDP | 游戏流量 Port | 是 |
| 27016 | UDP | Steam 列表查询 QueryPort | 想显示在列表中就开放 |
| 25575 | TCP | RCON | 不直接开放,默认关闭 |
很多旧教程还在使用 9876/9877。端口本身可以改,但 ServerHostSettings.json、UFW 和云厂商安全组三处必须保持一致。本文统一使用官方当前示例的 27015/27016 UDP。
V Rising 服务端对单核性能和内存都不算宽容,Wine 还会多占一层资源。下面是购买 VPS 时更稳妥的起步值,不是官方性能保证:
| 场景 | 建议起点 | 磁盘 | 说明 |
|---|---|---|---|
| 2–4 人原版 PvE | 4 个高性能 vCPU、8GB 内存 | 50GB NVMe | 适合固定小队 |
| 5–10 人长期档 | 4–6 个高性能 vCPU、12–16GB 内存 | 80GB NVMe | 给 Wine、存档与备份留余量 |
| 10 人以上或高倍率 PvP | 6–8 个高性能核心、16GB+ 内存 | 100GB+ NVMe | 先压测再决定人数上限 |
不要只看“8 核”字样。游戏服更怕单核性能差、CPU 偷跑和磁盘延迟抖动。机房应尽量靠近主要玩家,朋友都在中国大陆时,先看游戏服务器 VPS 的配置与线路选择,再决定买美国西海岸、日本还是其他地区。
| 方案 | 优点 | 代价 | 适合谁 |
|---|---|---|---|
| Windows VPS | 与官方服务端环境一致 | 授权与内存成本通常更高 | 不想处理 Wine 兼容问题 |
| Ubuntu + Wine | 系统开销可控,脚本与备份透明 | 游戏更新后要验证 Wine 兼容性 | 熟悉 SSH 的单服管理员 |
| Pterodactyl | Web 面板、多实例、权限和配额方便 | 还要维护 Panel、Wings 与 Egg | 多游戏、多管理员 |
如果同一台机器还要开 Minecraft、Rust 或 Valheim,可以直接参考Pterodactyl 游戏服务器面板部署。只开一个 V Rising 服务器,SteamCMD + systemd 更容易看清日志、配置和存档位置。
先更新系统并安装 SteamCMD 与 Wine 运行需要的组件:
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl ca-certificates tar lib32gcc-s1 lib32stdc++6 \
wine xvfb ufw jq
command -v wine
wine --version
创建不能通过密码直接登录的服务账号和固定目录:
sudo adduser --system --group --home /home/vrising --shell /bin/bash vrising
sudo install -d -o vrising -g vrising /opt/steamcmd
sudo install -d -o vrising -g vrising /opt/vrising-server
sudo install -d -o vrising -g vrising /srv/vrising/wine
sudo install -d -o vrising -g vrising /srv/vrising/persistent/Settings
sudo install -d -o vrising -g vrising /srv/vrising/persistent/logs
sudo install -d -m 750 -o root -g vrising /var/backups/vrising
不要用 root 跑游戏。独立用户能避免 Wine 前缀、服务端文件和存档被 root 接管,也能缩小服务被利用后的权限范围。
初始化独立 Wine 前缀:
sudo -u vrising env WINEPREFIX=/srv/vrising/wine \
xvfb-run -a wineboot -u
xvfb-run 提供一个虚拟显示环境,避免无桌面 VPS 上出现 Wine 无法连接 display 的错误。Wine 第一次初始化比日常启动慢,等命令退出后再继续。
切换到服务账号,下载 Valve 提供的 Linux 版 SteamCMD:
sudo -iu vrising
cd /opt/steamcmd
curl -fsSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz \
-o steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
./steamcmd.sh +quit
SteamCMD 本身使用 Linux 版本,真正下载服务端时再强制选择 Windows 平台。这样不需要在 Wine 里再运行一套 Windows SteamCMD。
执行下面的命令:
/opt/steamcmd/steamcmd.sh \
+@sSteamCmdForcePlatformType windows \
+force_install_dir /opt/vrising-server \
+login anonymous \
+app_update 1829350 validate \
+quit
安装完成后检查关键文件和构建记录:
test -f /opt/vrising-server/VRisingServer.exe
grep -n 'buildid' /opt/vrising-server/steamapps/appmanifest_1829350.acf
du -sh /opt/vrising-server
exit
如果 app_update 提示平台不支持,先确认 @sSteamCmdForcePlatformType windows 位于登录和更新命令之前。不要改用来源不明的整合包,也不要从别人服务器复制一份旧安装目录。
官方不建议直接修改安装目录里的默认配置,因为 SteamCMD 更新可能覆盖它。把自定义文件放到 -persistentDataPath 指定目录下:
sudo -u vrising nano /srv/vrising/persistent/Settings/ServerHostSettings.json
先写一个容易验证的 PvE 配置:
{
"Name": "My V Rising 1.1 Server",
"Description": "Private PvE server on VPS",
"Port": 27015,
"QueryPort": 27016,
"MaxConnectedUsers": 10,
"MaxConnectedAdmins": 2,
"ServerFps": 30,
"LowerFPSWhenEmpty": true,
"LowerFPSWhenEmptyValue": 5,
"Password": "REPLACE_WITH_A_LONG_PLAYER_PASSWORD",
"Secure": true,
"ListOnEOS": true,
"ListOnSteam": true,
"GameSettingsPreset": "StandardPvE",
"GameDifficultyPreset": "Difficulty_Normal",
"SaveName": "world1",
"AutoSaveCount": 50,
"AutoSaveInterval": 120,
"ResetDaysInterval": 0,
"Rcon": {
"Enabled": false,
"Port": 25575,
"BindAddress": "127.0.0.1"
}
}
先校验 JSON,再启动服务:
jq empty /srv/vrising/persistent/Settings/ServerHostSettings.json
sudo chown vrising:vrising /srv/vrising/persistent/Settings/ServerHostSettings.json
sudo chmod 640 /srv/vrising/persistent/Settings/ServerHostSettings.json
玩家密码与 SSH、面板、RCON 密码不要复用。可用 openssl rand -base64 24 生成。公开服务器应保留 Secure: true;只与固定朋友玩,也建议设置玩家密码。
ServerGameSettings.json 控制资源倍率、日夜长度、城堡限制、PvP 和难度。新服先用 StandardPvE 或 StandardPvP 预设跑通,不要一开始就粘贴两年前的完整 JSON。
需要细调时,从当前安装包复制默认文件到持久化目录:
sudo -u vrising cp \
/opt/vrising-server/VRisingServer_Data/StreamingAssets/Settings/ServerGameSettings.json \
/srv/vrising/persistent/Settings/ServerGameSettings.json
sudo -u vrising nano /srv/vrising/persistent/Settings/ServerGameSettings.json
jq empty /srv/vrising/persistent/Settings/ServerGameSettings.json
每次只改少量字段,启动后看日志。若要完全使用自定义游戏规则,应确认 GameSettingsPreset 不会覆盖它;迁移旧存档时尤其不要混用新预设和旧世界配置。
先前台跑一次,Wine 缺库、JSON 错误和存档路径问题都会直接显示:
sudo -u vrising env \
WINEPREFIX=/srv/vrising/wine \
WINEDEBUG=-all \
xvfb-run -a wine /opt/vrising-server/VRisingServer.exe \
-persistentDataPath 'Z:\srv\vrising\persistent' \
-logFile 'Z:\srv\vrising\persistent\logs\VRisingServer.log'
第一次创建世界可能要几分钟。另开一个 SSH 窗口观察日志与端口:
tail -f /srv/vrising/persistent/logs/VRisingServer.log
sudo ss -lunp | grep -E ':27015|:27016'
看到服务端成功连接平台、世界加载完成并监听端口后,再用 Ctrl+C 正常停止。确认数据已经出现:
sudo -u vrising find /srv/vrising/persistent -maxdepth 4 -type f | sort | head -n 120
sudo du -sh /srv/vrising/persistent
如果 Wine 启动后立即退出,先去掉 WINEDEBUG=-all 重跑一次,别只盯着 systemd 的简短状态。
创建服务单元:
sudo nano /etc/systemd/system/vrising.service
写入:
[Unit]
Description=V Rising Dedicated Server via Wine
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=vrising
Group=vrising
WorkingDirectory=/opt/vrising-server
Environment=WINEPREFIX=/srv/vrising/wine
Environment=WINEDEBUG=-all
ExecStart=/usr/bin/xvfb-run -a /usr/bin/wine /opt/vrising-server/VRisingServer.exe -persistentDataPath Z:\\srv\\vrising\\persistent -logFile Z:\\srv\\vrising\\persistent\\logs\\VRisingServer.log
Restart=on-failure
RestartSec=20
KillSignal=SIGINT
TimeoutStopSec=180
LimitNOFILE=65535
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
加载并启动:
sudo systemctl daemon-reload
sudo systemctl enable --now vrising
sudo systemctl status vrising --no-pager
sudo journalctl -u vrising -n 200 --no-pager
tail -n 200 /srv/vrising/persistent/logs/VRisingServer.log
官方建议定期重启服务端,日常可以把重启安排在玩家最少的维护窗口。systemd 若显示 active (running),但日志没有完成世界加载,仍然不能算开服成功。
先放行当前 SSH 端口,再开启游戏端口:
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp comment 'V Rising game'
sudo ufw allow 27016/udp comment 'V Rising query'
sudo ufw enable
sudo ufw status numbered
云厂商安全组也要添加相同的 UDP 入站规则。只在 UFW 放行而忘了安全组,或者把 UDP 错写成 TCP,都是“服务在运行但外网进不来”的常见原因。可按端口、防火墙与安全组排查清单逐层检查。
RCON 使用 TCP。本文默认关闭;确实需要时,设置强密码并保持 BindAddress: 127.0.0.1,通过 SSH 隧道访问:
ssh -L 25575:127.0.0.1:25575 your-user@VPS_IP
不要执行 ufw allow 25575/tcp 把 RCON 暴露给全网。
把管理员的 Steam ID 一行一个写入持久化目录:
sudo -u vrising nano /srv/vrising/persistent/Settings/adminlist.txt
修改后不需要重启。管理员在游戏设置中启用控制台,按 ~ 打开,然后执行:
adminauth
官方当前列出的管理命令包括 kick、banuser、bancharacter、banned 和 unban。封禁操作会更新同一 Settings 目录下的 banlist.txt。Steam ID 不要写昵称,也不要写游戏角色名。
自动保存不是异地备份。官方文档明确建议经常备份,并在打补丁前备份存档。最稳妥的做法是先停服,让最后一次写盘结束,再打包持久化目录:
sudo systemctl stop vrising
sudo tar -C /srv/vrising -czf \
/var/backups/vrising/vrising-$(date +%F-%H%M%S).tar.gz \
persistent
sudo systemctl start vrising
sudo find /var/backups/vrising -type f -name 'vrising-*.tar.gz' \
-mtime +14 -delete
至少再把备份同步到另一台机器或对象存储。VPS 被误删时,同盘 /var/backups 也会一起消失。
恢复时不要覆盖正在运行的世界:
sudo systemctl stop vrising
sudo mv /srv/vrising/persistent /srv/vrising/persistent.before-restore
sudo tar -C /srv/vrising -xzf /var/backups/vrising/vrising-YYYY-MM-DD-HHMMSS.tar.gz
sudo chown -R vrising:vrising /srv/vrising/persistent
sudo systemctl start vrising
当前 1.1.x PC 存档的持久化版本目录是 Saves/v4。从本地私人世界迁移时,应复制整个对应世界目录并先保留原副本,然后让 SaveName 指向迁移后的目录名。
创建更新脚本:
sudo nano /usr/local/sbin/update-vrising
写入:
#!/usr/bin/env bash
set -euo pipefail
systemctl stop vrising
tar -C /srv/vrising -czf \
/var/backups/vrising/vrising-preupdate-$(date +%F-%H%M%S).tar.gz \
persistent
sudo -u vrising /opt/steamcmd/steamcmd.sh \
+@sSteamCmdForcePlatformType windows \
+force_install_dir /opt/vrising-server \
+login anonymous \
+app_update 1829350 validate \
+quit
systemctl start vrising
systemctl --no-pager --full status vrising
赋予权限并手动执行:
sudo chmod 750 /usr/local/sbin/update-vrising
sudo /usr/local/sbin/update-vrising
不要在玩家在线时直接更新,也不要只判断脚本退出码。更新后要确认日志完成世界加载,并让客户端实际加入一次。Wine 属于额外兼容层,游戏大版本更新后更应该保留旧服务端目录与更新前存档,出现兼容问题时才有回退空间。
确认 ListOnEOS 或 ListOnSteam 已启用,27015 和 27016 都是 UDP,UFW 与云安全组同时放行。新服务器出现在列表中可能需要几分钟,排障时先用游戏里的直接连接功能测试 VPS_IP:27015。
先在服务端执行:
sudo systemctl status vrising --no-pager
sudo ss -lunp | grep -E ':27015|:27016'
sudo ufw status numbered
tail -n 250 /srv/vrising/persistent/logs/VRisingServer.log
没有监听端口,问题在服务或配置;本机监听正常但外网超时,重点检查安全组、协议和公网 IP;能看到握手但很快断开,再查客户端与服务端版本。
服务端和所有客户端必须在兼容版本。停止服务后重新运行 app_update 1829350 validate,核对 appmanifest_1829350.acf 的 build ID,再确认客户端没有停留在旧分支。不要删除唯一存档来“修复版本”。
先运行:
jq empty /srv/vrising/persistent/Settings/ServerHostSettings.json
jq empty /srv/vrising/persistent/Settings/ServerGameSettings.json
sudo journalctl -u vrising -n 250 --no-pager
如果第二个文件还没创建,就只检查 Host 配置。JSON 里多一个逗号、引号用了中文全角字符、字段从旧版整份复制过来,都可能导致启动失败。
先看完整日志,再手动前台运行。若看到 display 或 Wine 前缀权限错误,检查 xvfb-run 是否安装、WINEPREFIX 是否属于 vrising 用户:
sudo chown -R vrising:vrising /srv/vrising/wine /srv/vrising/persistent
sudo systemctl reset-failed vrising
sudo systemctl restart vrising
通用的 Unit 文件问题可继续看systemd 服务启动失败排查。
- 服务端来自 SteamCMD App ID
1829350,不是第三方整合包。 - 已明确接受“官方仅提供 Windows 服务端,Linux 依赖 Wine”的维护成本。
ServerHostSettings.json、UFW 和安全组使用相同的 UDP 端口。- RCON 默认关闭;启用时只绑定本机并使用独立强密码。
adminlist.txt写的是 Steam ID,一行一个。- 备份包含整个持久化目录,并在另一台机器或对象存储保留副本。
- 更新前停服和备份,更新后核对日志并实际加入服务器。
小队只有 2–4 人时,4 个高性能 vCPU、8GB 内存可以作为测试起点;长期服或人数增加后,应根据 Wine 进程峰值、存档增长和实际延迟扩容。先把原版、默认倍率、端口和备份跑通,再加模组或高倍率配置,排障会省很多时间。
