> How to Set Up a Rust Dedicated Server in 2026

Complete guide to hosting your own Rust server. Learn SteamCMD installation, server configuration, RCON setup, and performance optimization.

Intermediate
1 hour

How to Set Up a Rust Dedicated Server in 2026

Rust dedicated servers let you create and control your own survival experience. This guide walks through every step from installing SteamCMD to optimizing performance for hundreds of players.

Why Host Your Own Rust Server?

  • >Full control over wipe schedules, gather rates, and server rules
  • >Plugin support via Oxide/uMod for unlimited customization
  • >Custom maps with unique monuments and terrain
  • >No queue times for your community
  • >Admin tools to manage players and combat cheaters
---

What You'll Need

System Requirements

ComponentMinimumRecommended
CPU4 cores, 3.0 GHz6+ cores, 3.5 GHz+
RAM8 GB16-32 GB
Storage30 GB SSD50-100 GB NVMe SSD
Bandwidth10 Mbps upload50+ Mbps upload
OSWindows 10/11 or LinuxUbuntu 22.04 LTS / Windows Server

Player Scaling Guide

PlayersCPURAMBandwidthMap Size
10-504 cores8 GB10 Mbps3000-3500
50-1506 cores16 GB25 Mbps3500-4000
150-3008 cores32 GB50 Mbps4000-4500
300+8+ cores64 GB100+ Mbps4500+
Note: Rust's main server loop is single-threaded, so high single-core clock speed matters more than core count. SSD storage is mandatory -- spinning disks cause unacceptable lag during world saves.

---

Step 1: Install SteamCMD

Windows

  • 1.Create a folder C:\steamcmd
  • 2.Download SteamCMD for Windows
  • 3.Extract and run steamcmd.exe -- it updates itself on first launch
  • Linux (Ubuntu/Debian)

    Bash
    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt install lib32gcc-s1 lib32stdc++6 steamcmd -y
    

    Or install manually under a dedicated user:

    Bash
    sudo useradd -m -s /bin/bash rustserver && sudo su - rustserver
    mkdir -p ~/steamcmd && cd ~/steamcmd
    curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
    ./steamcmd.sh +quit
    

    ---

    Step 2: Download Rust Dedicated Server

    The Rust dedicated server is free to download via SteamCMD. Its Steam App ID is 258550.

    Windows Download

    Create update_rust.txt in your SteamCMD folder:

    @ShutdownOnFailedCommand 1
    @NoPromptForPassword 1
    force_install_dir C:\rust_server
    login anonymous
    app_update 258550 validate
    quit
    

    Run the script:

    Bash
    C:\steamcmd\steamcmd.exe +runscript C:\steamcmd\update_rust.txt
    

    Linux Download

    Create update_rust.txt:

    @ShutdownOnFailedCommand 1
    @NoPromptForPassword 1
    force_install_dir /home/rustserver/rust_server
    login anonymous
    app_update 258550 validate
    quit
    

    Run the script:

    Bash
    ~/steamcmd/steamcmd.sh +runscript ~/steamcmd/update_rust.txt
    

    Download size: Approximately 5-8 GB. The first download may take 15-30 minutes depending on your connection speed.

    ---

    Step 3: Server Configuration

    Server Identity

    Rust uses a server.identity concept -- each identity is an isolated folder containing configuration, save data, and logs at server//. This lets you run multiple server instances from the same installation.

    Creating server.cfg

    Create the configuration file at server//cfg/server.cfg. If the folder does not exist yet, create it manually or start the server once to generate it.

    Config
    // Server Display Information
    server.hostname "My Rust Server | Vanilla | Weekly Wipes"
    server.description "Welcome to our Rust server! Rules: No cheating, be respectful."
    server.url "https://your-website.com"
    server.headerimage "https://your-website.com/banner.png"
    
    // Server Settings
    server.maxplayers 100
    server.worldsize 4000
    server.seed 12345
    server.saveinterval 300
    server.tickrate 30
    server.identity "my_server_identity"
    
    // Gameplay Settings
    server.pve false
    server.radiation true
    server.stability true
    server.itemdespawn 300
    
    // Decay Settings
    decay.scale 1.0
    decay.upkeep true
    
    // Anti-Cheat
    server.secure true
    server.eac 1
    
    // Network Settings
    server.ip 0.0.0.0
    server.port 28015
    
    // RCON Settings
    rcon.ip 0.0.0.0
    rcon.port 28016
    rcon.password "your_strong_rcon_password"
    rcon.web true
    

    Key Configuration Options

    SettingDefaultDescription
    server.hostnameRust ServerServer name shown in browser
    server.maxplayers50Maximum concurrent players
    server.worldsize4000Map size in meters (1000-6000)
    server.seedRandomMap seed for procedural generation
    server.saveinterval300Auto-save interval in seconds
    server.tickrate30Server tick rate (10-30)
    decay.scale1.0Decay multiplier (0 = disabled)
    server.pvefalseEnable PvE mode (no player damage)

    Startup Parameters

    Rust uses command-line arguments alongside server.cfg:

    ParameterDescription
    -batchmodeRun without GUI (required for headless)
    -nographicsDisable graphics rendering
    +server.port 28015Game port
    +server.identity "name"Server identity folder name
    +server.seed 12345Map seed
    +server.worldsize 4000Map size
    +server.maxplayers 100Maximum players
    +server.hostname "Name"Server name
    +rcon.port 28016RCON port
    +rcon.password "pass"RCON password
    +rcon.web trueEnable WebRCON
    Note: Command-line parameters use + for ConVars and - for engine arguments. Command-line values override server.cfg settings.

    ---

    Step 4: Starting the Server

    Windows Start Script

    Create start_rust.bat in your server directory:

    BATCH
    @echo off
    :start
    echo Starting Rust Dedicated Server...
    RustDedicated.exe -batchmode -nographics ^
      +server.port 28015 ^
      +server.identity "my_server" ^
      +server.hostname "My Rust Server" ^
      +server.maxplayers 100 ^
      +server.worldsize 4000 ^
      +server.seed 12345 ^
      +server.saveinterval 300 ^
      +rcon.port 28016 ^
      +rcon.password "your_rcon_password" ^
      +rcon.web true ^
      -logfile "output.log"
    
    echo Server crashed or stopped. Restarting in 10 seconds...
    timeout /t 10
    goto start
    

    Linux Start Script

    Create start_rust.sh in your server directory:

    Bash
    #!/bin/bash
    
    SERVER_DIR="/home/rustserver/rust_server"
    IDENTITY="my_server"
    
    cd "$SERVER_DIR"
    
    while true; do
        echo "Starting Rust Dedicated Server..."
    
        ./RustDedicated -batchmode -nographics \
            +server.port 28015 \
            +server.identity "$IDENTITY" \
            +server.hostname "My Rust Server" \
            +server.maxplayers 100 \
            +server.worldsize 4000 \
            +server.seed 12345 \
            +server.saveinterval 300 \
            +rcon.port 28016 \
            +rcon.password "your_rcon_password" \
            +rcon.web true \
            -logfile "output.log"
    
        echo "Server stopped. Restarting in 10 seconds..."
        sleep 10
    done
    

    Make the script executable:

    Bash
    chmod +x start_rust.sh
    

    First Launch

    On first launch, Rust generates the procedural map (5-15 minutes depending on map size), creates the server identity folder, and loads all entities. Watch for Server startup complete in the console.

    ---

    Step 5: RCON Setup

    RCON (Remote Console) lets you administer your server remotely. With rcon.web true, Rust uses WebSocket-based RCON. Connect using your server IP, RCON port (28016), and password with any of these tools:

  • 1.Facepunch WebRCON - Official web-based RCON client
  • 2.RustAdmin - Desktop RCON with player management and scheduling
  • 3.BattleMetrics RCON - Cloud-based RCON with player tracking and ban management
  • ---

    Step 6: Port Forwarding

    Required Ports

    PortProtocolPurpose
    28015UDPGame traffic (player connections)
    28016TCPRCON (remote administration)
    28082TCPRust+ companion app

    Setup

  • 1.Find your local IP (ipconfig on Windows, ip addr show on Linux)
  • 2.Access your router at 192.168.1.1 or 192.168.0.1
  • 3.Create forwarding rules for each port, pointing to your server's local IP
  • 4.Find your public IP at whatismyip.com and share with players
  • Players connect via the server browser, or by pressing F1 and typing client.connect YOUR_IP:28015.

    ---

    Step 7: Map Configuration

    Procedural Maps

    Rust generates maps using a seed and world size. The same combination always produces the same map.

    Map Size Guide

    World SizeBest For
    2000Small groups (10-25 players)
    3000Medium pop (25-75 players)
    4000Full pop (75-200 players)
    4500High pop (200-300 players)
    6000Very high pop (300+ players)
    Use rustmaps.com to preview seeds before committing to one.

    Custom Maps

    Custom maps are created with RustEdit and loaded via startup parameters:

    Bash
    +server.levelurl "https://your-host.com/custommap.map"
    

    Custom maps do not use server.seed or server.worldsize -- the map file defines everything.

    ---

    Wipe Schedules and Forced Wipes

    Facepunch releases a mandatory update on the first Thursday of every month, requiring a map wipe on all servers. Blueprint wipes (resetting learned crafting recipes) are optional -- most servers BP wipe monthly or bi-monthly.

    Performing a Wipe

  • 1.Stop the server
  • 2.Navigate to server//save/
  • 3.Delete save files:
  • Bash
       # Map wipe only (keeps blueprints)
       rm -f server/my_server/save/*.sav
       rm -f server/my_server/save/*.sav.*.map
    
       # Full wipe (map + blueprints)
       rm -f server/my_server/save/*.sav
       rm -f server/my_server/save/*.sav.*.map
       rm -f server/my_server/save/*.db
       
  • 4.Optionally change server.seed for a new map
  • 5.Restart the server
  • ---

    Server Admin Commands

    Use these commands via RCON or the in-game F1 console.

    Player Management

    CommandDescription
    ownerid Grant owner-level admin
    moderatorid Grant moderator admin
    ban Ban a player
    unban Unban a player
    kick Kick a player
    statusShow server status and player list

    Server Control

    CommandDescription
    server.saveForce an immediate world save
    server.writecfgSave current config to server.cfg
    server.stopGracefully shut down the server
    quitStop the server immediately

    Gameplay Commands

    CommandDescription
    env.time 12Set time to noon
    weather.fog 0Clear fog
    inventory.give Give item to yourself
    teleport Teleport to a player
    teleportpos Teleport to coordinates
    ---

    Performance Optimization

    Garbage Collection

    Rust runs on Unity and benefits from tuned GC settings to reduce lag spikes:

    Config
    gc.buffer 2048
    gc.incremental_enabled true
    gc.incremental_milliseconds 5
    

    Frame Rate and Tick Rate

    Config
    fps.limit 30
    server.tickrate 30
    
    Tick RateCPU ImpactUse Case
    10Very LowTesting only
    15LowLow-pop PvE servers
    30StandardMost servers (recommended)

    Linux-Specific Optimizations

    Bash
    # Increase file descriptor limits
    ulimit -n 65536
    
    # Set process priority
    nice -n -5 ./RustDedicated -batchmode ...
    
    # Pin to specific CPU cores
    taskset -c 0,1,2,3 ./RustDedicated -batchmode ...
    

    ---

    Auto-Update with SteamCMD

    Linux Auto-Update Script

    Bash
    #!/bin/bash
    
    SERVER_DIR="/home/rustserver/rust_server"
    STEAMCMD_DIR="/home/rustserver/steamcmd"
    
    echo "Stopping Rust server..."
    systemctl stop rust
    
    echo "Updating Rust server..."
    $STEAMCMD_DIR/steamcmd.sh +login anonymous +force_install_dir $SERVER_DIR +app_update 258550 validate +quit
    
    echo "Starting Rust server..."
    systemctl start rust
    

    Cron Job for Automatic Updates

    Bash
    # Add to crontab - update check every day at 4 AM
    0 4 * * * /home/rustserver/update_rust.sh >> /home/rustserver/update.log 2>&1
    

    ---

    Firewall Configuration

    Windows Firewall

    Bash
    netsh advfirewall firewall add rule name="Rust Server Game" dir=in action=allow protocol=UDP localport=28015
    netsh advfirewall firewall add rule name="Rust Server RCON" dir=in action=allow protocol=TCP localport=28016
    netsh advfirewall firewall add rule name="Rust+ Companion" dir=in action=allow protocol=TCP localport=28082
    

    Linux UFW

    Bash
    sudo ufw allow 28015/udp
    sudo ufw allow 28016/tcp
    sudo ufw allow 28082/tcp
    

    ---

    Systemd Service (Linux)

    Create /etc/systemd/system/rust.service:

    INI
    [Unit]
    Description=Rust Dedicated Server
    After=network.target
    
    [Service]
    Type=simple
    User=rustserver
    Group=rustserver
    WorkingDirectory=/home/rustserver/rust_server
    ExecStart=/home/rustserver/rust_server/start_rust.sh
    ExecStop=/bin/kill -SIGINT $MAINPID
    Restart=on-failure
    RestartSec=30
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
    

    Enable and manage:

    Bash
    sudo systemctl daemon-reload
    sudo systemctl enable rust
    sudo systemctl start rust
    sudo systemctl status rust
    sudo journalctl -u rust -f
    

    ---

    Troubleshooting

    EAC (Easy Anti-Cheat) Errors

    Solutions:

  • 1.Ensure server.secure true and server.eac 1 are set
  • 2.Verify the server is updated to the latest version
  • 3.Players should verify game files in Steam and restart their client
  • Players Cannot Connect

    Solutions:

  • 1.Verify port forwarding for UDP 28015
  • 2.Check firewall rules allow the game port
  • 3.Confirm the server has finished loading (Server startup complete)
  • 4.Ensure Rust client and server versions match
  • 5.Test with client.connect :28015 from the F1 console
  • Poor Server Performance

    Solutions:

  • 1.Check server FPS with the perf RCON command
  • 2.Reduce server.maxplayers or server.worldsize
  • 3.Tune garbage collection: gc.buffer 2048
  • 4.Ensure SSD storage is being used
  • 5.Monitor RAM usage -- Rust servers can consume 8-16 GB or more
  • 6.Check for misbehaving Oxide plugins
  • Server Crashes on Startup

    Solutions:

  • 1.Verify sufficient RAM (8 GB minimum) and disk space (30 GB free)
  • 2.Re-validate server files:
  • Bash
       steamcmd +login anonymous +force_install_dir /path/to/rust_server +app_update 258550 validate +quit
       
  • 3.Try a different map seed or smaller world size
  • 4.On Linux, install required libraries: sudo apt install lib32gcc-s1 lib32stdc++6 libsdl2-2.0-0
  • ---

    Quick Reference

    Default Ports

    • >Game: 28015 UDP
    • >RCON: 28016 TCP
    • >Rust+: 28082 TCP

    File Locations

    • >Server config: server//cfg/server.cfg
    • >World saves: server//save/
    • >Server logs: server//logs/
    • >Oxide plugins: oxide/plugins/ (if Oxide installed)
    • >Oxide config: oxide/config/ (if Oxide installed)
    ---

    Conclusion

    Your Rust dedicated server is now ready to host players. Remember to keep the server updated (especially on forced wipe days -- first Thursday of each month), monitor performance with RCON tools, and back up your server identity folder regularly.

    Next steps:

    • >Install Oxide/uMod for plugin support
    • >Configure BattleMetrics for advanced server monitoring
    • >Set up a Discord bot for server status and chat relay
    • >Create custom admin commands for your moderation team