Menu
 

Rust Dedicated Server Setup (Linux + SteamCMD)

Rust Dedicated Server Setup (Linux + SteamCMD)

This guide walks through standing up a Rust dedicated server on Linux with SteamCMD. Rust's dedicated server uses Steam app 258550 (separate from the Rust client app 252490) and is launched via the RustDedicated binary in batch/headless mode.

Steam Login: The Rust dedicated server install supports anonymous SteamCMD login — no Steam account required for the install itself. Players connecting still need to own Rust on their own Steam account.

Step 1: Install SteamCMD

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt install -y steamcmd

Step 2: Pull the Rust Server Build

steamcmd +force_install_dir /home/steam/rust_server +login anonymous +app_update 258550 validate +quit

Rust's dedicated-server build is updated frequently — typically alongside the monthly client patch. Re-run the SteamCMD update on every patch day before restarting the server.

Step 3: Create the steamclient.so Symlink

Like other Steam-based dedicated servers, Rust needs a steamclient.so symlink to start cleanly:

mkdir -p ~/.steam/sdk64
ln -s ~/.local/share/Steam/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

If your steamcmd is at a different path, adjust the source side of the symlink. The destination is what RustDedicated looks for.

Step 4: Launch RustDedicated

The launch command is a Linux shell script. Common production form:

#!/bin/bash
cd /home/steam/rust_server
./RustDedicated -batchmode -nographics \
+server.port 28015 \
+server.queryport 28016 \
+rcon.port 28017 \
+rcon.password "CHANGE_THIS_PASSWORD" \
+rcon.web 1 \
+server.level "Procedural Map" \
+server.seed 12345 \
+server.worldsize 3500 \
+server.maxplayers 50 \
+server.hostname "My Rust Server" \
+server.identity "myserver" \
-logfile "output.log"

Flag breakdown

FlagPurpose
-batchmode -nographicsHeadless server mode — required on a Linux box without a display
+server.port 28015UDP game port (default 28015)
+server.queryport 28016UDP query / Steam server browser
+rcon.port 28017TCP RCON port
+rcon.passwordMandatory — without it RCON is wide open or not bound
+rcon.web 1Modern web-RCON (legacy console RCON is deprecated)
+server.level "Procedural Map"Map type. "Procedural Map" generates from seed; alternatives include "Barren", "HapisIsland", "SavasIsland", or custom map URLs
+server.seedNumeric seed for procedural generation. Combined with worldsize, this fully determines the map
+server.worldsizeMap size in meters. Common values: 3000-4500. Larger maps significantly increase memory and disk usage
+server.maxplayersPlayer slot count
+server.hostnameDisplay name in browser
+server.identitySave folder name under server/ directory — keeps multiple servers on one host separate
-logfileOutput log path. Useful for diagnostics

Step 5: Open Required Ports

PortProtocolPurpose
28015UDPGame traffic
28016UDPQuery / Steam browser
28017TCPRCON

If hosting multiple Rust servers on one host, increment by 5 between instances (e.g., second server on 28020/28021/28022) so the three-port block doesn't overlap.

Step 6: First Boot Verification

  • Server takes 5-15 minutes to generate the procedural map on first boot. Subsequent boots load the saved map and start in 1-3 minutes.
  • Watch output.log for Server startup complete or equivalent ready line.
  • The server should appear in the in-game Modded / Community browser if ports are forwarded and queryport is reachable.

Step 7: Wipe Schedule (Important for Rust)

Rust's culture revolves around regular wipes (resetting the map). Most public servers wipe the map weekly or biweekly — communicate your wipe schedule clearly in the server description and the Discord. Wiping is just deleting server/myserver/save/ and restarting; players expect this.

Common Boot Failures

SymptomLikely causeFix
steamclient.so: cannot open shared object fileSymlink missingRe-do Step 3
Server boots but doesn't appear in browserQuery port not forwarded / firewall blockingOpen 28016/UDP; check provider firewall
"Map generation hung"Bad seedPick a different seed, restart
Out-of-memory during map genworldsize too large for RAMLower +server.worldsize or upgrade RAM
RCON not connecting+rcon.password empty or port not forwardedSet password; forward 28017/TCP

Mods and Plugins

Vanilla Rust supports server-side configuration but no mod loading. For modded Rust, use a community modding framework (Oxide / uMod is the most common). Modded Rust is a separate ecosystem with its own install steps; vanilla servers don't load mods at all.

Hardware Notes

Rust is CPU-bound on the server side. Single-thread performance and disk I/O matter most. NVMe storage helps significantly because of the frequent autosave writes during high player activity. Memory usage scales with server.worldsize — a 4500 map with 100+ players uses substantially more RAM than a 3000 map with 30 players. Watch your actual usage and upsize if you spike.

Related Reading

Quick Start with Supercraft

Supercraft hosts Rust dedicated servers with steamclient.so symlink, RustDedicated launch script, automatic Rust patch updates, and panel-driven access to all key cvars (worldsize, seed, maxplayers, RCON, wipe schedule). NVMe storage is standard. Wipe one click.

Rent a Rust Server

Tired of fighting this issue every patch?

Run a managed Rust server with us — we handle the patches, mod-version pinning, save backups, and DDoS protection. Set up in 3 minutes, 5 datacenter regions, no contract.

See Rust hosting plans →
Top