属于大家的
VPS知识分享站

Arma Reforger服务器搭建:Linux、场景、模组与网络

Arma Reforger 开服,核心不是复制一份 JSON,是把场景 ID、公网 IPv4、UDP 端口、跨平台、BattlEye、Workshop 模组和持久化数据绑成一套能验收的组合。这篇以 2026年8月3日 Bohemia 官方 Server Config、Server Hosting、Startup Parameters 和 Steam AppInfo 为基准,面向战队训练、Conflict、Game Master 或模组任务服管理员。

我核验了 App 1874900、Windows/Linux 服务端入口等信息,没有实际运行。

先确认稳定版还是Experimental

官方将Dedicated Server的稳定路线标识为App 1874900,Experimental使用独立路线。建立生产服时,客户端、服务端和模组必须处在能够相互连接的版本组合中。不要在实验分支上打开无人值守的自动更新,也不要用一个生产profile在两个分支间反复写入。

每次上线记录四个值:App ID、Build ID、场景ID、模组列表。如果需要试验Experimental,新建独立程序目录、profile、端口和备份,不覆盖稳定服。

配置怎么选

Arma Reforger的性能受场景、AI、网络视距、语音、玩家和模组共同影响。官方maxPlayers范围为1–128,这是配置允许值,不是任意VPS能稳定承载128人的证据。

作为小型战队测试起点,可先准备4核、8GB内存和SSD;中型Conflict、高AI或多模组任务从更高单核性能、16GB内存和充足下载/出站带宽开始。这些都是建立样本的起点。实际容量要看服务端FPS、单核CPU、内存高水位、玩家同步和模组更新后的回归数据。

networkViewDistanceserverMaxViewDistance与场景设计会改变网络和CPU工作量。不要为了给更高的数字就超出测试边界,也不用降视距掩盖核心性能不足。

Arma Reforger玩家通过UDP 2001连接Linux专用服并使用可选A2S和RCON的架构

安装App 1874900

官方Linux路线使用SteamCMD匿名安装:

steamcmd \
  +force_install_dir /srv/reforger/app \
  +login anonymous \
  +app_update 1874900 validate \
  +quit

不要让服务端以root运行。建立独立的reforger用户,程序目录可读执行,profile、模组下载目录和日志目录只授予必要写权限。官方资料也提到容器中大模组下载可能因临时目录无写权而失败,可用-addonTempDir指定有权限的独立临时目录。

安装与运行要分开:只在维护窗口执行app_update,更新前记录Build,更新后用预发profile启动相同场景。不要一边有玩家在线一边替换程序文件。

端口、IPv4与绑定

当前官方端口表是:

用途 默认端口 协议 是否必需
游戏公网端口 2001 UDP
A2S查询 17777 UDP 启用A2S时
RCON 19999 UDP 启用RCON时

Arma Reforger当前不支持IPv6作为这条服务器路线,因此采购前要确认实例有可路由IPv4。对单公网IP的普通VPS,bindAddresspublicAddress通常可留空让服务端按官方默认值绑定或检测。只有多网卡、NAT或端口转发时才显式设置,而且bindPortpublicPort可能不同。

老教程中常见gameHostBindAddressgameHostRegisterBindAddress等字段,当前官方配置页已使用bindAddressbindPortpublicAddresspublicPort。混用旧字段可能被忽略或引起检查错误。

RCON不是一开服就必须全网开放。先在无RCON的情况下完成进服基线,再为运维固定IP或VPN开放。官方最低规则只是密码至少3个字符且不带空格,生产应用足够长的随机密码并限制来源。

config.json最小示例

下面示例只用官方当前字段,真实密码不写入文章:

{
  "bindAddress": "",
  "bindPort": 2001,
  "publicAddress": "",
  "publicPort": 2001,
  "a2s": {
    "address": "0.0.0.0",
    "port": 17777
  },
  "game": {
    "name": "CHANGE_ME_Reforger_Server",
    "password": "",
    "passwordAdmin": "CHANGE_ME_ADMIN_PASSWORD",
    "scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf",
    "maxPlayers": 16,
    "visible": true,
    "crossPlatform": true,
    "gameProperties": {
      "networkViewDistance": 1000,
      "fastValidation": true,
      "battlEye": true
    },
    "mods": []
  }
}

官方特别提醒JSON字段大小写敏感。修改后执行:

jq empty /srv/reforger/config/config.json

这只能确认JSON语法,不能证明scenarioId存在、字段值被当前Build接受、端口已可达或客户端能进服。所以本文将它记为C级静态证据,不写成运行成功。

Arma Reforger从JSON语法、场景和模组配置到公网进服与更新回归的验收流程

场景怎么选

scenarioId是服务器载入内容的核心。官方资料提供-listScenarios用于把可用场景.conf路径写入日志。不要凭一篇旧教程的ID就直接上线,要从当前服务端Build和当前模组状态列出可用场景。

原版场景先建基线,模组场景后加。如果目标是Conflict、Game Master或自定义任务,分别记录场景ID、来源modId、版本、玩家上限和持久化规则。不在一个配置里并排多个场景并期待服务端自动轮换;每个运行实例只有一个当前场景。

模组如何配置

官方JSON使用mods数组:

"mods": [
  {
    "modId": "CHANGE_ME_MOD_ID",
    "name": "Recorded display name",
    "version": "Recorded tested version"
  }
]

生产不要一次加入全部模组。按依赖顺序分批,每批验证下载、mount、场景启动、客户端同步和一次正常重开。为模组目录和-addonTempDir保留磁盘余量,下载空间不等于最终安装大小。

模组更新会同时影响服务端与客户端。运维窗口前保存已验收的modId/version组合,更新后用一个PC和一个目标主机平台完成跨平台回归。crossPlatform=true只是服务器允许的设置,不代表每个模组都支持所有平台。

启动与日志

官方Linux示例结构为:

cd /srv/reforger/app
./ArmaReforgerServer \
  -config /srv/reforger/config/config.json \
  -profile /srv/reforger/profile \
  -maxFPS 60

-maxFPS 60是官方强烈建议的起点,避免服务端为了空载高帧率吃掉可用资源。但不要把“进程被限60FPS”与“高峰服务端始终保持60FPS”混为一谈。用-logStats或当前日志能力记录高峰样本,才能做容量决策。

启动后的最低验收不是systemctl active,而是:有效场景加载、UDP 2001实际监听、后端注册、外部列表/直连、客户端进服、玩家同步、正常结束session与重开。

fastValidation、BattlEye与RCON

官方对公网服务器的明确要求是保持fastValidation=true。本地开发时可能为排错暂时关闭,但不把调试配置直接复制到公网生产。battlEye=true也是公开服的默认安全基线,如某个模组与它冲突,先在预发处理兼容性,不靠全局关闭保护来快速上线。

RCON配置是可选的。启用时必须配置address、port和password,并对来源限制。不在JSON仓库中写真密码;使用限权文件或部署时注入,并在轮换后验证旧密码不再可用。

持久化、备份与恢复

不是每个Arma Reforger场景都以相同方式保存长期状态。首先确认目标场景的持久化设计和模组支持,然后把profile、持久化目录、config.json、模组清单和Build信息作为一个备份单元。

备份前使用正常session结束/停服方法,避免正在写入时拷贝不一致文件。恢复到全新目录后,不只看服务器能启动,还要进入原场景读取一个脱敏业务标记,正常结束后再次读取。

更新策略

将游戏Build、场景和模组更新拆开记录。每次变更先停止玩家写入,完成备份,在预发profile中更新,运行原版场景基线,再加模组场景。测试PC、Xbox和PlayStation时,使用真实目标平台,不因为JSON里crossPlatform=true就略过客户端验收。

回退不是单独把程序降级。模组或持久化数据可能已被新Build写入,因此应恢复更新前的程序组合、profile副本、配置和模组清单。

常见故障

JSON语法通过但服务器拒绝配置

jq empty只验证语法。继续检查字段大小写、旧gameHost...字段、值类型、scenarioId是否属于当前Build/模组以及密码规则。

内网能进,公网不能进

核对bindPortpublicPort、云安全组、主机防火墙、公网IPv4和后端注册日志。有NAT时,publicAddress/publicPort必须映射到玩家真正访问的外部地址。

启动时模组下载失败

检查modId、磁盘余量、模组目录和临时目录权限,再检查模组是否被删除、更新或限制平台。不反复以root启动来“绕过”权限错误。

CPU持续高但玩家很少

先确认是否设置-maxFPS,再看场景AI、网络视距和模组脚本。不只根据玩家数判断负载。

FAQ

Arma Reforger开服要开几个端口

最少是UDP 2001游戏端口。A2S 17777与RCON 19999只在启用对应功能时开放,RCON应限制运维来源。

可以只用IPv6吗

不可把它作为当前公网开服前提。官方当前Server Config明确说明IPv6不支持,需要可路由IPv4。

fastValidation能关吗

本地开发排错可能暂时关闭,但官方要求公网服保持true。不把调试配置带入生产。

购买前清单

选购YGCloud VPS前准备:

  1. 稳定版还是Experimental,当前Build ID;
  2. 原版或模组场景ID,主要游戏模式;
  3. PC/Xbox/PlayStation玩家占比和跨平台需求;
  4. 模组ID、版本、下载大小和平台限制;
  5. 目标玩家地区、可路由IPv4与实际线路测试;
  6. 是否开A2S/RCON,是否需要预发服和外部备份。

配置判断可参考VPS配置怎么选,地域选择参考按玩家位置与线路选节点,下单前对测试IP执行Ping、路由和丢包测试

赞(0)
未经允许不得转载:VPS知识分享站 » Arma Reforger服务器搭建:Linux、场景、模组与网络