Dedikovaný server pro Valheim a Rust na Linuxu přes SteamCMD
Instalace SteamCMD na Ubuntu, stažení dedikovaného serveru Valheim a Rust, startovní skripty, porty, systemd služba a aktualizace serveru.
Většina Steam her s dedikovaným serverem se instaluje stejně: nástrojem SteamCMD stáhnete serverovou aplikaci podle jejího App ID a spustíte ji se správnými parametry. V tomto návodu to projdeme na dvou populárních hrách – Valheim a Rust – na Ubuntu.
Instalace SteamCMD
SteamCMD je 32bitová aplikace, proto je potřeba povolit architekturu i386. Na Ubuntu je balíček v repozitáři multiverse:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd
Během instalace je potřeba odsouhlasit licenci Steamu.
Servery nespouštějte jako root. Vytvořte samostatného uživatele:
sudo adduser --disabled-password --gecos "" steam
sudo -iu steam
Valheim
Stažení
App ID dedikovaného serveru Valheim je 896660. Server lze stáhnout anonymně:
/usr/games/steamcmd +force_install_dir /home/steam/valheim +login anonymous +app_update 896660 validate +quit
+force_install_dir musí být uvedeno před +login, jinak novější SteamCMD vypíše varování a může soubory uložit jinam.
Startovní skript
V adresáři je vzorový start_server.sh. Vytvořte si vlastní kopii, aby ji aktualizace nepřepsala:
cd /home/steam/valheim
cp start_server.sh start_muj.sh
Upravte poslední řádek:
export templdpath=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
export SteamAppId=892970
./valheim_server.x86_64 -name "Muj Valheim" -port 2456 -world "Svet1" -password "tajneheslo" -crossplay
export LD_LIBRARY_PATH=$templdpath
Pravidla, na která se často zapomíná:
- heslo musí mít alespoň 5 znaků,
- heslo nesmí být obsažené v názvu serveru,
-crossplayzapíná připojení z Xbox/Game Pass verze (přes relay služby). Bez něj se připojují jen Steam hráči.
Porty
Valheim používá UDP porty 2456–2457 (počítáno od hodnoty -port):
sudo ufw allow 2456:2457/udp
Světy se ukládají do ~/.config/unity3d/IronGate/Valheim/worlds_local/ uživatele steam. Tento adresář zálohujte.
Rust
Stažení
App ID dedikovaného serveru Rust je 258550:
/usr/games/steamcmd +force_install_dir /home/steam/rust +login anonymous +app_update 258550 validate +quit
Rust server je velký (desítky GB) a pro hladký běh chce hodně RAM – počítejte s 8 GB a víc podle velikosti mapy a počtu hráčů.
Startovní skript
Vytvořte /home/steam/rust/start.sh:
#!/bin/bash
cd /home/steam/rust
./RustDedicated -batchmode \
+server.port 28015 \
+server.level "Procedural Map" \
+server.seed 12345 \
+server.worldsize 3500 \
+server.maxplayers 50 \
+server.hostname "Muj Rust server" \
+server.identity "server1" \
+rcon.port 28016 \
+rcon.password "ZmenteToNaSilneHeslo" \
+rcon.web 1 \
+app.port 28082
server.identityurčuje složku pro data (server/server1/) – mapa, hráči, konfigurace.server.worldsize– větší mapa = víc RAM a delší generování.app.port– port pro mobilní aplikaci Rust+.
Porty
| Port | Protokol | Účel |
|---|---|---|
| 28015 | UDP | hra |
| 28016 | TCP | RCON (WebRCON) |
| 28082 | TCP | Rust+ aplikace |
RCON port neotvírejte celému internetu – povolte ho jen pro svou IP:
sudo ufw allow 28015/udp
sudo ufw allow 28082/tcp
sudo ufw allow from VASE_IP to any port 28016 proto tcp
Wipe
Rust vydává povinnou měsíční aktualizaci (forced wipe), po které starší mapy a často i data hráčů nejsou kompatibilní. Po aktualizaci obvykle stačí změnit server.seed nebo smazat soubory mapy (*.map, *.sav) ve složce identity.
Systemd služba (obecně)
Pro obě hry funguje stejný vzor. Příklad /etc/systemd/system/valheim.service:
[Unit]
Description=Valheim dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/valheim
ExecStartPre=/usr/games/steamcmd +force_install_dir /home/steam/valheim +login anonymous +app_update 896660 +quit
ExecStart=/bin/bash /home/steam/valheim/start_muj.sh
KillSignal=SIGINT
TimeoutStopSec=60
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
ExecStartPrepřed každým startem server aktualizuje – praktické, protože klienti s novější verzí se na starý server nepřipojí.KillSignal=SIGINTumožní serveru korektně uložit svět (Valheim reaguje na Ctrl+C uložením).
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
journalctl -u valheim -f
Pterodactyl jako alternativa
Pokud provozujete víc her, je pohodlnější je spravovat v panelu. Pro Valheim i Rust existují komunitní eggy, které řeší SteamCMD instalaci, porty i aktualizace (viz Eggy a nests).
Kontrola
ss -ulpn | grep 2456(Valheim) neboss -ulpn | grep 28015(Rust) – server naslouchá.- Server se objeví v seznamu ve hře, případně se připojte přímo přes IP.
- Ve Valheimu lze připojit i přes Steam: Zobrazit → Servery → Oblíbené → přidat
IP:2457(query port).