Gaming Servers

Rust

Install and manage a Rust server (Facepunch) on Linux with SteamCMD. Includes automatic updates, Oxide plugins and optimizations.

Platform Support

PlatformSupportNotes
Linux✅ NativeRecommended
Windows✅ Native

Rust is one of the most resource-demanding survival games. A server with at least 8 GB of RAM and 4 CPU cores is the minimum for standard maps.

Requirements

ComponentMinimumRecommended
RAM8 GB16+ GB
CPU4 core6-8 core
Disk20 GB SSD40+ GB NVMe
OSUbuntu 22.04 / Debian 12Ubuntu 22.04
Port28015 UDP:

Preparation

Dependencies and dedicated user

# Install 32-bit dependencies for SteamCMD
dpkg --add-architecture i386
apt update
apt install -y lib32gcc-s1 curl wget screen

# Create dedicated user (never use root for gameserver)
useradd -m -s /bin/bash rustserver
su - rustserver

Install SteamCMD

mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

Rust Server Installation

# Create server directory
mkdir ~/rust_server

# Download/update server (AppID 258550)
~/steamcmd/steamcmd.sh \
  +force_install_dir ~/rust_server \
  +login anonymous \
  +app_update 258550 validate \
  +quit

Installation takes 10-20 minutes depending on network speed (~10 GB).


Configuration and Startup

Startup script

nano ~/start_rust.sh
#!/bin/bash
cd ~/rust_server

./RustDedicated \
  -batchmode \
  -nographics \
  +server.ip 0.0.0.0 \
  +server.port 28015 \
  +server.tickrate 30 \
  +server.hostname "My Rust Server" \
  +server.description "Server managed by DeluxHost" \
  +server.url "https://deluxhost.net" \
  +server.worldsize 3500 \
  +server.seed 12345 \
  +server.maxplayers 50 \
  +server.saveinterval 600 \
  +rcon.port 28016 \
  +rcon.password "CHANGE_THIS_PASSWORD" \
  +rcon.web 1 \
  2>&1 | tee ~/rust_server/logs/server.log
chmod +x ~/start_rust.sh
mkdir ~/rust_server/logs

Background startup with screen

screen -S rust ./start_rust.sh

# Detach with Ctrl+A, D
# Reattach with:
screen -r rust

Return to root user:

exit   # exit from rustserver
nano /etc/systemd/system/rust-server.service
[Unit]
Description=Rust Dedicated Server
After=network.target

[Service]
User=rustserver
Group=rustserver
WorkingDirectory=/home/rustserver/rust_server
ExecStart=/home/rustserver/start_rust.sh
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=30
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now rust-server
systemctl status rust-server

Firewall

ufw allow 28015/udp   # main server
ufw allow 28016/tcp   # RCON (only if necessary, limit to trusted IPs)

RCON Exposed

Don't expose the RCON port on the internet without protecting it. Use a firewall to limit it to your IP, or access it via SSH tunnel.


Update the Server

Rust updates every Thursday. Servers not updated are removed from official server list.

# Stop server
systemctl stop rust-server

# Update via SteamCMD (as rustserver user)
su - rustserver -c "~/steamcmd/steamcmd.sh +force_install_dir ~/rust_server +login anonymous +app_update 258550 +quit"

# Restart
systemctl start rust-server

Automatic weekly update

# Add to rustserver user's crontab
su - rustserver -c 'crontab -e'
# Every Thursday at 8:00 PM (after Facepunch update)
0 20 * * 4 systemctl stop rust-server && ~/steamcmd/steamcmd.sh +force_install_dir ~/rust_server +login anonymous +app_update 258550 +quit && systemctl start rust-server

Plugins with Oxide/uMod

Oxide is the most used plugin framework for Rust.

# Download Oxide installer
su - rustserver
cd ~/rust_server
curl -sqL https://umod.org/games/rust/download -o oxide.zip
unzip -o oxide.zip
rm oxide.zip

Plugins (.cs or .dll) go in ~/rust_server/oxide/plugins/. Reload without restart:

# Via RCON (use rcon-cli or web panel)
oxide.reload PluginName
oxide.reload *        # reload all

Useful Admin Commands

Connect via RCON with a client like rcon.io or rcon-cli:

# Give admin to a player
ownerid STEAMID64 "PlayerName" "DeluxAdmin"

# Kick/ban
kick STEAMID64 "reason"
ban STEAMID64 "reason"

# Save server manually
server.save

# See connected players
players

# Wipe map (keeps blueprints)
wipe

Performance Optimization

# Add to your startup script:
+server.tickrate 30         # default 30, reduce to 20 for less CPU
+ai.think false             # disable AI (reduced PVE)
+server.stability false     # less structural calculations
+server.pve false           # standard PVP

RAM and worldsize

With worldsize 3500 you need about 8-10 GB of RAM. To save, use worldsize 2000 (6 GB). Largest map (worldsize 6000) requires 14+ GB.


Monitor Logs

# Live logs
journalctl -u rust-server -f

# Last 100 lines
journalctl -u rust-server --lines 100 --no-pager

Tips & Tweaks

Server Performance Flags

Add to your startup script for optimization:

# FPS and tickrate settings
+server.fps 200             # 200 = buttery smooth, 60 = low CPU
+server.tickrate 30         # Higher = more responsive, more CPU
+server.description "My Server on DeluxHost"

# Performance tweaks
+ai.think false             # Disable AI thinking (save CPU)
+server.stability false     # Reduce physics calculations
+server.pve false           # Standard PVP

# Connection optimization
+net.packetlog false        # Reduce logging overhead
+net.read 256               # Network bandwidth

Common configurations:

Server TypeFPSTickrateAINotes
Small PVP20030off~4-8 players
Medium10020off20-30 players
Large6015off50+ players
No-wipe10030onPvE-focused

Wipe Schedule

Example: Monthly wipes on first Thursday at 5 PM UTC

# In startup script, add server announcement:
+server.description "Monthly wipe: First Thursday @ 5PM UTC"

Automate wipe with backup:

# Add to root crontab for 1st Thursday at 4:55 PM (before wipe)
55 16 * * 4 [ $(date +\%d) -le 07 ] && systemctl stop rust-server && \
  tar -czf /backups/rust-pre-wipe-$(date +\%Y\%m\%d).tar.gz /home/rustserver/rust_server/server/ && \
  rm -rf /home/rustserver/rust_server/server/*.sav && \
  systemctl start rust-server

RCON Web Panel

Access server console via web:

# In startup script:
+rcon.web 1
+rcon.port 28016
+rcon.password "your_secure_password"

Then browse: http://SERVER_IP:28016 (requires password)

Popular RCON clients:

  • rcon.io - Web-based
  • Rusty - Desktop
  • rcon-cli - Command-line

Useful Admin Commands (RCON)

CommandPurpose
playersList connected players with IDs
ownerid <STEAMID64> "Name" "Reason"Add admin
moderatorid <STEAMID64>Add moderator
removemoderator <STEAMID64>Remove moderator
removeowner <STEAMID64>Remove admin
kick <STEAMID64> "Reason"Kick player
ban <STEAMID64> "Reason"Ban player (persistent)
unban <STEAMID64>Remove ban
banid <STEAMID64> "Reason"Ban by ID
banlistShow all bans
server.saveManual save
quitGraceful shutdown

Oxide Plugin Commands

Manage plugins via RCON:

# Reload plugin
oxide.reload PluginName

# Reload all plugins
oxide.reload *

# Unload plugin
oxide.unload PluginName

# Load plugin
oxide.load PluginName

# Show version
oxide.version

Popular plugins:

  • Kits: free items at spawn
  • NoEscape: prevent building in caves
  • VendingSetup: vending machines
  • Duels: PvP arena plugin
  • Backpacks: portable storage

Memory and Map Size Tuning

Relationship between worldsize and RAM:

WorldsizeRecommended RAMPlayer Capacity
20006 GB20-30
35008-10 GB40-50
450012 GB60-80
600016+ GB100+
# In startup script
+server.worldsize 3500
+server.seed 12345     # For reproducibility
+server.salt 54321

Bandwidth and Network Optimization

# Server startup flags for network tuning
+net.packetlog 0
+net.read 256
+net.write 256
+server.tickrate 30    # Lower = less bandwidth
+server.fps 100        # Lower = less updates

Monitoring and Health Checks

# Server running status
systemctl status rust-server

# Memory and CPU usage
ps aux | grep RustDedicated

# Active connections
ss -tulnp | grep 28015

# Disk usage (server saves can grow)
du -h /home/rustserver/rust_server/server/

# Check for crashes in logs
journalctl -u rust-server -n 50 | grep -i "crash\|fatal"

# Last 10 messages (online players, etc.)
tail -10 ~/rust_server/logs/server.log

Troubleshooting Common Issues

Server not showing in list:

  • Update server (wipes every Thursday)
  • Check sv_setsteamaccount is set (Oxide requirement)
  • Verify firewall allows 28015 UDP

Players experiencing lag/stuttering:

  • Reduce tickrate: +server.tickrate 20
  • Reduce FPS: +server.fps 100
  • Check /worldsize (reduce map size if needed)
  • Monitor RAM: free -h

High CPU usage:

  • Disable AI: +ai.think false
  • Lower FPS: +server.fps 60
  • Reduce tickrate: +server.tickrate 15
  • Check installed plugins (some are resource-heavy)

On this page