OpenRA 服务器搭建:开源重制经典红色警戒和命令与征服

OpenRA 是一款完全免费的开源项目,致力于用现代引擎重制经典即时战略游戏——红色警戒(Red Alert)、命令与征服:泰伯利亚黎明(Tiberian Dawn)以及沙丘 2000(Dune 2000)。与原版游戏不同,OpenRA 原生支持 Linux,内置在线多人对战系统,玩家可以通过官方大厅列表发现和加入全球服务器,也可以搭建私有服务器供好友联机。

本教程将指导你在 Ubuntu 22.04 上搭建一台 OpenRA 专用服务器,包括安装 OpenRA、配置服务端参数、设置 systemd 守护进程和防火墙规则,并介绍如何同时托管红色警戒和命令与征服两个游戏的服务器实例。


服务器配置建议

OpenRA 服务端使用纯 C# 编写(基于 .NET/Mono),在空载时内存占用约 150–300 MB,满人对战(8 人)通常在 400 MB 以内。CPU 占用相对较低,主要消耗在地图计算和网络同步。

推荐选择 2 核 2GB 机型,可以同时跑红色警戒和命令与征服两个服务器实例,满足日常小队联机需求。

推荐使用 雨云服务器 rainyun-com,注册填码 2026off 领 5 折,价格实惠,带宽充足,适合长期托管经典 RTS 游戏服务器。

操作系统推荐 Ubuntu 22.04 LTS


安装依赖

OpenRA 依赖 .NET 运行时(现代版本已迁移到 .NET 6+),安装前先确保系统软件包是最新的。

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装常用工具
sudo apt install -y wget curl git unzip

下载并安装 OpenRA

OpenRA 提供 deb 包和 AppImage 两种安装方式。推荐使用 GitHub Releases 上的 deb 包,安装简单且便于 systemd 管理。

# 查看最新版本(访问 GitHub Releases 确认版本号)
# https://github.com/OpenRA/OpenRA/releases
# 以 release-20231010 为例

OPENRA_VERSION="release-20231010"

# 下载 deb 包
wget -O /tmp/openra.deb \
  "https://github.com/OpenRA/OpenRA/releases/download/${OPENRA_VERSION}/openra_${OPENRA_VERSION}_amd64.deb"

# 安装
sudo dpkg -i /tmp/openra.deb
sudo apt-get install -f -y  # 修复可能的依赖问题

# 验证安装
openra-ra --version
openra-cnc --version

也可以通过 apt 安装(版本可能略旧):

sudo apt install -y openra

下载服务端

OpenRA 安装完成后,服务端二进制文件通常位于 /usr/lib/openra/。你也可以单独下载服务端版本:

# 创建专用目录和用户
sudo mkdir -p /opt/openra
sudo useradd -r -s /bin/false -d /opt/openra openra
sudo chown openra:openra /opt/openra

# 确认服务端可执行文件位置
which openra-ra
# 通常输出:/usr/bin/openra-ra

配置文件

OpenRA 服务端通过命令行参数传入配置,无需配置文件。核心参数如下:

参数 说明 示例
Server.Name 服务器显示名称 "我的红警服务器"
Server.ListenPort 监听端口 1234
Server.MaxPlayers 最大玩家数 8
Server.Password 房间密码(留空为公开) ""
Server.AdvertiseOnline 是否在官方列表中显示 True
Server.Map 起始地图 Hash(可选)

启动脚本

红色警戒服务器

sudo tee /opt/openra/start-ra.sh > /dev/null << 'EOF'
#!/bin/bash
exec openra-ra \
  Server.Name="雨云红色警戒服务器" \
  Server.ListenPort=1234 \
  Server.MaxPlayers=8 \
  Server.Password="" \
  Server.AdvertiseOnline=True \
  Server.RequireAuthentication=False
EOF
sudo chmod +x /opt/openra/start-ra.sh

命令与征服:泰伯利亚黎明服务器

sudo tee /opt/openra/start-cnc.sh > /dev/null << 'EOF'
#!/bin/bash
exec openra-cnc \
  Server.Name="雨云泰伯利亚黎明服务器" \
  Server.ListenPort=1235 \
  Server.MaxPlayers=8 \
  Server.Password="" \
  Server.AdvertiseOnline=True \
  Server.RequireAuthentication=False
EOF
sudo chmod +x /opt/openra/start-cnc.sh

沙丘 2000 服务器

sudo tee /opt/openra/start-d2k.sh > /dev/null << 'EOF'
#!/bin/bash
exec openra-d2k \
  Server.Name="雨云沙丘2000服务器" \
  Server.ListenPort=1236 \
  Server.MaxPlayers=6 \
  Server.Password="" \
  Server.AdvertiseOnline=True
EOF
sudo chmod +x /opt/openra/start-d2k.sh

手动测试(前台运行):

sudo -u openra /opt/openra/start-ra.sh

看到类似 Server listening on port 1234 的输出即表示启动成功,按 Ctrl+C 停止。


systemd 服务

为红色警戒和命令与征服分别创建 systemd 服务单元:

红色警戒服务

sudo tee /etc/systemd/system/openra-ra.service > /dev/null << 'EOF'
[Unit]
Description=OpenRA Red Alert Dedicated Server
After=network.target

[Service]
Type=simple
User=openra
WorkingDirectory=/opt/openra
ExecStart=/opt/openra/start-ra.sh
Restart=on-failure
RestartSec=15
StandardOutput=journal
StandardError=journal
SyslogIdentifier=openra-ra

[Install]
WantedBy=multi-user.target
EOF

命令与征服服务

sudo tee /etc/systemd/system/openra-cnc.service > /dev/null << 'EOF'
[Unit]
Description=OpenRA Tiberian Dawn Dedicated Server
After=network.target

[Service]
Type=simple
User=openra
WorkingDirectory=/opt/openra
ExecStart=/opt/openra/start-cnc.sh
Restart=on-failure
RestartSec=15
StandardOutput=journal
StandardError=journal
SyslogIdentifier=openra-cnc

[Install]
WantedBy=multi-user.target
EOF

启动并设置开机自启:

sudo systemctl daemon-reload

# 启用并启动红色警戒服务
sudo systemctl enable --now openra-ra

# 启用并启动命令与征服服务
sudo systemctl enable --now openra-cnc

# 查看状态
sudo systemctl status openra-ra
sudo systemctl status openra-cnc

防火墙配置

OpenRA 服务端默认使用 TCP 1234 端口,每个游戏实例使用不同端口。

# 红色警戒端口
sudo ufw allow 1234/tcp

# 命令与征服端口
sudo ufw allow 1235/tcp

# 沙丘 2000 端口(如果运行)
sudo ufw allow 1236/tcp

# 如果 UFW 未启用
sudo ufw enable

# 查看规则
sudo ufw status verbose

同时在雨云控制台的安全组中放行对应端口的 TCP 入站规则。


查询服务器状态

通过日志查看连接信息

# 实时查看红色警戒服务器日志
sudo journalctl -u openra-ra -f

# 查看最近 100 行日志
sudo journalctl -u openra-ra -n 100

通过 OpenRA 客户端验证

  1. 启动 OpenRA 客户端(红色警戒)
  2. 点击「多人游戏」→「直接连接」
  3. 输入服务器 IP 和端口 1234
  4. 如果服务器配置了 AdvertiseOnline=True,它还会出现在全球服务器列表中

常用管理操作

# 重启红色警戒服务器
sudo systemctl restart openra-ra

# 停止服务器
sudo systemctl stop openra-ra

# 查看所有 openra 相关进程
ps aux | grep openra

# 查看端口监听状态
ss -tlnp | grep -E '1234|1235|1236'

结尾

通过本教程,你已成功在 Linux 上搭建了 OpenRA 专用服务器,可以同时为红色警戒、命令与征服等经典 RTS 游戏提供多人联机服务。OpenRA 完全免费,服务端轻量,非常适合长期托管。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐