Wurm Unlimited 专用服务器搭建教程

Wurm Unlimited 是一款极具深度的沙盒 MMO 游戏,脱胎于经典网页游戏 Wurm Online,由 Code Club AB 开发并于 Steam 平台发售。与大多数沙盒游戏不同,Wurm Unlimited 拥有令人叹为观止的细粒度系统:玩家可以用铲子真实改变地形高度图、挖掘矿洞、铺设道路,拥有超过 100 个可提升的技能,精密的制作链涵盖冶金、烹饪、制陶、农业、建筑等多个领域,还有复杂的政治经济体系。购买游戏后可以自由架设私有服务器,朋友们无需月费订阅即可共同探索这片广阔的中世纪大陆。由于游戏基于 Java 开发,服务端的内存配置尤为关键。


服务器配置建议

Wurm Unlimited 服务端运行在 JVM 上,地形模拟、技能计算和 AI 行为会持续占用 CPU 资源;初始地图生成时内存峰值可超过 4GB,稳定运行期间约占 3~5GB,操作系统和 JVM 开销合计需要 4 核 8GB 作为基础配置。

配置项 最低配置 推荐配置
CPU 4 核 4 核
内存 6GB 8GB
硬盘 20GB 40GB
带宽 5Mbps 10Mbps
系统 Ubuntu 22.04 LTS(64位) Ubuntu 22.04 LTS(64位)

推荐使用雨云服务器 rainyun-com 部署,注册填码 2026off 领 5 折。4 核 8GB 机型可稳定运行 Wurm Unlimited 服务端,支持 10~20 名玩家同时在线探索这片手工打造的中世纪世界,Java + 世界模拟的性能需求完全得到满足。


安装依赖

安装 Java 11+

Wurm Unlimited 服务端需要 Java 11 或更高版本:

sudo apt update && sudo apt upgrade -y

# 安装 OpenJDK 11(推荐版本)
sudo apt install -y openjdk-11-jre-headless

# 验证安装
java -version
# 预期输出:openjdk version "11.x.x" ...

# 如需 Java 17(更高性能)
# sudo apt install -y openjdk-17-jre-headless

安装 SteamCMD 依赖

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl wget ufw

# 创建专用运行用户
sudo useradd -m -s /bin/bash steam
sudo mkdir -p /home/steam/servers
sudo chown steam:steam /home/steam/servers

安装 SteamCMD:

sudo su - steam
mkdir ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
./steamcmd.sh +quit

下载服务端

Wurm Unlimited 的服务端通过 SteamCMD 下载(App ID:366220)。注意:你需要拥有这款游戏的 Steam 账号才能下载(不支持 anonymous 匿名登录):

sudo su - steam
cd ~/steamcmd

# 使用你的 Steam 账号登录下载(替换 your_steam_username)
./steamcmd.sh \
  +force_install_dir /home/steam/servers/wurm-unlimited \
  +login your_steam_username \
  +app_update 366220 validate \
  +quit

下载完成后(约 2~4GB)确认关键文件:

ls /home/steam/servers/wurm-unlimited/
# 应包含:server.jar  WurmServer.bat  lib/  nativelib/  等文件

ls /home/steam/servers/wurm-unlimited/server.jar

配置文件

server.properties

Wurm Unlimited 的主配置文件,控制服务器基本属性:

nano /home/steam/servers/wurm-unlimited/server.properties

配置内容示例:

# 服务器名称(在服务器列表中显示)
servername=我的 Wurm Unlimited 服务器

# 服务器描述
serverdescription=欢迎探索我们的中世纪大陆!

# 最大玩家数
maxplayers=20

# 服务器连接密码(留空为公开服务器)
serverpassword=

# 是否公开显示在服务器列表(true/false)
advertise=true

# GM 管理员密码(游戏内 GM 命令需要)
gmpassword=your_gm_password_here

# 是否是 Epic 模式(Epic 模式与标准模式存档不互通)
Epic=false

# 是否开启 PvP
PvP=false

# 游戏端口(TCP)
gameport=3724

# Steam 查询端口
queryport=27015

# RMI 内部管理端口
rmiport=7220
rmiregistryport=7221

# 世界地图大小(512/1024/2048/4096,单位:格)
mapsize=1024

# 默认生成点坐标(中心点)
spawnx=512
spawny=512

# 最高技能上限(100 = 标准,无上限设置为 0)
skillgainrate=1.0

# 是否开启夜间(false = 永昼)
nightvisualeffects=true

世界设置(地图生成参数)

首次启动前,可通过命令行参数控制地图生成:

# 世界类型参数(在启动命令中附加)
# --map-size 1024    地图大小(512/1024/2048)
# --no-map-gen       跳过地图生成(使用已有地图)

启动服务

创建启动脚本:

nano /home/steam/servers/wurm-unlimited/start.sh
#!/bin/bash

SERVER_DIR="/home/steam/servers/wurm-unlimited"
LOG_DIR="$SERVER_DIR/logs"
mkdir -p "$LOG_DIR"

cd "$SERVER_DIR"

# JVM 参数:
# -Xms1g  初始堆内存 1GB
# -Xmx4g  最大堆内存 4GB(根据机器内存调整,建议不超过总内存的 60%)
java \
  -Xms1g \
  -Xmx4g \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=200 \
  -XX:+ParallelRefProcEnabled \
  -Djava.awt.headless=true \
  -jar server.jar \
  2>&1 | tee "$LOG_DIR/server-$(date +%Y%m%d-%H%M%S).log"
chmod +x /home/steam/servers/wurm-unlimited/start.sh

测试启动(首次启动会生成地图,耐心等待 5~10 分钟):

sudo su - steam
/home/steam/servers/wurm-unlimited/start.sh

配置 systemd 服务

exit  # 退出 steam 用户

sudo nano /etc/systemd/system/wurm-unlimited.service
[Unit]
Description=Wurm Unlimited Dedicated Server
After=network.target
Wants=network-online.target

[Service]
Type=simple
User=steam
Group=steam
WorkingDirectory=/home/steam/servers/wurm-unlimited

ExecStart=/usr/bin/java \
    -Xms1g \
    -Xmx4g \
    -XX:+UseG1GC \
    -XX:MaxGCPauseMillis=200 \
    -XX:+ParallelRefProcEnabled \
    -Djava.awt.headless=true \
    -jar /home/steam/servers/wurm-unlimited/server.jar

# 首次地图生成较慢,超时时间设长
TimeoutStartSec=600

# 崩溃后 30 秒重启(Java 服务器重启较慢)
Restart=on-failure
RestartSec=30

StandardOutput=journal
StandardError=journal
SyslogIdentifier=wurm-unlimited

# 内存限制
MemoryMax=6G

[Install]
WantedBy=multi-user.target

启用并启动:

sudo systemctl daemon-reload
sudo systemctl enable wurm-unlimited
sudo systemctl start wurm-unlimited

# 检查状态(首次启动需要等待地图生成)
sudo systemctl status wurm-unlimited

# 实时查看日志(首次启动请耐心等待)
sudo journalctl -u wurm-unlimited -f

防火墙配置

Wurm Unlimited 使用 3724 TCP(游戏通信)和 27015 TCP(Steam):

# 允许 SSH
sudo ufw allow ssh

# 开放游戏主端口(TCP)
sudo ufw allow 3724/tcp comment "Wurm Unlimited Game Port"

# 开放 Steam 查询端口
sudo ufw allow 27015/tcp comment "Wurm Unlimited Steam"

# 如果使用 RMI 管理(同局域网内管理)
# sudo ufw allow 7220/tcp comment "Wurm RMI"
# sudo ufw allow 7221/tcp comment "Wurm RMI Registry"

# 启用防火墙
sudo ufw enable

# 查看规则
sudo ufw status verbose

预期输出:

Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
3724/tcp                   ALLOW IN    Anywhere
27015/tcp                  ALLOW IN    Anywhere

管理命令

客户端连接步骤

  1. 在 Steam 上启动 Wurm Unlimited 客户端
  2. 主菜单选择 Multiple PlayersJoin Server
  3. 点击 Direct Join,输入服务器 IP 和端口 3724
  4. 创建角色后开始游戏

GM 管理员操作

在游戏内聊天框或 GM 控制台使用以下命令:

命令 说明
#GM <密码> 激活 GM 权限
#kick <玩家名> 踢出玩家
#ban <玩家名> <时长> 封禁玩家
#tele <x> <y> 传送到坐标
#giveskill <技能> <值> 设置技能等级
#sethealth <值> 设置生命值
#time 显示游戏内时间
#save 强制保存游戏数据

世界设置与调整

通过修改 server.properties 可以调整多项游戏参数,修改后重启服务生效:

# 常见调整项
# skillgainrate=3.0    技能提升速度(默认 1.0,调高可加速成长)
# combatrating=1.0     战斗评级倍率
# actiontimer=2.0      动作计时器倍率(越小动作越快)

数据备份

# Wurm 数据目录(地图、玩家数据、技能)
ls /home/steam/servers/wurm-unlimited/

# 备份脚本(停服后执行保证数据一致性)
sudo systemctl stop wurm-unlimited
tar -czf /home/steam/backups/wurm-$(date +%Y%m%d-%H%M%S).tar.gz \
  /home/steam/servers/wurm-unlimited/sqlite/
sudo systemctl start wurm-unlimited

# 定时备份(每天凌晨 3 点)
(crontab -l 2>/dev/null; echo "0 3 * * * tar -czf /home/steam/backups/wurm-\$(date +\%Y\%m\%d).tar.gz /home/steam/servers/wurm-unlimited/sqlite/") | sudo crontab -u steam -

服务端更新

sudo systemctl stop wurm-unlimited

sudo -u steam /home/steam/steamcmd/steamcmd.sh \
  +force_install_dir /home/steam/servers/wurm-unlimited \
  +login your_steam_username \
  +app_update 366220 validate \
  +quit

sudo systemctl start wurm-unlimited

总结

Wurm Unlimited 是迄今为止深度最高的沙盒 MMO 之一,其极度细粒度的世界模拟和技能系统对服务器提出了明确的 Java 内存需求。4 核 8GB 机型是流畅运行的基本保障,通过合理配置 JVM 堆内存(-Xms1g -Xmx4g)和 G1GC 垃圾回收器,可以有效控制延迟抖动。定期备份 SQLite 数据库是长期运营的核心习惯,千万不要忽视。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐