The Arma Reforger dedicated server is free and downloads anonymously through SteamCMD (app 1874900) on Windows and Linux. Allow 20 to 40 minutes: install, config.json, opening UDP ports 2001, 17777 and 19999, then an automatic service.
Step-by-step installation
Check the machine: 64-bit, several fast cores, RAM and SSD sized for slots and mods.
Install SteamCMD, then download app 1874900 with an anonymous login.
Generate a config.json with the site's tool (bindPort 2001, a2s 17777).
Start once with -config and -maxFPS 60, then connect to 127.0.0.1.
Open 2001/UDP, 17777/UDP (and 19999/UDP if RCON is on) in the system and provider firewalls.
Add your Workshop mods to game.mods; they download at startup.
Create a systemd service (Linux) or a scheduled task (Windows) for automatic restart.
Schedule updates (app_update), profile backups and a daily restart.
Test from outside, then list the server on game-rank.com.
Requirements
The server exists for Windows and Linux (64-bit); no game licence is needed to host it (anonymous login). The sources consulted give no guaranteed minimum hardware per slot count: plan several high single-thread-speed cores, 8 to 16 GB of RAM or more with many mods, an SSD and stable upstream bandwidth. Server and clients must run the same version. An experimental branch exists (app 1890870).
Local install (Windows)
Download SteamCMD (steamcmd.exe, from Valve), then run these commands. Then put config.json in the server folder and start it; connect from the game to 127.0.0.1 (add the port if needed).
steamcmd.exe +force_install_dir C:\ArmaReforgerServer +login anonymous +app_update 1874900 validate +quit
cd /d C:\ArmaReforgerServer
ArmaReforgerServer.exe -config .\config.json -profile .\profile -maxFPS 60Install on a Linux VPS / dedicated server
On Ubuntu/Debian, create a dedicated non-root user and install SteamCMD. On Debian, first enable the “non-free” repositories. Installing steamcmd asks you to accept the Steam licence.
sudo apt update && sudo apt install -y software-properties-common
sudo add-apt-repository -y multiverse && sudo dpkg --add-architecture i386 && sudo apt update
sudo apt install -y steamcmd lib32gcc-s1 ca-certificates
sudo adduser --disabled-password --gecos "" reforgerFirst start
Download the server as the dedicated user, then start it. -maxFPS limits CPU load (uncapped, the server can saturate cores); -profile sets the folder for logs and data.
sudo -iu reforger
mkdir -p ~/server ~/steamcmd
/usr/games/steamcmd +force_install_dir ~/server +login anonymous +app_update 1874900 validate +quit
cd ~/server && mkdir -p profile
# put config.json here, then:
./ArmaReforgerServer -config ./config.json -profile ./profile -maxFPS 60Ports to open
Defaults from the Bohemia Interactive wiki; they are changed in config.json (bindPort/publicPort, a2s.port, rcon.port). The RCON port is only needed if you enable rcon.
- 2001/UDP — game
- 17777/UDP — A2S (Steam server list)
- 19999/UDP — RCON (optional)
Linux firewall (ufw)
sudo ufw allow 2001/udp
sudo ufw allow 17777/udp
sudo ufw allow 19999/udp
sudo ufw status verboseWindows firewall (netsh)
netsh advfirewall firewall add rule name="Arma Reforger 2001 UDP" dir=in action=allow protocol=UDP localport=2001
netsh advfirewall firewall add rule name="Arma Reforger 17777 UDP" dir=in action=allow protocol=UDP localport=17777
netsh advfirewall firewall add rule name="Arma Reforger 19999 UDP" dir=in action=allow protocol=UDP localport=19999Provider firewall and home router (NAT)
At OVH, Hetzner, Scaleway and similar providers, also open the same ports in the provider firewall (security group / panel firewall): it filters before the machine. For home hosting, create a NAT (port forward) rule on your router for each port to the server's local IP, with the right protocol. Test from outside (mobile network); never expose administration ports (RCON) without a strong password.
Automatic start (systemd)
Save this file as /etc/systemd/system/reforger.service, then: sudo systemctl daemon-reload && sudo systemctl enable --now reforger. Logs: journalctl -u reforger -f. On Windows, create a scheduled task “at startup” that runs ArmaReforgerServer.exe with the same parameters.
[Unit]
Description=Arma Reforger server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=reforger
WorkingDirectory=/home/reforger/server
ExecStart=/home/reforger/server/ArmaReforgerServer -config ./config.json -profile ./profile -maxFPS 60
Restart=on-failure
RestartSec=15
LimitNOFILE=100000
[Install]
WantedBy=multi-user.targetUpdates
Stop the service, rerun app_update, then restart. Client and server must be on the same version; after an update, an outdated mod can block startup until its author updates it.
sudo systemctl stop reforger
sudo -u reforger /usr/games/steamcmd +force_install_dir /home/reforger/server +login anonymous +app_update 1874900 validate +quit
sudo systemctl start reforgerBackups and scheduled restarts
Back up the profile folder (persistence saves, logs) and config.json, and schedule a daily off-peak restart with cron (here 05:00, backup at 04:55).
# crontab -e (root)
55 4 * * * tar czf /var/backups/reforger-$(date +\%F).tgz -C /home/reforger/server profile config.json
0 5 * * * systemctl restart reforgerListing and finding your server
Once the server is reachable from outside, add it on game-rank.com/jeux/arma-reforger (the owner's site) so players can discover it.
Troubleshooting
- Server won't start: invalid JSON (stray comma, wrongly cased key such as BindPort) — regenerate config.json with the tool and read the -profile logs.
- Server missing from the list: 17777/UDP closed or a2s missing from config.json, or a wrong publicAddress behind a NAT.
- Can't connect from outside but fine locally: 2001/UDP not open in the system or provider firewall or NAT forward (UDP, not TCP).
- Server uses all CPU: add -maxFPS (60 to 120) to the launch command.
- Mod rejected or version mismatch: check the GUID (16 hex characters), update server and mod, or set required to false for an optional mod.
Frequently asked questions
- Do I need to own Arma Reforger to host a server?
- No: the dedicated server (app 1874900) downloads with an anonymous SteamCMD login.
- What are the default ports?
- 2001/UDP (game), 17777/UDP (A2S) and 19999/UDP (RCON, optional).
- How do I get the scenarioId?
- Start the server with -listScenarios: it prints the available paths.
- Why cap the server FPS?
- Without -maxFPS the server runs uncapped and can occupy whole cores; 60 to 120 is enough in practice.
