RE:NODE

RCON ve Valheimu: vzdálená správa bez vestavěné konzole

Text: Tým RE:NODE
12 min čtení


Vanilla Valheim nemá RCON. Dedikovaný server neotevírá port vzdálené konzole a nečte ani příkazy napsané do svého standardního vstupu - takže konzole na hostingovém panelu ukazuje log, ale nemůže spustit kick ani save. Vzdálená správa nemodovaného serveru jsou tři věci: adminské příkazy psané ve hře hráčem uvedeným v adminlist.txt, úprava tří souborů se seznamy (které server za běhu znovu čte) a ovládání samotného procesu - start, stop a restart - z panelu, SSH nebo Dockeru. Pokud potřebuješ skutečné vzdálené příkazy, mód BepInEx přidá heslem chráněný posluchač Source RCON; RCON Next je ten aktuální. Funguje, ale je to nešifrovaná zadní vrátka pro správu na portu TCP a tak se s ním musí zacházet.

Tento průvodce probírá každou možnost, co umí a co ne, a jak si vybrat.

Co dává vanilla Valheim#

Lidé, kteří přicházejí z Minecraftu nebo Rustu, čekají konzoli serveru, která přijímá příkazy, a vzdálený protokol, který dělá totéž po síti. Valheim nemá ani jedno. Co má místo toho:

NástrojKde běžíCo umí
Konzole ve hře (F5)Klient hry připojeného adminakick, ban, unban, banned, save, ping, info a několik dalších
adminlist.txtSložka s uloženými daty serveruRozhoduje, kdo smí používat adminské příkazy
bannedlist.txtSložka s uloženými daty serveruBlokuje připojení ID hráčů
permittedlist.txtSložka s uloženými daty serveruPokud není prázdný, server pustí jen povolené
Argumenty spuštěníStartovací příkazNázev, heslo, svět, modifikátory, interval ukládání
Signály procesuHostitelČisté zastavení (které ukládá), start, restart

Každá adminská akce, kterou kdy na vanilla serveru budeš potřebovat, se vejde do jednoho z těchto řádků. Omezením je, že příkazy potřebují člověka ve hře. Bez módu není způsob, jak ve tři ráno ze skriptu zadat save nebo kick.

Ten návrh má jednu výhodu: na vanilla serveru Valheim není žádná síťová služba, která by přijímala příkazy, takže není co louskat hrubou silou. Každá vzdálená možnost, kterou přidáš, otevírá něco, co bylo zavřené.

Adminská konzole ve hře#

Skutečná adminská konzole je na klientovi. Hráč, jehož ID je v adminlist.txt, ji otevře klávesou F5 - po přidání -console do voleb spuštění hry ve Steamu, což klávesu odemkne - a příkazy se spustí na serveru, ke kterému je připojen.

code
kick Ragnarban 76561198012345678unban 76561198012345678bannedsaveinfo

kick a ban přijímají jméno postavy, IP nebo ID uživatele; nejspolehlivější je ID, protože jména nejsou jedinečná. save vynutí okamžité uložení světa, což stojí za to udělat před čímkoli riskantním. Úplný seznam, včetně toho, co každý příkaz na dedikovaném serveru opravdu dělá, je v přehledu adminských příkazů konzole Valheimu.

Cheatové příkazy - devcommands, god, fly, spawn - na vanilla dedikovaném serveru nefungují ani adminům. Server Devcommands od JereKuusela je povolí, přidá vlastní příkazy jako broadcast a má řízení oprávnění, kdo co smí používat. Pořád je to nástroj ve hře: někdo musí být připojený a příkazy psát. Nastavení popisuje Server Devcommands na dedikovaném serveru.

Správa přes soubory se seznamy#

Soubory se seznamy jsou nejbližší věc ke vzdálené správě, kterou vanilla Valheim má, protože je můžeš měnit odkudkoli, kde lze upravit soubor, a server změnu za běhu zachytí.

bannedlist.txt
// Griefed the shared smelter, 2026-10-0276561198087654321// Crossplay server: platform-prefixed IDXbox_2535412345678901

Řádky začínající // jsou komentáře, což je místo, kam si zapíšeš, proč je někdo na seznamu. Co ti každý soubor dovolí udělat zvenčí hry:

  • Zabanovat někoho na dálku: přidej jeho ID do bannedlist.txt. Zablokuje to další připojení. Pokud je právě online, vyhoď ho také ve hře, nebo restartuj server - nepředpokládej, že úprava souboru odstraní hráče, který už je připojený.
  • Zamknout server pro známé hráče: vlož ID do permittedlist.txt. Jakmile soubor obsahuje jakékoli ID, připojit se mohou jen tito hráči. Vyprázdněním server znovu otevřeš.
  • Udělit nebo odebrat admina: uprav adminlist.txt. Hráč povýšený za připojení se možná musí znovu připojit, než konzole jeho příkazy přijme.

Na crossplay serveru mají ID prefix platformy (Steam_, Xbox_) a holé SteamID64, které funguje na serveru jen pro Steam, nesedí. Spolehlivý způsob, jak získat přesný tvar, je nechat hráče jednou se připojit a zkopírovat ID z logu serveru. Formáty a umístění souborů na každé platformě vysvětluje seznam adminů, banů a povolených hráčů.

Konzole panelu, SSH a systemd#

Cokoli spouští proces serveru, může ho zastavit a spustit, a to je skutečný nástroj správce: čisté zastavení uloží svět a restart použije změněné argumenty spuštění nebo nový mód.

Na panelu postaveném na Pterodactyl a Wings karta konzole živě streamuje výstup serveru a má tlačítka napájení. Můžeš do ní psát, ale vanilla Valheim to, co napíšeš, ignoruje - na serveru nic vstup nečte. To lidi poprvé překvapí a není to chyba panelu. Tlačítko stop v panelu pošle přerušení, které server potřebuje, aby se před ukončením uložil.

Na vlastním Linuxovém stroji ti SSH plus systemd dávají stejné ovládání:

bash
$ sudo systemctl stop valheim        # clean stop, world saved first$ sudo systemctl restart valheim$ journalctl -u valheim -f           # live log$ nano ~/.config/unity3d/IronGate/Valheim/bannedlist.txt

Poslední cesta je výchozí složka s uloženými daty pro server spuštěný jako ten uživatel na Linuxu; pokud server spouštíš s -savedir, soubory se seznamy jsou místo toho v té složce. Výchozí hodnoty pro každé nastavení vypisuje složka uložených dat a umístění souborů Valheimu.

Jednotka musí server zastavovat pomocí SIGINT a nechat mu čas na zápis, jinak se vzdálený „restart“ změní na ztracenou půlhodinu hry. Nastavení má provoz Valheimu jako služby systemd.

Někteří lidé spouštějí server uvnitř tmux nebo screen, aby se mohli „připojit ke konzoli“. To dává log v terminálu a Ctrl+C pro čisté zastavení, ale žádné příkazy, ze stejného důvodu jako výše. Nestojí to za ztrátu automatických restartů, které služba dává.

Docker exec a kontejner#

V Dockeru ti docker exec dá shell uvnitř kontejneru, což je užitečné pro soubory a ovládání procesů, ale ne pro herní příkazy.

bash
$ docker compose logs -f valheim                     # the server log$ docker exec -it valheim bash                       # a shell in the container$ docker compose restart valheim                     # clean restart

V obrazu lloesche/valheim-server běží server, aktualizátor a úloha zálohování pod supervisord, takže uvnitř kontejneru supervisorctl status ukáže každý z nich a supervisorctl restart valheim-server restartuje jen hru. Soubory se seznamy jsou v /config, které je připojené z hostitele, takže je obvykle jednodušší upravovat je přímo na hostiteli. Pokud názvy procesů nesedí, podívej se do README obrazu.

Nastav u služby stop_grace_period na minutu nebo dvě. Výchozích deset sekund Dockeru nestačí, aby se velký svět uložil, a docker compose down nebo restart pak skončí zabitím. Soubor compose celý popisuje Valheim v Dockeru.

Mody s RCON: RCON Next#

Pokud potřebuješ spouštět serverové příkazy zvenčí hry - ze skriptu, bota Discordu nebo webového dashboardu - potřebuješ mód, který přidá vzdálený protokol. Aktuální volba na Thunderstore je RCON Next od ferrinius, plugin BepInEx pro dedikovaný server, který otevírá heslem ověřovaný posluchač Source RCON. Nahrazuje starší rcon.dll z projektu BepInEx.rcon od AviiNL; nespouštěj oba a starý nejdřív odstraň.

Skládá se ze dvou částí. Samotný RCON Next řeší spojení a přihlášení, ale sám žádné příkazy Valheimu nepřidává - zpřístupňuje příkazy, které registrují jiné pluginy. Doplňkový plugin RCON Next Valheim přidává vlastní příkazy konzole serveru, jako je save. Další mody mohou skrze něj registrovat vlastní příkazy. Které příkazy přesně jsou k dispozici, závisí na verzích a pluginech, které nainstaluješ, takže aktuální seznam si přečti na stránkách módů a nepředpokládej, že příkaz existuje.

Instalace sleduje obvyklý vzor BepInEx: dej pluginy do BepInEx/plugins, spusť server jednou, aby se vygenerovala konfigurace, zastav ho, uprav, spusť znovu. Konfigurační soubor je BepInEx/config/com.github.ferrinius.rcon-next.cfg:

com.github.ferrinius.rcon-next.cfg
[rcon-next]enabled = trueport = 2458password = a-long-random-string-nobody-will-guess
KlíčVýchozíPoznámky
enabledfalsePosluchač zůstává vypnutý, dokud ho nezapneš
port2458TCP, ne UDP
passwordChangeMeVýchozí je odmítnuto; s ním posluchač nenastartuje

Pokud je přítomen starý nl.avii.plugins.rcon.cfg z předchozího pluginu, RCON Next při prvním startu jeho nastavení převezme. Výsledek zkontroluj, nepředpokládej, že se staré heslo přeneslo.

Připojit se může jakýkoli klient Source RCON. Například s gorcon/rcon-cli:

bash
$ rcon -a 203.0.113.10:2458 -p 'a-long-random-string-nobody-will-guess' save

Port je TCP, zatímco vlastní porty Valheimu jsou UDP, takže potřebuje vlastní pravidlo firewallu a přesměrování. Na hostovaném serveru potřebuje vlastní přidělený port: použij port, který ti hostitel dá, a toto číslo napiš do konfigurace, nepředpokládej, že 2458 je volný. Na RE:NODE se další porty přidávají na kartě Network.

Zabezpečení módu RCON#

S posluchačem RCON zacházej jako s plným adminským přístupem k serveru, protože jím je. Dokumentace módu to říká také a dodává detail, na kterém záleží nejvíc: Source RCON není šifrovaný. Heslo i každý příkaz putují v čistém textu.

  1. Použij dlouhé náhodné heslo. Vygeneruj ho; nepoužívej heslo serveru, které zná každý hráč.
  2. Nevystavuj ho internetu, pokud se tomu můžeš vyhnout. Omez port ve firewallu na adresy, které ho potřebují, nebo se k němu připojuj přes VPN či tunel SSH.
  3. Upřednostni lokální spojení. Bot nebo skript na stejném stroji se může připojit k 127.0.0.1 a port pak nemusí být otevřený vůbec.
  4. Odstraň ho, když ho přestaneš používat. Nepoužívaný adminský port je samé riziko a žádný užitek.

Tunel SSH udrží provoz šifrovaný a port zavřený světu:

bash
$ ssh -N -L 2458:127.0.0.1:2458 valheim@203.0.113.10$ rcon -a 127.0.0.1:2458 -p 'the-password' save

Obecná pravidla - a proč je RCON na výchozím portu skenován během hodin po spuštění - jsou v článku bezpečný provoz RCON.

Pamatuj také na náklady údržby. Každý plugin BepInEx se může rozbít při aktualizaci hry a plugin RCON, který se nenačte, vezme tvou vzdálenou správu právě v den, kdy ji můžeš chtít. Konzoli ve hře a soubory se seznamy měj jako záložní řešení, které funguje vždy.

Když vzdálená správa nefunguje#

`F5` ve hře nic nedělá. Konzole není na klientovi zapnutá. Přidej -console do voleb spuštění Valheimu ve Steamu (pravé tlačítko na hru, Properties, Launch Options) a restartuj hru. Hráči na Game Pass a Xboxu nic podobného nemají, takže práva admina dej někomu na Steamu.

Konzole se otevře, ale píše, že nejsi admin. ID v adminlist.txt neodpovídá tvaru, který server vidí. Na crossplay serveru potřebuje prefix Steam_ nebo Xbox_; na serveru jen pro Steam holé SteamID64. Zkopíruj ho z řádku o připojení v logu serveru, nepřepisuj ho ze stránky profilu, a znovu se připoj.

Ban nezabral. Buď bylo ID ve špatném tvaru, jak je uvedeno výše, nebo byl soubor upraven ve špatné složce s uloženými daty - server spuštěný s -savedir čte seznamy odtud, ne z výchozího umístění. Zkontroluj, která složka obsahuje svět, který server skutečně načítá; soubory se seznamy leží vedle složky worlds_local.

Klient RCON se nemůže připojit. Postupuj od okraje dovnitř. Je enabled = true a bylo heslo změněno z výchozího? Jinak posluchač nenastartuje a log BepInEx to řekne. Je plugin vůbec načtený - hledej ho v BepInEx/LogOutput.log. Je port otevřený pro TCP, nejen pro UDP, a je to port, který ti hostitel skutečně přidělil? Zkus nejdřív ze samotného serveru na 127.0.0.1; pokud to funguje, problém je v síti, ne v módu.

RCON se připojí, ale příkaz je neznámý. RCON Next zná jen příkazy, které registrují nainstalované pluginy. Bez RCON Next Valheim chybí i save. Zkontroluj, že jsou přítomné oba pluginy a ve verzích, které si navzájem odpovídají.

Vzdálený restart ztratil postup. Zastavení bylo zabití. Cokoli posílá restart, musí poslat přerušení a počkat na World saved v logu, než proces skončí. To je nastavení hostitele nebo služby, RCON to neřeší.

Kterou možnost použít#

Většina part RCON nepotřebuje vůbec.

SituaceCo použít
Server pro kamarády, jeden nebo dva adminiKonzole F5 ve hře a soubory se seznamy
Potřeba zabanovat někoho, když nejsem u hryUprav bannedlist.txt z panelu, SFTP nebo SSH
Naplánované restarty a ukládáníČistý restart z panelu, systemd nebo Dockeru - cestou dolů ukládá
Oznámení na DiscorduMód s webhookem, například Discord Connector - RCON netřeba
Bot, který spouští serverové příkazyRCON Next s RCON Next Valheim, vázaný lokálně nebo za firewallem
Mnoho adminů s různými pravomocemiServer Devcommands s jeho seznamy oprávnění

Naplánované restarty jsou případ, o kterém lidé nejčastěji myslí, že potřebuje RCON, protože jiné hry před restartem spouštějí save. Valheim to nepotřebuje: čisté zastavení ukládá. Jak to postavit bez jakéhokoli módu, popisují naplánované restarty Valheimu.

Na RE:NODE běží server ve vlastním kontejneru s konzolí panelu, která streamuje jeho výstup, tlačítky napájení, která zastavují čistě, správcem souborů a SFTP pro soubory se seznamy a subuživateli pro každý server - takže spoluadmin může dostat konzoli a soubory bez přístupu k fakturaci. Sekce o konzoli v průvodcích ukazuje ovládací prvky.

FAQ#

Má Valheim RCON?

Ve vanilla hře ne. Dedikovaný server nemá protokol vzdálené konzole ani vstup do konzole. RCON pochází jen z módu BepInEx, například RCON Next.

Proč nemůžu psát příkazy do konzole svého panelu?

Protože vanilla server Valheim čte příkazy ze svého vstupu jen ve hře. Panel ukazuje výstup serveru a umí ho zastavit a spustit, ale příkazy se musí psát ve hře klávesou F5 uvedeným adminem, nebo posílat přes mód s RCON.

Musí hráči instalovat mód s RCON?

Ne. RCON Next běží jen na dedikovaném serveru. Hráči se připojují s nemodifikovanou hrou, takže je kompatibilní s crossplayem.

Můžu někoho zabanovat, aniž bych se připojil do hry?

Ano. Přidej jeho ID do bannedlist.txt, které server za běhu znovu čte. To zablokuje další připojení; pokud je zrovna online, vyhoď ho ve hře nebo restartuj server, aby se ban projevil i na jeho relaci.

Je bezpečné vystavit RCON internetu?

Ne tak docela. Source RCON je nešifrovaný, takže heslo putuje po síti v čistém textu. Omez port na známé adresy, veď ho tunelem přes SSH nebo VPN, nebo se připojuj ze stejného stroje.