Game Servers Intermediate Updated March 2026 · ~22 min read

Rust Dedicated Server:
Setup, Mods & Admin Guide

Provision a bare-metal box, install the Rust server via SteamCMD, configure Oxide/uMod plugins, automate wipes, and manage your community like a pro.

1. Hardware Requirements

Rust is among the most demanding game servers you can run. It simultaneously simulates physics, animals, NPCs, building decay, and a persistent open world. Underpowered hardware means lag, entity desync, and player churn.

Component Minimum Recommended
CPU 4 cores @ 2.8 GHz min 8 threads, high single-core — Ryzen 5800X3D or i9-11900K rec
RAM 12 GB min 24–32 GB for modded / 100+ players rec
Storage 40 GB HDD NVMe SSD — critical for world saves & high entity counts
Bandwidth 100 Mbps unmetered 1 Gbps for high-population servers
OS Ubuntu 22.04 LTS or Ubuntu 24.04 LTS (this guide uses Ubuntu)
RAM grows fast under load

A fresh 3 km map starts at ~2 GB RAM. After 150k entities and active raiding, expect 6–12 GB. Always leave 2–4 GB headroom for the OS.

2. Prepare the Linux Server

Connect over SSH then create a dedicated non-root user. Running a game server as root is a security risk — if the process is exploited, attackers gain full system access.

bash

# Update packages first
sudo apt update && sudo apt upgrade -y

# Create dedicated user
sudo adduser steam
sudo usermod -aG sudo steam
su - steam
                            

Install the 32-bit libraries SteamCMD requires, plus tmux to keep the server running after SSH disconnects.

bash

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 curl unzip tmux
                            

3. Install SteamCMD & Download Rust

SteamCMD is Valve's official command-line client for downloading and updating dedicated server files. Rust's Steam App ID is 258550. You can install it anonymously — no Steam account needed.

bash

mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
chmod +x steamcmd.sh
                            

Now download the Rust server files. The initial download is ~8 GB — expect a few minutes on a fast connection.

bash

./steamcmd.sh \
  +force_install_dir /home/steam/rust-server \
  +login anonymous \
  +app_update 258550 validate \
  +quit
                            
Look for "Success! App '258550' fully installed."

All server files land in /home/steam/rust-server. Re-run the same command any time to update to the latest patch.

4. Create the Startup Script

The startup script defines every server parameter — map seed, world size, RCON password, player cap — and wraps the process in a loop so it restarts automatically on crash.

bash
nano /home/steam/rust-server/start.sh

Paste the script below. Edit all lines marked with # ← edit:

bash

#!/bin/bash
# Auto-restart loop — server comes back up after crash
while true; do

  ./RustDedicated -batchmode -nographics \
    +server.ip           0.0.0.0 \
    +server.port         28015 \
    +server.queryport    28017 \
    +rcon.ip             0.0.0.0 \
    +rcon.port           28016 \
    +rcon.password       "CHANGE_ME_NOW" \       # ← edit
    +rcon.web            1 \
    +server.identity     "fitservers1" \         # ← save folder name
    +server.hostname     "FitServers | 2x | Wipes Thu" \ # ← edit
    +server.description  "Weekly wipes | Active admins" \
    +server.url          "https://fitservers.com" \
    +server.headerimage  "https://fitservers.com/banner.jpg" \
    +server.level        "Procedural Map" \
    +server.seed         87654 \                 # ← change each wipe
    +server.worldsize    3500 \                  # map metres (1000–6000)
    +server.maxplayers   75 \                    # ← edit
    +server.saveinterval 300 \                   # autosave every 5 min
    +server.globalchat   true \
    +app.port            28082                   # Rust+ companion app

  echo "Server stopped — restarting in 5 seconds..."
  sleep 5
done
                            

Launch the server in a tmux session so it survives when you disconnect from SSH:

bash

chmod +x /home/steam/rust-server/start.sh
cd /home/steam/rust-server

# Start detached tmux session
tmux new-session -d -s rust './start.sh'

# Attach to watch console output
tmux attach -t rust

# Detach without stopping: press Ctrl+B, then D
                            

5. Firewall & Port Configuration

Open only the required ports. The RCON port should never be exposed publicly — restrict it to your admin IP.

bash

# Game traffic (public)
sudo ufw allow 28015/udp
sudo ufw allow 28015/tcp
sudo ufw allow 28017/udp

# Rust+ companion app
sudo ufw allow 28082/tcp

# RCON — YOUR admin IP only
sudo ufw allow from YOUR.ADMIN.IP to any port 28016

sudo ufw enable && sudo ufw status
                            
Never open RCON port publicly

RCON gives full server control. An exposed port with a weak password lets attackers wipe your map, ban players, or crash the process.

6. Install Oxide / uMod

Oxide (officially rebranded as uMod) is the plugin framework for Rust. Drop .cs plugin files into its directory and the server loads them live. Oxide must be re-applied after every Rust update because updates overwrite its files.

bash

cd /home/steam/rust-server

# Download the latest Linux build
wget https://umod.org/games/rust/download/develop -O Oxide-Rust_Linux.zip

# Extract into server directory
unzip -o Oxide-Rust_Linux.zip

# Allow C# plugins to compile
chmod +x CSharpCompiler
                            

After restarting the server, Oxide creates its folder structure automatically:

oxide/plugins/drop .cs plugin files here
oxide/config/auto-generated plugin config JSON files
oxide/data/plugin runtime data (kits, player records)
oxide/logs/per-plugin log files for debugging
Re-apply Oxide after every Rust update

Add the wget and unzip steps to your update/wipe script so they run automatically after each app_update 258550.

7. Essential Plugins to Install

Download .cs files from umod.org/games/rust and drop them in oxide/plugins/. They hot-load instantly — no server restart needed.

Kits
Lets admins build starter kits players redeem via /kit. Essential for VIP tiers and new-player retention.
umod.org → Kits
Backpacks
Adds configurable extra inventory rows. Permission-based — great for tiered VIP packages.
umod.org → Backpacks
AdminRadar
ESP overlay for admins to see players, stashes, and entities. Must-have for anticheat enforcement.
umod.org → AdminRadar
Better Chat
Custom chat tags, coloured names, and title prefixes for VIP and staff roles. Integrates with Oxide groups.
umod.org → BetterChat
NoEscape
Blocks /home and teleports during combat or active raid blocks. Standard on most serious servers.
umod.org → NoEscape
Gather Manager
Multiply resource gather rates per resource type (2x, 3x, 5x). The go-to for modded servers.
umod.org → GatherManager

8. Oxide Permissions System

Oxide ships with two default groups: default (all players on join) and admin (auto-assigned to server owners). All permissions default to denied — you must explicitly grant each one.

Set yourself as server owner (server.cfg)

cfg

# Get your Steam64 ID at steamid.io
ownerid    76561198XXXXXXXXX  "YourName"   "owner"
moderatorid 76561198YYYYYYYYY  "ModName"   "moderator"
                            

Permission commands (run in RCON or in-game F1 console)

Command What it does
oxide.show groupsList all permission groups
oxide.group add vipCreate a new group called "vip"
oxide.group parent vip defaultMake vip inherit all default permissions
oxide.grant group default kits.useGive every player access to the kits plugin
oxide.grant group vip backpacks.useGive VIP group members the backpacks permission
oxide.usergroup add STEAMID vipAdd a specific player to the vip group
oxide.revoke group vip backpacks.useRemove a specific permission from a group
oxide.reload PluginNameHot-reload a plugin (no restart needed)
Use parent groups to avoid repetition

Set oxide.group parent vip default once, then only add the extra VIP-specific grants. Removing a player from a group instantly revokes all associated permissions.

9. RCON: Remote Admin Console

RCON lets you send commands to the server from any device without being in-game. Use RustAdmin (desktop app) or the browser-based rcon.io for the best experience.

plaintext

Host:     YOUR_SERVER_IP
Port:     28016
Password: (your rcon.password from start.sh)
                            

Essential admin commands via RCON

Command Effect
server.saveForce-save the world to disk immediately
server.writecfgWrite owner/moderator config to disk
playersList all currently connected players
kick STEAMID "reason"Kick a player with a reason message
ban STEAMID "reason"Permanently ban a player
global.teleport2me STEAMIDTeleport a player to your location
say "Restart in 5 minutes!"Broadcast a message to all players
env.time 12Set in-game time (0–24)
weather.rain 0Disable rain (0 = off, 1 = on)
server.stopGracefully stop the server process

10. Automating Wipes with Cron

Facepunch issues a mandatory forced wipe on the first Thursday of every month. Most operators also run optional weekly map wipes to keep the server fresh. There are three wipe types:

Map wipeNew world seed — blueprints kept
Blueprint wipeResets all research progress only
Full wipeMap + blueprints — used on forced Thursdays

Wipe script

bash

#!/bin/bash
IDENTITY="fitservers1"
SERVER_DIR="/home/steam/rust-server"
SAVE_DIR="$SERVER_DIR/server/$IDENTITY"
WIPE_TYPE="${1:-map}"

# 1. Warn players via tmux console
tmux send-keys -t rust "say Server wipe in 2 minutes — save your goodbyes!" ENTER
sleep 120

# 2. Gracefully stop the server
tmux send-keys -t rust "server.quit" ENTER
sleep 20

# 3. Randomise map seed
NEW_SEED=$((RANDOM * RANDOM % 2147483647))
sed -i "s/+server.seed [0-9]*/+server.seed $NEW_SEED/" $SERVER_DIR/start.sh

# 4. Delete map save files
rm -f "$SAVE_DIR"/*.sav "$SAVE_DIR"/*.map

# 5. Blueprint wipe (full wipe only)
if [ "$WIPE_TYPE" == "full" ]; then
  rm -f "$SAVE_DIR"/player.blueprints.*.db
  echo "Blueprints cleared."
fi

# 6. Update Rust + re-apply Oxide
/home/steam/steamcmd/steamcmd.sh \
  +force_install_dir $SERVER_DIR \
  +login anonymous \
  +app_update 258550 validate \
  +quit

cd $SERVER_DIR
wget -q https://umod.org/games/rust/download/develop -O Oxide-Rust_Linux.zip
unzip -o -q Oxide-Rust_Linux.zip && chmod +x CSharpCompiler

# 7. Restart server in tmux
tmux new-session -d -s rust ./start.sh
echo "Wipe done! New seed: $NEW_SEED"
                            
bash

# Schedule wipes with cron (crontab -e)

# Weekly map wipe — every Thursday at 03:00 UTC
0 3 * * 4 /home/steam/wipe.sh map >> /home/steam/wipe.log 2>&1

# Full wipe — first Thursday of each month at 03:00 UTC
0 3 1-7 * 4 /home/steam/wipe.sh full >> /home/steam/wipe.log 2>&1
                            
Announce wipes at least 2 hours in advance

Players mid-raid who get no warning leave negative reviews. Use Better Chat or a Discord bridge plugin to post wipe countdowns automatically.

11. Performance Tuning

Add these to your server.cfg to reduce CPU overhead and memory pressure on busy servers:

cfg

# Lower entity tick rate (30 is stable for most servers)
server.tickrate 30

# Speed up corpse cleanup
server.corpse_despawn 300

# GC buffer to smooth memory spike (MB)
gc.buffer 256

# Cache A2S query responses — reduces CPU from server browser spam
server.queryresponserate 20

# Auto-save interval in seconds (default 300)
server.saveinterval 300
                            
Monitor with htop & ss

Run htop to watch CPU and RAM. Use ss -tulpn | grep Rust to confirm ports are listening. High single-core usage is normal — Rust's main thread is largely single-threaded by design.

12. Common Problems & Fixes

Problem Solution
Server not in browser listWait 5–10 min after first start. Verify at rust.facepunch.com with IP:port. Check UDP 28015 and 28017 are open.
Friends can't connectConfirm UDP 28015 is open in both UFW and your provider firewall. Check for CGNAT on residential/cheap VPS IPs.
Plugin commands return "no permission"Oxide defaults to denied. Run oxide.grant group default plugin.use from RCON to grant access.
Plugins stop working after updateRust updates overwrite Oxide. Re-download and re-unzip Oxide-Rust_Linux.zip after every game update.
Server OOM-killed / crashes on loadReduce server.worldsize to 3000, lower maxplayers, or upgrade to 24 GB+ RAM.
RCON can't connectConfirm +rcon.web 1 is in your start script. Check UFW allows your admin IP on port 28016.
C# plugin compile errorsCheck oxide/logs/ for the specific error. Most are caused by a plugin built for a different Rust version.

Why Choose Fit Servers Dedicated Servers?

Tired of VPS limitations? Upgrade to Fit Servers dedicated servers for unbeatable performance:

  • High Performance Hardware: Latest AMD EPYC CPUs, NVMe SSDs, 128-512 GB DDR5 RAM – perfect for 100+ players/mods.
  • Gaming Optimized: Pre installed Ubuntu, DDoS protection up to 10 Tbps, 10 Gbps unmetered bandwidth.
  • Scalable & Affordable: Instant provisioning, no overselling starts low, scales easy.
  • Uptime Guarantee: 99.99% with redundant power/network.

Get Your Dedicated Server Now at Fit Servers – Experience the power of hardware that keeps pace with your ambition zero lag, total control.

Discover fitservers Dedicated Server Locations

fitservers servers are available around the world, providing diverse options for hosting websites. Each region offers unique advantages, making it easier to choose a location that best suits your specific hosting needs.