Prejsť na obsah
Aktuálny kupón:zľava 10 %Uplatniť v objednávke

Vlastný Rust server na VPS (SteamCMD, systemd)

Inštalácia Rust Dedicated Servera na VPS s Ubuntu 24.04 alebo Debianom 13: SteamCMD, spúšťací skript, služba systemd, porty a firewall, RCON, aktualizácie a Oxide alebo Carbon.

  • expert
  • ~45 min
  • Aktualizované 9. 10. 2026

Postavíme Rust server na vlastnej VPS: stiahneme ho cez SteamCMD, pripravíme spúšťací skript, spustíme ho ako službu systemd, otvoríme porty a nastavíme správu cez RCON. Na konci je postup pre mesačné aktualizácie a inštaláciu Oxide alebo Carbonu.

Čo budete potrebovať

  • VPS u StormHostu s Ubuntu 24.04 alebo Debianom 13, ideálne 16 GB RAM a viac (pozrite Požiadavky na výkon)
  • Aspoň 30 GB voľného miesta na disku
  • Pripojenie cez SSH ako root (návod) a pre istotu otvorená konzola v prehliadači
  • Hra Rust vo vašom počítači (na test pripojenia)
  • Asi 45 minút

Rust u StormHostu

Rust servery u nás pripravujeme. Dovtedy si Rust server postavíte na VPS podľa tohto návodu. Rovnaký postup platí pre akúkoľvek linuxovú VPS.

Ako to bude fungovať#

  • Používateľ rust – server nebeží ako root. Keď ho niekto napadne (napríklad cez chybu v plugine), získa iba práva tohto používateľa.
  • SteamCMD – oficiálny nástroj Valve na sťahovanie herných serverov. Rust Dedicated Server má v Steame číslo aplikácie 258550.
  • Spúšťací skript /opt/rust/start.sh – obsahuje všetky parametre servera (porty, mapa, RCON).
  • Služba systemd rust – spustí server po štarte VPS a po páde ho znova naštartuje.
  • RCON – vzdialená konzola. Konzola linuxového servera nie je interaktívna, príkazy preto posielate cez RCON.

Štruktúra priečinkov:

CestaČo tam je
/opt/rust/steamcmdSteamCMD
/opt/rust/serverRust server (koreň servera, sem patrí aj Oxide alebo Carbon)
/opt/rust/server/server/rustSvet, hráči a konfigurácia (identita rust)
/opt/rust/start.shSpúšťací skript

Požiadavky na výkon#

  • RAM: Facepunch uvádza pre server aspoň 12 GB voľnej pamäte, mapa veľkosti 6000 potrebuje viac. Pluginy a hráči pridávajú. Preto počítajte s VPS so 16 GB RAM a viac. Odkladací priestor (swap) pomôže prežiť špičky, ale nedostatok RAM nenahradí.
  • Procesor: hlavná slučka servera vyťažuje hlavne jedno jadro. Rozhoduje výkon jedného jadra viac než ich počet.
  • Disk: Facepunch uvádza aspoň 15 GB voľného miesta, ideálne SSD alebo NVMe. Počítajte s rezervou na aktualizácie, zálohy a mapy.

Pamäť zaťaženého servera sledujte príkazom free -h.

Príprava systému#

Platí pre Ubuntu 24.04 aj Debian 13. Príkazy spúšťajte ako root.

  1. Aktualizujte zoznam balíkov a nainštalujte potrebné programy:

    bash
    apt update
    apt install -y lib32gcc-s1 curl ca-certificates unzip
    • lib32gcc-s1 – 32-⁠bitová knižnica, ktorú SteamCMD potrebuje na spustenie (SteamCMD je 32-⁠bitový program).
    • curl – sťahovanie súborov z internetu.
    • ca-certificates – certifikáty na bezpečné sťahovanie cez HTTPS.
    • unzip – rozbalenie archívu Oxide (ak ho budete používať).
  2. Vytvorte používateľa rust s domovským priečinkom /opt/rust:

    bash
    useradd --create-home --home-dir /opt/rust --shell /bin/bash rust
    • --create-home --home-dir /opt/rust – vytvorí priečinok /opt/rust, ktorý patrí používateľovi rust.
    • --shell /bin/bash – používateľ má bežný shell, aby ste sa naň mohli prepnúť. Heslo nemá, cez SSH sa pod ním prihlásiť nedá; z roota sa naň prepnete príkazom su - rust.

Inštalácia SteamCMD#

  1. Prepnite sa na používateľa rust:

    bash
    su - rust

    Výzva príkazového riadka sa zmení na rust@…. Všetky ďalšie príkazy až po kapitolu Služba systemd spúšťajte pod týmto používateľom.

  2. Vytvorte priečinok pre SteamCMD a prejdite doň:

    bash
    mkdir -p ~/steamcmd
    cd ~/steamcmd
  3. Stiahnite a rozbaľte SteamCMD:

    bash
    curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
    • curl -sqL "…" – stiahne archív z oficiálneho servera Valve; -s tichý režim (bez ukazovateľa priebehu), -q nenačíta prípadný osobný konfiguračný súbor curlu ~/.curlrc, -L nasleduje presmerovanie.
    • | tar zxvf - – stiahnutý archív rovno rozbalí do aktuálneho priečinka (z gzip, x rozbaliť, v vypisovať súbory, f - čítať zo vstupu).

    V priečinku vznikne skript steamcmd.sh.

Stiahnutie Rust servera#

Stále ako používateľ rust spustite:

bash
~/steamcmd/steamcmd.sh +force_install_dir /opt/rust/server +login anonymous +app_update 258550 validate +quit
  • ~/steamcmd/steamcmd.sh – spustí SteamCMD. Pri prvom spustení sa SteamCMD sám aktualizuje, to chvíľu trvá.
  • +force_install_dir /opt/rust/server – kam sa server nainštaluje. Uvádzajte absolútnu cestu a vždy pred +login.
  • +login anonymous – anonymné prihlásenie. Na stiahnutie servera nepotrebujete účet Steam.
  • +app_update 258550 – stiahne alebo aktualizuje aplikáciu 258550 (Rust Dedicated Server).
  • validate – skontroluje všetky súbory a poškodené alebo upravené vráti do pôvodnej podoby. Pozor: vráti aj súbory prepísané frameworkom Oxide.
  • +quit – po dokončení SteamCMD ukončí.

Sťahujú sa jednotky gigabajtov. Na konci uvidíte:

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

Testovacie vetvy

Facepunch ponúka aj testovacie verzie servera (napríklad vetvu staging). Stiahnete ich pridaním -beta staging za +app_update 258550. Pre ostrý server používajte predvolenú verejnú verziu.

Spúšťací skript#

  1. Ako používateľ rust vytvorte súbor:

    bash
    nano ~/start.sh
  2. Vložte obsah a upravte hodnoty (vysvetlenie pod blokom):

    /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 nasledujúci riadok (zmažte mriežku), keď ho nainštalujete
    # 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 zatvorte editor (Ctrl+X).

  4. Nastavte práva, aby sa skript dal spustiť a heslo v ňom čítal iba používateľ rust:

    bash
    chmod 700 ~/start.sh

Čo jednotlivé časti robia:

  • cd /opt/rust/server || exit 1 – server sa spúšťa z koreňového priečinka (Oxide si tam vytvorí priečinok oxide). Keď priečinok neexistuje, skript skončí.
  • export TERM=xterm – typ terminálu; služba systemd žiadny terminál nemá a niektoré prostredia ho podľa dokumentácie Carbonu vyžadujú.
  • export LD_LIBRARY_PATH=… – priečinky, v ktorých server hľadá svoje knižnice (koreň servera a RustDedicated_Data/Plugins/x86_64).
  • source …/environment.sh – načíta Carbon. Nechajte zakomentované, kým Carbon nenainštalujete.
  • exec ./RustDedicated – spustí server; exec zaistí, že systemd sleduje priamo proces servera.
  • Parametre servera (+server.port, +server.seed, +rcon.password …) sú podrobne vysvetlené v článku server.cfg a spúšťacie parametre.
  • -logfile /opt/rust/rust.log – výpis konzoly servera sa zapisuje do tohto súboru.

Za <SILNE_HESLO> dosaďte heslo pre RCON (bez lomených zátvoriek), iba z písmen a číslic, aspoň 24 znakov. Vygenerujete ho generátorom hesiel. Seed (12345), veľkosť mapy (3000) a počet slotov (50) zvoľte podľa seba. V skripte nechajte iba porty, RCON, identitu, mapu a počet slotov, nech nie je rovnaké nastavenie na dvoch miestach.

  1. Stále ako používateľ rust vytvorte súbor server.cfg pre názov servera, popis, tagy a ďalšie nastavenia:

    bash
    mkdir -p /opt/rust/server/server/rust/cfg
    nano /opt/rust/server/server/rust/cfg/server.cfg
    • mkdir -p … – vytvorí priečinok identity rust aj jeho podpriečinok cfg (pri prvom štarte by ho server vytvoril sám, server.cfg však nie).
    • Čo do súboru napísať, vysvetľuje článok o konfigurácii. Zatiaľ stačí jeden riadok, napríklad server.hostname "Moj Rust server".

    Priečinok aj súbor vytvárajte ako používateľ rust. Keby ich vytvoril root, server do priečinka cfg nezapíše admin účty ani bany. Oprava (ako root): chown -R rust:rust /opt/rust/server/server.

  2. Vráťte sa späť na roota:

    bash
    exit

Služba systemd#

Ako root vytvorte súbor 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
DirektívaČo robíOdporúčaná hodnotaKedy zmeniť
After= a Wants=network-online.targetServer štartuje až po nastavení siete.network-online.target–
User=, Group=Pod akým používateľom server beží.rustNikdy nie root.
WorkingDirectory=Pracovný priečinok procesu./opt/rust/serverPri inej ceste k serveru.
ExecStart=Spúšťací skript (absolútna cesta)./opt/rust/start.sh–
Restart=alwaysPo skončení procesu ho systemd spustí znova, aj keď skončil „riadne“. Vďaka tomu funguje aj príkaz restart z RCON (server sa ukončí a systemd ho znova spustí).alwayson-failure, ak nechcete reštart po ručnom ukončení cez RCON.
RestartSec=15Pauza pred reštartom.15–
WantedBy=multi-user.targetPo enable sa server spustí pri štarte VPS.multi-user.target–

Podrobnejšie vysvetlenie služieb systemd nájdete v návode Aplikácia ako služba systemd.

Službu načítajte, zapnite a spustite:

bash
systemctl daemon-reload
systemctl enable --now rust
  • systemctl daemon-reload – systemd znova načíta súbory služieb (po každej úprave rust.service).
  • systemctl enable --now rust – zapne spúšťanie po štarte VPS (enable) a službu hneď spustí (--now).

S Restart=always server zastavíte iba príkazom systemctl stop rust. Ukončenie cez RCON (quit) vedie k novému spusteniu.

Porty a firewall#

PortProtokolNa čoKomu otvoriť
28015UDPHra (pripojenie hráčov).Všetkým
28017UDPQuery – zobrazenie servera v zozname serverov.Všetkým
28082TCPRust+ (mobilná aplikácia). Musí byť aspoň 10000.Všetkým (alebo nikomu, keď Rust+ vypnete)
28016TCPRCON (vzdialená konzola).Iba vašej IP adrese

Ak používate 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 pre 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 iba z IP adresy 198.51.100.25; dosaďte svoju verejnú IP adresu.

Ak máte vo firewalle v zákazníckom účte režim Blokovať všetko okrem povoleného, pridajte tam rovnaké pravidlá (Smer Prichádzajúce, Akcia Povoliť, správny Protokol, pri RCON vyplňte Zdrojová IP / rozsah). Port musí byť povolený v oboch firewalloch.

Rust+ nepotrebujete? Nahraďte v skripte +app.port 28082 za +app.port 1- (tak Rust+ podľa Facepunchu vypnete) a port 28082 neotvárajte.

Overenie#

  1. Skontrolujte stav služby:

    bash
    systemctl status rust

    Hľadajte riadok Active: active (running).

  2. Sledujte výpis servera:

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

    Prvý štart trvá niekoľko minút (generuje sa mapa). Server je pripravený, keď sa objaví Server startup complete. Sledovanie ukončíte Ctrl+C.

  3. V hre otvorte konzolu F1 a pripojte sa:

    text
    connect 203.0.113.10:28015

    Za 203.0.113.10 dosaďte IPv4 adresu VPS zo záložky Sieť.

  4. Pár minút po štarte vyhľadajte server podľa názvu v zozname serverov (bez frameworku v záložke Community, s Oxide alebo Carbonom v Modded).

  5. Pripojte sa cez RCON (RustAdmin alebo webová konzola) na 203.0.113.10:28016 s heslom zo skriptu a pridajte sa ako vlastník – postup je v článku Admin a RCON.

Aktualizácia servera#

Veľká aktualizácia Rustu vychádza raz mesačne (zvyčajne prvý štvrtok v mesiaci), menšie opravy medzitým.

  1. Oznámte hráčom reštart a cez RCON uložte svet: server.save.

  2. Zastavte službu (ako root):

    bash
    systemctl stop rust
  3. Aktualizujte server pod používateľom 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 príkaz ako používateľ rust a vráti sa späť.
  4. Ak používate Oxide, nahrajte ho znova (aktualizácia ho prepísala) – kapitola Oxide alebo Carbon nižšie. Carbon sa aktualizuje sám pri štarte.

  5. Spustite službu:

    bash
    systemctl start rust

Aktualizáciu nedávajte do spúšťacieho skriptu, ak máte Oxide

Keby sa SteamCMD s validate spúšťal pri každom štarte, každý reštart by Oxide odstránil a server by bežal bez pluginov. Facepunch na to v návode výslovne upozorňuje. Aktualizujte ručne podľa postupu vyššie.

Mesačná aktualizácia zvyčajne znamená aj nový svet (force wipe). Postup a čo zmazať je v článku Wipe Rust servera.

Oxide alebo Carbon#

Čo je čo a ktorý zvoliť, vysvetľuje Oxide a Carbon. Inštalácia na tejto VPS (server musí byť zastavený):

Oxide

  1. Zastavte server: systemctl stop rust.

  2. Stiahnite a rozbaľte Oxide pod používateľom 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 … – stiahne posledný stabilný Oxide pre Linux do domovského priečinka používateľa rust. -f ukončí príkaz chybou, keď súbor neexistuje, -L nasleduje presmerovanie GitHubu.
    • && – ďalší príkaz sa spustí, iba keď sťahovanie uspelo.
    • unzip -o … -d /opt/rust/server – rozbalí archív do koreňa servera a prepíše pôvodné súbory hry.
  3. Spustite server: systemctl start rust.

  4. Cez RCON overte oxide.version.

Po mesačnej aktualizácii Rustu zopakujte kroky 1–⁠3 až vo chvíli, keď na GitHube (otvorí sa v novom okne) vyjde verzia Oxide novšia než aktualizácia Rustu.

Carbon

  1. Zastavte server: systemctl stop rust.

  2. Stiahnite a rozbaľte Carbon pod používateľom 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"
    • Stiahne stabilné (production) zostavenie Carbonu pre Linux a rozbalí ho (-x) z archívu komprimovaného gzipom (-z, -f súbor) do koreňa servera (-C).
  3. V súbore /opt/rust/start.sh odkomentujte riadok source /opt/rust/server/carbon/tools/environment.sh (zmažte # na začiatku).

  4. Spustite server: systemctl start rust.

  5. Cez RCON overte c.version.

Po aktualizácii Rustu stačí server spustiť, Carbon sa aktualizuje sám.

Zálohy#

Svet a hráči sú v /opt/rust/server/server/rust, pluginy a ich dáta v /opt/rust/server/oxide (alebo carbon). Zálohy VPS spravujeme my, na rýchle vrátenie jedného sveta alebo konfigurácie sa však hodí aj vlastná záloha týchto priečinkov. Pred zálohou svet uložte (server.save) alebo server zastavte. Možnosti zálohovania opisuje Zálohy na VPS.

Keď niečo nefunguje#

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

V príkaze SteamCMD chýba +login anonymous. Bez prihlásenia server stiahnuť nejde (účet Steam však nepotrebujete).

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

Chýba 32-⁠bitová knižnica. Nainštalujte ju ako root: apt install lib32gcc-s1.

SteamCMD hlási Please use force_install_dir before logon!#

Parameter +force_install_dir musí byť v príkaze pred +login. Opravte poradie podľa návodu.

Služba hneď skončí so status=203/EXEC#

systemd nemôže spustiť skript: chýba právo na spustenie (chmod 700 /opt/rust/start.sh), chýba prvý riadok #!/usr/bin/env bash, alebo má súbor konce riadkov z Windows (napísali ste ho vo Windows a nahrali). Ďalšie kódy chýb vysvetľuje Aplikácia ako služba systemd. Podrobný výpis: journalctl -u rust -n 50.

error while loading shared libraries: …#

Serveru chýba systémová knižnica, jej názov je v hláške. Skontrolujte riadok export LD_LIBRARY_PATH=… v skripte a prípadne knižnicu doinštalujte cez apt.

Server beží, ale nedá sa naň pripojiť#

  • Server ešte nedokončil štart (v logu chýba Server startup complete).
  • Port 28015/UDP nie je povolený v UFW alebo vo firewalle v zákazníckom účte. Pozor, hra používa UDP, nie TCP.
  • Pripájate sa na nesprávnu IP adresu alebo port.

Server nie je v zozname serverov#

Nie je otvorený query port (28017/UDP), alebo je rovnaký ako port hry. Server sa v zozname objaví až pár minút po štarte. Hľadajte v správnej záložke (Community, alebo Modded).

Server po čase spadne a v logu nič nie je#

Pravdepodobne došla pamäť a systém proces ukončil. Overte:

bash
journalctl -k | grep -i "out of memory"
  • journalctl -k – vypíše správy jadra systému (sem sa zapisuje aj ukončenie procesu kvôli pamäti).
  • | grep -i "out of memory" – ponechá iba riadky s týmto textom; -i nerozlišuje veľké a malé písmená.

Výpis s RustDedicated znamená nedostatok RAM. Zmenšite mapu, obmedzte pluginy, pridajte swap alebo navýšte RAM (upgrade VPS).

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

Server overuje, či je port Rust+ dostupný z internetu. Povoľte 28082/tcp v oboch firewalloch, alebo Rust+ vypnite (+app.port 1-). Facepunch upozorňuje, že port musí byť aspoň 10000 a že server musí mať prístup na companion-rust.facepunch.com.

Po aktualizácii nefungujú pluginy#

Aktualizácia s validate odstránila Oxide. Nahrajte ho znova (kapitola Oxide alebo Carbon).

Zhrnutie

  • Server beží pod používateľom rust v /opt/rust/server, sťahuje sa cez SteamCMD (aplikácia 258550).
  • Parametre sú v skripte /opt/rust/start.sh, server spúšťa služba rust (systemctl start|stop|status rust).
  • Otvorte 28015/UDP, 28017/UDP, 28082/TCP a RCON 28016/TCP iba pre svoju IP – v UFW aj vo firewalle v zákazníckom účte.
  • Príkazy posielajte cez RCON; konzola na Linuxe nie je interaktívna.
  • Aktualizácia: uložiť, zastaviť, SteamCMD s validate, znova Oxide (Carbon sám), spustiť.

Bol návod užitočný?

Platí pre

  • Ubuntu 24.04
  • Debian 13

Služby

Nahlásiť chybu v návode

Hľadanie v návodoch