Přejít na obsah
Aktuální kupón:sleva 10 %Uplatnit v objednávce

Vlastní Rust server na VPS (SteamCMD, systemd)

Instalace Rust Dedicated Serveru na VPS s Ubuntu 24.04 nebo Debianem 13: SteamCMD, spouštěcí skript, služba systemd, porty a firewall, RCON, aktualizace a Oxide nebo Carbon.

  • expert
  • ~45 min
  • Aktualizováno 1. 10. 2026

Postavíme Rust server na vlastní VPS: stáhneme ho přes SteamCMD, připravíme spouštěcí skript, spustíme ho jako službu systemd, otevřeme porty a nastavíme správu přes RCON. Na konci je postup pro měsíční aktualizace a instalaci Oxide nebo Carbonu.

Co budete potřebovat

  • VPS u StormHostu s Ubuntu 24.04 nebo Debianem 13, ideálně 16 GB RAM a víc (viz Požadavky na výkon)
  • Aspoň 30 GB volného místa na disku
  • Připojení přes SSH jako root (návod) a otevřená konzole v prohlížeči pro jistotu
  • Hra Rust ve vašem počítači (pro test připojení)
  • Asi 45 minut

Rust u StormHostu

Rust servery u nás připravujeme. Do té doby si Rust server postavíte na VPS podle tohoto návodu. Stejný postup platí pro jakoukoli linuxovou VPS.

Jak to bude fungovat#

  • Uživatel rust – server neběží jako root. Když ho někdo napadne (například přes chybu v pluginu), získá jen práva tohoto uživatele.
  • SteamCMD – oficiální nástroj Valve pro stahování herních serverů. Rust Dedicated Server má ve Steamu číslo aplikace 258550.
  • Spouštěcí skript /opt/rust/start.sh – obsahuje všechny parametry serveru (porty, mapa, RCON).
  • Služba systemd rust – spustí server po startu VPS a po pádu ho znovu nastartuje.
  • RCON – vzdálená konzole. Konzole linuxového serveru není interaktivní, příkazy proto posíláte přes RCON.

Struktura složek:

CestaCo tam je
/opt/rust/steamcmdSteamCMD
/opt/rust/serverRust server (kořen serveru, sem patří i Oxide nebo Carbon)
/opt/rust/server/server/rustSvět, hráči a konfigurace (identita rust)
/opt/rust/start.shSpouštěcí skript

Požadavky na výkon#

  • RAM: Facepunch uvádí pro server aspoň 12 GB volné paměti, mapa velikosti 6000 potřebuje víc. Pluginy a hráči přidávají. Proto počítejte s VPS s 16 GB RAM a víc. Odkládací prostor (swap) pomůže přežít špičky, ale nedostatek RAM nenahradí.
  • Procesor: hlavní smyčka serveru vytěžuje hlavně jedno jádro. Rozhoduje výkon jednoho jádra víc než jejich počet.
  • Disk: Facepunch uvádí aspoň 15 GB volného místa, ideálně SSD nebo NVMe. Počítejte s rezervou pro aktualizace, zálohy a mapy.

Paměť zatíženého serveru sledujte příkazem free -h.

Příprava systému#

Platí pro Ubuntu 24.04 i Debian 13. Příkazy spouštějte jako root.

  1. Aktualizujte seznam balíčků a nainstalujte potřebné programy:

    bash
    apt update
    apt install -y lib32gcc-s1 curl ca-certificates unzip
    • lib32gcc-s1 – 32bitová knihovna, kterou SteamCMD potřebuje ke spuštění (SteamCMD je 32bitový program).
    • curl – stahování souborů z internetu.
    • ca-certificates – certifikáty pro bezpečné stahování přes HTTPS.
    • unzip – rozbalení archivu Oxide (pokud ho budete používat).
  2. Vytvořte uživatele rust s domovskou složkou /opt/rust:

    bash
    useradd --create-home --home-dir /opt/rust --shell /bin/bash rust
    • --create-home --home-dir /opt/rust – vytvoří složku /opt/rust, která patří uživateli rust.
    • --shell /bin/bash – uživatel má běžný shell, abyste se na něj mohli přepnout. Heslo nemá, přes SSH se pod ním přihlásit nejde; z roota se na něj přepnete příkazem su - rust.

Instalace SteamCMD#

  1. Přepněte se na uživatele rust:

    bash
    su - rust

    Výzva příkazové řádky se změní na rust@…. Všechny další příkazy až po kapitolu Služba systemd spouštějte pod tímto uživatelem.

  2. Vytvořte složku pro SteamCMD a přejděte do ní:

    bash
    mkdir -p ~/steamcmd
    cd ~/steamcmd
  3. Stáhněte a rozbalte SteamCMD:

    bash
    curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
    • curl -sqL "…" – stáhne archiv z oficiálního serveru Valve; -s tichý režim (bez ukazatele průběhu), -q nenačte případný osobní konfigurační soubor curlu ~/.curlrc, -L následuje přesměrování.
    • | tar zxvf - – stažený archiv rovnou rozbalí do aktuální složky (z gzip, x rozbalit, v vypisovat soubory, f - číst ze vstupu).

    Ve složce vznikne skript steamcmd.sh.

Stažení Rust serveru#

Stále jako uživatel rust spusťte:

bash
~/steamcmd/steamcmd.sh +force_install_dir /opt/rust/server +login anonymous +app_update 258550 validate +quit
  • ~/steamcmd/steamcmd.sh – spustí SteamCMD. Při prvním spuštění se SteamCMD sám aktualizuje, to chvíli trvá.
  • +force_install_dir /opt/rust/server – kam se server nainstaluje. Uvádějte absolutní cestu a vždy před +login.
  • +login anonymous – anonymní přihlášení. Na stažení serveru nepotřebujete účet Steam.
  • +app_update 258550 – stáhne nebo aktualizuje aplikaci 258550 (Rust Dedicated Server).
  • validate – zkontroluje všechny soubory a poškozené nebo upravené vrátí do původní podoby. Pozor: vrátí i soubory přepsané frameworkem Oxide.
  • +quit – po dokončení SteamCMD ukončí.

Stahují se jednotky gigabajtů. Na konci uvidíte:

Výstuptext
Success! App '258550' fully installed.

Testovací větve

Facepunch nabízí i testovací verze serveru (například větev staging). Stáhnete je přidáním -beta staging za +app_update 258550. Pro ostrý server používejte výchozí veřejnou verzi.

Spouštěcí skript#

  1. Jako uživatel rust vytvořte soubor:

    bash
    nano ~/start.sh
  2. Vložte obsah a upravte hodnoty (vysvětlení pod blokem):

    /opt/rust/start.shbash
    #!/usr/bin/env bash
    cd /opt/rust/server || exit 1
    export TERM=xterm
    export LD_LIBRARY_PATH="/opt/rust/server:/opt/rust/server/RustDedicated_Data/Plugins/x86_64"
    
    # Carbon: odkomentujte následující řádek (smažte mřížku), až ho nainstalujete
    # source /opt/rust/server/carbon/tools/environment.sh
    
    exec ./RustDedicated -batchmode \
      +server.identity "rust" \
      +server.port 28015 \
      +server.queryport 28017 \
      +server.level "Procedural Map" \
      +server.seed 12345 \
      +server.worldsize 3000 \
      +server.maxplayers 50 \
      +rcon.port 28016 \
      +rcon.password "<SILNE_HESLO>" \
      +rcon.web 1 \
      +app.port 28082 \
      -logfile /opt/rust/rust.log
  3. Uložte (Ctrl+O, Enter) a zavřete editor (Ctrl+X).

  4. Nastavte práva, aby skript šel spustit a heslo v něm četl jen uživatel rust:

    bash
    chmod 700 ~/start.sh

Co jednotlivé části dělají:

  • cd /opt/rust/server || exit 1 – server se spouští z kořenové složky (Oxide si tam vytvoří složku oxide). Když složka neexistuje, skript skončí.
  • export TERM=xterm – typ terminálu; služba systemd žádný terminál nemá a některá prostředí ho podle dokumentace Carbonu vyžadují.
  • export LD_LIBRARY_PATH=… – složky, ve kterých server hledá své knihovny (kořen serveru a RustDedicated_Data/Plugins/x86_64).
  • source …/environment.sh – načte Carbon. Nechte zakomentované, dokud Carbon nenainstalujete.
  • exec ./RustDedicated – spustí server; exec zajistí, že systemd sleduje přímo proces serveru.
  • Parametry serveru (+server.port, +server.seed, +rcon.password …) jsou podrobně vysvětlené v článku server.cfg a spouštěcí parametry.
  • -logfile /opt/rust/rust.log – výpis konzole serveru se zapisuje do tohoto souboru.

Za <SILNE_HESLO> dosaďte heslo pro RCON (bez špičatých závorek), jen z písmen a číslic, aspoň 24 znaků. Vygenerujete ho generátorem hesel. Seed (12345), velikost mapy (3000) a počet slotů (50) zvolte podle sebe. Ve skriptu nechte jen porty, RCON, identitu, mapu a počet slotů, ať není stejné nastavení na dvou místech.

  1. Stále jako uživatel rust vytvořte soubor server.cfg pro název serveru, popis, tagy a další nastavení:

    bash
    mkdir -p /opt/rust/server/server/rust/cfg
    nano /opt/rust/server/server/rust/cfg/server.cfg
    • mkdir -p … – vytvoří složku identity rust i její podsložku cfg (při prvním startu by ji server vytvořil sám, server.cfg ale ne).
    • Co do souboru napsat, vysvětluje článek o konfiguraci. Stačí zatím jeden řádek, například server.hostname "Muj Rust server".

    Složku i soubor vytvářejte jako uživatel rust. Kdyby je vytvořil root, server do složky cfg nezapíše admin účty ani bany. Oprava (jako root): chown -R rust:rust /opt/rust/server/server.

  2. Vraťte se zpět na roota:

    bash
    exit

Služba systemd#

Jako root vytvořte soubor služby nano /etc/systemd/system/rust.service:

/etc/systemd/system/rust.serviceini
[Unit]
Description=Rust Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=rust
Group=rust
WorkingDirectory=/opt/rust/server
ExecStart=/opt/rust/start.sh
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target
DirektivaCo děláDoporučená hodnotaKdy změnit
After= a Wants=network-online.targetServer startuje až po nastavení sítě.network-online.target–
User=, Group=Pod jakým uživatelem server běží.rustNikdy ne root.
WorkingDirectory=Pracovní složka procesu./opt/rust/serverPři jiné cestě k serveru.
ExecStart=Spouštěcí skript (absolutní cesta)./opt/rust/start.sh–
Restart=alwaysPo skončení procesu ho systemd spustí znovu, i když skončil „řádně“. Díky tomu funguje i příkaz restart z RCON (server se ukončí a systemd ho znovu spustí).alwayson-failure, pokud nechcete restart po ručním ukončení přes RCON.
RestartSec=15Pauza před restartem.15–
WantedBy=multi-user.targetPo enable se server spustí při startu VPS.multi-user.target–

Podrobnější vysvětlení služeb systemd najdete v návodu Aplikace jako služba systemd.

Službu načtěte, zapněte a spusťte:

bash
systemctl daemon-reload
systemctl enable --now rust
  • systemctl daemon-reload – systemd znovu načte soubory služeb (po každé úpravě rust.service).
  • systemctl enable --now rust – zapne spouštění po startu VPS (enable) a službu hned spustí (--now).

S Restart=always server zastavíte jen příkazem systemctl stop rust. Ukončení přes RCON (quit) vede k novému spuštění.

Porty a firewall#

PortProtokolK čemuKomu otevřít
28015UDPHra (připojení hráčů).Všem
28017UDPQuery – zobrazení serveru v seznamu serverů.Všem
28082TCPRust+ (mobilní aplikace). Musí být aspoň 10000.Všem (nebo nikomu, když Rust+ vypnete)
28016TCPRCON (vzdálená konzole).Jen vaší IP adrese

Pokud používáte UFW:

bash
ufw allow 28015/udp
ufw allow 28017/udp
ufw allow 28082/tcp
ufw allow from 198.51.100.25 to any port 28016 proto tcp
  • ufw allow 28015/udp – povolí port hry pro UDP.
  • ufw allow 28017/udp – povolí query port.
  • ufw allow 28082/tcp – povolí Rust+.
  • ufw allow from 198.51.100.25 to any port 28016 proto tcp – RCON jen z IP adresy 198.51.100.25; dosaďte svou veřejnou IP adresu.

Pokud máte ve firewallu v zákaznické zóně režim Blokovat vše kromě povoleného, přidejte tam stejná pravidla (Směr Příchozí, Akce Povolit, správný Protokol, u RCON vyplňte Zdrojová IP / rozsah). Port musí být povolený v obou firewallech.

Rust+ nepotřebujete? Nahraďte ve skriptu +app.port 28082 za +app.port 1- (tak Rust+ podle Facepunche vypnete) a port 28082 neotevírejte.

Ověření#

  1. Zkontrolujte stav služby:

    bash
    systemctl status rust

    Hledejte řádek Active: active (running).

  2. Sledujte výpis serveru:

    bash
    tail -f /opt/rust/rust.log

    První start trvá několik minut (generuje se mapa). Server je připravený, když se objeví Server startup complete. Sledování ukončíte Ctrl+C.

  3. Ve hře otevřete konzoli F1 a připojte se:

    text
    connect 203.0.113.10:28015

    Za 203.0.113.10 dosaďte IPv4 adresu VPS ze záložky Síť.

  4. Za pár minut po startu vyhledejte server podle názvu v seznamu serverů (bez frameworku v záložce Community, s Oxide nebo Carbonem v Modded).

  5. Připojte se přes RCON (RustAdmin nebo webová konzole) na 203.0.113.10:28016 s heslem ze skriptu a přidejte se jako vlastník – postup je v článku Admin a RCON.

Aktualizace serveru#

Velká aktualizace Rustu vychází jednou měsíčně (obvykle první čtvrtek v měsíci), menší opravy mezi tím.

  1. Oznamte hráčům restart a přes RCON uložte svět: server.save.

  2. Zastavte službu (jako root):

    bash
    systemctl stop rust
  3. Aktualizujte server pod uživatelem rust:

    bash
    su - rust -c "/opt/rust/steamcmd/steamcmd.sh +force_install_dir /opt/rust/server +login anonymous +app_update 258550 validate +quit"
    • su - rust -c "…" – spustí jeden příkaz jako uživatel rust a vrátí se zpět.
  4. Pokud používáte Oxide, nahrajte ho znovu (aktualizace ho přepsala) – kapitola Oxide nebo Carbon níže. Carbon se aktualizuje sám při startu.

  5. Spusťte službu:

    bash
    systemctl start rust

Aktualizaci nedávejte do spouštěcího skriptu, pokud máte Oxide

Kdyby se SteamCMD s validate spouštěl při každém startu, každý restart by Oxide odstranil a server by běžel bez pluginů. Facepunch na to v návodu výslovně upozorňuje. Aktualizujte ručně podle postupu výše.

Měsíční aktualizace obvykle znamená i nový svět (force wipe). Postup a co smazat je v článku Wipe Rust serveru.

Oxide nebo Carbon#

Co je co a který zvolit, vysvětluje Oxide a Carbon. Instalace na této VPS (server musí být zastavený):

Oxide

  1. Zastavte server: systemctl stop rust.

  2. Stáhněte a rozbalte Oxide pod uživatelem rust:

    bash
    su - rust -c "curl -fL -o /opt/rust/oxide.zip https://github.com/OxideMod/Oxide.Rust/releases/latest/download/Oxide.Rust-linux.zip && unzip -o /opt/rust/oxide.zip -d /opt/rust/server"
    • curl -fL -o /opt/rust/oxide.zip … – stáhne poslední stabilní Oxide pro Linux do domovské složky uživatele rust. -f ukončí příkaz chybou, když soubor neexistuje, -L následuje přesměrování GitHubu.
    • && – další příkaz se spustí, jen když stažení uspělo.
    • unzip -o … -d /opt/rust/server – rozbalí archiv do kořene serveru a přepíše původní soubory hry.
  3. Spusťte server: systemctl start rust.

  4. Přes RCON ověřte oxide.version.

Po měsíční aktualizaci Rustu zopakujte kroky 1–⁠3 až ve chvíli, kdy na GitHubu (otevře se v novém okně) vyjde verze Oxide novější než aktualizace Rustu.

Carbon

  1. Zastavte server: systemctl stop rust.

  2. Stáhněte a rozbalte Carbon pod uživatelem rust:

    bash
    su - rust -c "curl -fL -o /opt/rust/carbon.tar.gz https://github.com/CarbonCommunity/Carbon/releases/download/production_build/Carbon.Linux.Release.tar.gz && tar -xzf /opt/rust/carbon.tar.gz -C /opt/rust/server"
    • Stáhne stabilní (production) sestavení Carbonu pro Linux a rozbalí ho (-x) z archivu komprimovaného gzipem (-z, -f soubor) do kořene serveru (-C).
  3. V souboru /opt/rust/start.sh odkomentujte řádek source /opt/rust/server/carbon/tools/environment.sh (smažte # na začátku).

  4. Spusťte server: systemctl start rust.

  5. Přes RCON ověřte c.version.

Po aktualizaci Rustu stačí server spustit, Carbon se aktualizuje sám.

Zálohy#

Svět a hráči jsou v /opt/rust/server/server/rust, pluginy a jejich data v /opt/rust/server/oxide (nebo carbon). Zálohy VPS spravujeme my, pro rychlé vrácení jednoho světa nebo konfigurace se ale hodí i vlastní záloha těchto složek. Před zálohou svět uložte (server.save) nebo server zastavte. Možnosti zálohování popisuje Zálohy na VPS.

Když něco nefunguje#

ERROR! Failed to install app '258550' (No subscription)#

V příkazu SteamCMD chybí +login anonymous. Bez přihlášení server stáhnout nejde (účet Steam ale nepotřebujete).

SteamCMD hlásí linux32/steamcmd: No such file or directory#

Chybí 32bitová knihovna. Nainstalujte ji jako root: apt install lib32gcc-s1.

SteamCMD hlásí Please use force_install_dir before logon!#

Parametr +force_install_dir musí být v příkazu před +login. Opravte pořadí podle návodu.

Služba hned skončí s status=203/EXEC#

systemd nemůže spustit skript: chybí právo ke spuštění (chmod 700 /opt/rust/start.sh), chybí první řádek #!/usr/bin/env bash, nebo má soubor konce řádků z Windows (napsali jste ho ve Windows a nahráli). Další kódy chyb vysvětluje Aplikace jako služba systemd. Podrobný výpis: journalctl -u rust -n 50.

error while loading shared libraries: …#

Serveru chybí systémová knihovna, její název je v hlášce. Zkontrolujte řádek export LD_LIBRARY_PATH=… ve skriptu a případně knihovnu doinstalujte přes apt.

Server běží, ale nejde se na něj připojit#

  • Server ještě nedokončil start (v logu chybí Server startup complete).
  • Port 28015/UDP není povolený v UFW nebo ve firewallu v zákaznické zóně. Pozor, hra používá UDP, ne TCP.
  • Připojujete se na špatnou IP adresu nebo port.

Server není v seznamu serverů#

Není otevřený query port (28017/UDP), nebo je stejný jako port hry. Server se v seznamu objeví až pár minut po startu. Hledejte ve správné záložce (Community, nebo Modded).

Server po čase spadne a v logu nic není#

Pravděpodobně došla paměť a systém proces ukončil. Ověřte:

bash
journalctl -k | grep -i "out of memory"
  • journalctl -k – vypíše zprávy jádra systému (sem se zapisuje i ukončení procesu kvůli paměti).
  • | grep -i "out of memory" – ponechá jen řádky s tímto textem; -i nerozlišuje velká a malá písmena.

Výpis s RustDedicated znamená nedostatek RAM. Zmenšete mapu, omezte pluginy, přidejte swap nebo navyšte RAM (upgrade VPS).

Rust+ companion server connectivity test failed! Disabling Rust+ features.#

Server ověřuje, že je port Rust+ dostupný z internetu. Povolte 28082/tcp v obou firewallech, nebo Rust+ vypněte (+app.port 1-). Facepunch upozorňuje, že port musí být aspoň 10000 a že server musí mít přístup na companion-rust.facepunch.com.

Po aktualizaci nefungují pluginy#

Aktualizace s validate odstranila Oxide. Nahrajte ho znovu (kapitola Oxide nebo Carbon).

Shrnutí

  • Server běží pod uživatelem rust v /opt/rust/server, stahuje se přes SteamCMD (aplikace 258550).
  • Parametry jsou ve skriptu /opt/rust/start.sh, server spouští služba rust (systemctl start|stop|status rust).
  • Otevřete 28015/UDP, 28017/UDP, 28082/TCP a RCON 28016/TCP jen pro svou IP – v UFW i ve firewallu v zákaznické zóně.
  • Příkazy posílejte přes RCON; konzole na Linuxu není interaktivní.
  • Aktualizace: uložit, zastavit, SteamCMD s validate, znovu Oxide (Carbon sám), spustit.

Byl návod užitečný?

Platí pro

  • Ubuntu 24.04
  • Debian 13

Služby

Nahlásit chybu v návodu

Hledání v návodech