Valheim server, který běží, ale nezobrazuje se v seznamu komunit, je skoro nikdy rozbitý. Podle pravděpodobnosti: seznam se prostě ještě neaktualizoval (po startu mu dej deset až patnáct minut), server byl spuštěn s -public 0, query port - herní port plus jedna, ve výchozím stavu 2457 - není dostupný přes UDP, nebo hledáš v seznamu s tisíci položkami a filtr vyřazuje polovinu z nich. Než cokoli změníš, zkus se připojit přes IP adresu. Pokud to funguje, server je v pořádku a chybí jen záznam v seznamu, což vadí cizím hráčům, kteří tě hledají, ale vůbec ne partě kamarádů, která adresu už zná.
Tento článek je o tom seznamu: jak se Valheim server do seznamu komunit dostane, co ho z něj vyřazuje a jak prokázat, který krok selhal. Pokud se k serveru nejde připojit vůbec žádným způsobem, nemáš problém se seznamem, ale s připojením, a lepším začátkem je chyby Valheimu při připojení.
Nejdřív otestuj server, potom seznam#
Seznam komunit a samotný server jsou dvě oddělené věci. Server přijímá hráče na svém herním portu. Seznam je adresář, který vede někdo jiný - master server Steamu, nebo PlayFab u crossplay serverů - a do kterého se tvůj server registruje a který se pak dotazují hry hráčů. Server může být naprosto zdravý a v adresáři chybět a občas adresář ukazuje server, který už dávno neběží.
Proto je nejdřív oddělíme:
- Otevři Valheim ve Steam verzi, vyber Join Game a potom Add Server.
- Zadej adresu a herní port, například
203.0.113.10:2456. - Připoj se a zadej heslo.
Pokud se ti zobrazí výzva k zadání hesla, server běží, herní port je otevřený a verze sedí. Chyba je pak jen v seznamu. Pokud se k výzvě nedostaneš, přestaň číst a oprav nejdřív připojení - žádné hraní s -public nezpůsobí, aby se nedostupný server zobrazoval smysluplně.
Na crossplay serveru je ekvivalentním testem šestimístný kód pro připojení. Při každém startu se vypíše do logu na řádku, jako je tento:
Session "Longship Crew" with join code 483920 and IP 203.0.113.10:2456 is active with 0 player(s)Ten řádek je užitečný i sám o sobě: znamená, že server dokončil start a zaregistroval relaci. Pokud se nikdy neobjeví, server se buď ještě načítá, nebo selhal - a server, který se nepodařilo nastartovat, nebude uvedený nikde. Tento případ řeší pád Valheim serveru při startu.
Jak se Valheim server dostane do seznamu#
Na serveru jen pro Steam (bez -crossplay) probíhá klasický postup přes Steam:
- Server se spustí a anonymně se přihlásí do Steamu jako herní server.
- Pokud je nastaveno
-public 1, sdělí master serveru Steamu, že existuje, a to se svým názvem, mapou, počtem hráčů, verzí a porty. - Hry hráčů si od master serveru vyžádají seznam Valheim serverů, dostanou adresy a pak se každého serveru přímo zeptají na jeho query portu, aby doplnily podrobnosti.
Právě poslední krok lidé přehlížejí. Master server drží jen odkaz. Název, počet hráčů a ping, které vidíš v seznamu, pocházejí z odpovědi tvého serveru na dotaz na UDP 2457. Pokud je tento port zavřený, může být server zaregistrovaný a přesto se nikdy nezobrazí, protože hra zahazuje položky, na které se nemůže dotázat. Query porty a A2S vysvětluje protokol, který za tím stojí, a proč se tolik her chová stejně.
S -crossplay jde zveřejnění přes službu PlayFab od Microsoftu. Server u PlayFabu zaregistruje relaci a seznam komunit ve všech edicích hry - Steam, Microsoft Store, Xbox - čte z ní. Query port tu hraje menší roli a zpoždění, než se nový server objeví, je jiné než u Steamu. Valheim crossplay a hráči na Xboxu popisuje relay část crossplaye; pro účely seznamu stačí vědět, že crossplay server a server jen pro Steam spravují dva různé systémy, takže rada pro jeden se na druhý ne vždy hodí.
Přepínač -public a nastavení, která server skrývají#
První, co zkontroluj, je spouštěcí řádek, nebo na hostovaném panelu záložka Startup. Tyto argumenty rozhodují o tom, jestli je server vůbec uvedený:
| Argument | Vliv na seznam |
|---|---|
-public 1 | Zaregistruje server, aby se mohl objevit v seznamu komunit |
-public 0 | Nikdy se nezobrazí. Připojit se lze jen přes IP nebo kód pro připojení |
-crossplay | Zveřejnění se přesouvá z master serveru Steamu do PlayFabu |
-port 2456 | Posune herní port; query port je vždy o jedna vyšší |
-name "..." | Text, který lidé hledají. Nesmí obsahovat heslo |
Typický spouštěcí řádek pro Linux u serveru, který má být v seznamu, vypadá takto:
$ ./valheim_server.x86_64 -nographics -batchmode \ -name "Longship Crew" -port 2456 -world "Midgard" \ -password "herring-barrel-42" -public 1Na co lidé narážejí:
- Hodnota, ne jen přepínač.
-publicbere číslo. Ručně upravený skript, který nechá-publicbez hodnoty, nebo s0zkopírovanou z cizího příkladu soukromého serveru, drží server mimo seznam. - Upravený špatný skript. Na Linuxu jsou standardní soubory
start_server.sha s módystart_server_bepinex.sh. Na Windows je tostart_headless_server.bat. Změna skriptu, který nespouštíš, nezmění nic. Pokud je nainstalovaný BepInEx, ostrý je skript pro BepInEx. - Proměnná v panelu přebíjí tvou úpravu. Na hostovaném serveru se spouštěcí řádek skládá ze záložky Startup. Úprava skriptu ve správci souborů ho nezmění.
- Soukromý ze záměru. Spousta skupin nastavuje
-public 0schválně, aby zůstaly mimo seznam plný cizích lidí zkoušejících hesla. To je rozumná volba; jen si pamatuj, že jsi ji udělal.
Úplná sada argumentů s výchozími hodnotami a pravidlem pro heslo, které server vůbec nepustí nastartovat, je v přehledu spouštěcích argumentů Valheimu.
Zpoždění master serveru#
Server uvedený přes Steam se neobjeví ve chvíli, kdy nastartuje. Počítej v nejlepším případě s pár minutami, běžně s deseti až patnácti. Každý restart spustí odpočet znovu, takže server, který padá ve smyčce nebo se restartuje každou hodinu, může překvapivě velkou část života strávit neviditelný.
Obecné důvody jsou na straně Steamu, ne Valheimu: master server shromažďuje registrace, klienti hráčů si seznam ukládají do cache a herní prohlížeč ho načítá při otevření záložky, ne průběžně. Viditelnost v prohlížeči serverů a master server Steamu rozebírá mechaniku napříč hrami.
Praktické důsledky pro Valheim:
- Neměň nastavení každé dvě minuty. Každá změna znamená restart a každý restart vynuluje čekání. Udělej jednu změnu, počkej patnáct minut a pak teprve posuzuj.
- Obnov seznam. Záložka komunit se sama neaktualizuje, když je otevřená. Zavři Join Game a otevři ho znovu, nebo použij tlačítko pro obnovení.
- Zkontroluj to z druhého počítače. Tvůj klient může držet starou kopii seznamu. Čerstvý pohled kamaráda je lepší test.
- Večer bývá pomaleji. Seznam Steamu je nejvíc zatížený, když hrají všichni. Server spuštěný v pátek ve 20:00 se může objevit později než tentýž server v úterý v 10:00.
Zda o tvém serveru Steam vůbec ví, můžeš zjistit bez hry pomocí veřejného webového API Steamu. Nepotřebuje klíč:
$ curl "https://api.steampowered.com/ISteamApps/GetServersAtAddress/v1/?addr=203.0.113.10"Odpověď obsahuje všechny servery, které má Steam zaregistrované na dané IP, s jejich porty a ID aplikace. Pokud je tvůj server v odpovědi, registrace proběhla a zbývající problém je query port nebo filtr ve hře. Pokud je odpověď po patnácti minutách prázdná, server se neregistruje: zkontroluj -public 1, ověř, že proces má odchozí přístup k internetu, a přečti si začátek logu kvůli chybám přihlášení do Steamu. Tato kontrola dává smysl jen u serverů pouze pro Steam; crossplay server je uvedený přes PlayFab a tady se nemusí objevit.
Query port a firewally#
Pokud Steam o serveru ví, ale hra ho nezobrazuje, hlavním podezřelým je query port. Herní port a query port tvoří dvojici:
-port | Herní port | Query port |
|---|---|---|
2456 (výchozí) | UDP 2456 | UDP 2457 |
2466 | UDP 2466 | UDP 2467 |
2476 | UDP 2476 | UDP 2477 |
Oba musí být otevřené a oba jsou UDP. Typické způsoby, jak to pokazit:
- Pravidlo pro TCP. Stránky pro přesměrování portů na routerech mívají jako výchozí TCP. Valheim žádné nepoužívá.
- Jen herní port. Připojení přes IP funguje, takže přesměrování vypadá správně, ale seznam se nikdy nedoplní o podrobnosti serveru.
- Posunutý herní port, ale ne query port. Při druhém serveru na
-port 2466přesměruješ2466a2467, ne2457. - Firewall na hostiteli. Na vlastním Linuxu musí pravidla
ufwnebonftablespovolit oba. Na Windows je potřeba při prvním startu potvrdit výzvu firewallu pro typ sítě, ve které opravdu jsi.
Server se můžeš zvenčí dotázat stejně jako herní klient. S Pythonem a balíčkem python-a2s:
# pip install python-a2simport a2sinfo = a2s.info(("203.0.113.10", 2457), timeout=5)print(info.server_name, info.player_count, info.max_players)Odpověď znamená, že query port funguje z místa, kde jsi dotaz spustil. Timeout zvenčí tvé sítě, když stejný dotaz zevnitř funguje, znamená, že je špatně přesměrování nebo firewall. Spusť ho z počítače, který není v síti serveru - stačí hotspot z telefonu - protože dotaz z téže LAN o přesměrování nic nedokazuje. Porty Valheimu 2456-2458 vysvětleně rozebírá rozsah portů podrobněji, včetně více serverů na jedné adrese.
Hostování doma za CGNAT
Pokud server běží na domácím připojení, zjisti, jestli vůbec máš veřejnou IPv4 adresu. Porovnej WAN adresu v routeru s tím, co ukáže web typu „what is my IP“. Pokud se liší, nebo adresa routeru začíná na 100.64 až 100.127, jsi za carrier-grade NAT. Přesměrování portů tam fungovat nemůže, dotaz se k tobě nedostane a server se ve Steam seznamu neobjeví, ať změníš cokoli. Jedním řešením je crossplay s kódy pro připojení, protože provoz přenáší PlayFab; druhým hostovaný server. NAT a CGNAT pro hostitele herních serverů vysvětluje, jak to poznat a jaké máš možnosti.
Jak správně hledat v seznamu komunit#
Někdy je server v seznamu a nikdo ho nenajde. Seznam komunit ve Valheimu je dlouhý - ve špičce tisíce položek - a jeho vyhledávací pole je prosté porovnání textu v názvu.
- Hledej neobvyklé slovo. „Viking“, „Valhalla“ a „Midgard“ najdou stovky serverů. „Herringbone“ najde ten tvůj.
- Dívej se na záložku Community, ne na Friends nebo Favourites. Záložky jsou oddělené seznamy.
- Hlídej si vlastní filtry. Pokud seznam ukazuje jen část položek, podívej se na možnosti filtrování v prohlížeči a zruš je, než usoudíš, že server chybí.
- Vyhni se zvláštním znakům v názvu. Emoji a neobvyklé symboly jsou ve vyhledávacím poli někoho jiného sázka do loterie. Prohledávatelnou část názvu drž v obyčejných písmenech a číslicích.
- Název není svět.
-nameje to, co ukazuje seznam;-worldje soubor s uloženou hrou. Lidé hledají název světa a nenajdou nic.
Seznam také říká, zda server vyžaduje heslo. Skoro každý dedikovaný Valheim server ho má, takže tím hledání nezúžíš; znamená to ale, že ze samotného seznamu nikdo nepozná, který zamčený server je tvůj.
Neshoda verzí
Server o jeden patch pozadu za klienty může v seznamu stále být, ale nikdo na aktuální verzi se k němu nepřipojí, a v praxi ho lidé ignorují nebo působí rozbitě. Po každém patchi Valheimu je potřeba server aktualizovat, než se kdokoli připojí. Pokud server zmizel ve stejný den jako aktualizace hry, zkontroluj nejdřív verzi - aktualizace a neshoda verzí ve Valheimu vysvětluje, jak aktualizovat a jak to načasovat pro skupinu.
Připojení bez seznamu#
Pro soukromou skupinu je seznam nanejvýš pohodlí. Čtyři cesty dovnitř, které na něm nezávisí:
- Add Server podle adresy. Join Game, Add Server,
203.0.113.10:2456. Uloží se do oblíbených ve hře, takže ji píšeš jen jednou. - Kód pro připojení na crossplay serverech. Funguje na všech platformách, včetně Xboxu, kde psát IP nejde. Mění se při každém restartu, takže ho sdílej čerstvý nebo lidem řekni, kde ho najdou.
- Doménové jméno. Záznam A, například
valheim.example.com, mířící na IP serveru znamená, že adresa přežije stěhování. Připojení domény ke game serveru popisuje záznam; hráči pořád píšou port. - Vlastní prohlížeč serverů Steamu. V klientu Steam zvol View, potom Game Servers, potom Favourites a přidej adresu. Steam se serveru ptá na jeho query portu, takže je to také rychlý způsob, jak zjistit, jestli query port odpovídá.
Odkazy pro připojení ve Steamu a přímé připojení popisuje obecnou mechaniku přímého připojení napříč hrami na Steamu.
Na hostovaném panelu#
Na RE:NODE se Valheim server vytvoří s oběma přidělenými UDP porty a s už zapnutým crossplayem, takže zveřejnění jde přes PlayFab a kód pro připojení se po každém startu vypíše do živé konzole. -public a název serveru jsou pole na záložce Startup; změň je tam, restartuj a před posouzením počkej patnáct minut. Záložka Network ukazuje, které porty server drží, takže můžeš ověřit, že query port je herní port plus jedna, a nemusíš hádat. Pokud chceš server jen pro Steam uvedený přes master server Steamu, vypni crossplay na záložce Startup - kompromisy jsou popsané v článku o crossplayi, na který odkazuji výše.
Hostitel nedokáže jedno: zrychlit seznam. Zpoždění patří Steamu nebo PlayFabu a všude je stejné.
Kontrolní seznam pro řešení problémů#
Projdi body v tomto pořadí. Každý vyloučí celou třídu příčin.
- Připoj se přes IP nebo kód pro připojení. Funguje: problém je jen v seznamu. Nefunguje: problém s připojením, viz článek o chybách připojení.
- Přečti log. Je tam řádek s relací a kódem pro připojení, nebo přihlášení herního serveru do Steamu? Pokud server nedokončil start, nemůže být v seznamu.
- Zkontroluj `-public 1` v příkazu, který opravdu běží.
- Počkej patnáct minut bez restartu a pak znovu otevři Join Game.
- Zeptej se Steamu.
GetServersAtAddresss tvou IP, u serveru jen pro Steam. - Dotaž se serveru na query portu zvenčí své sítě.
- Hledej unikátní slovo z názvu, na záložce Community, z druhého počítače.
- Porovnej verze, pokud problém začal v den patche.
Pokud projdou všech osm bodů a server se stále nezobrazuje, je v seznamu a ten, kdo ho hledá, ho nevidí - což bývá jeho filtr, jeho seznam v cache, nebo jeho vlastní síť blokující odchozí UDP.
FAQ#
Jak dlouho trvá, než se nový Valheim server objeví v seznamu komunit?
Obvykle pár minut, často deset až patnáct, občas déle ve špičce. Každý restart spouští čekání znovu. Pokud tam server po dvaceti minutách bez restartů pořád není, něco je špatně a výše uvedený kontrolní seznam to najde.
Můžu hrát na Valheim serveru, který není v seznamu?
Ano. Server s -public 0 nebo takový, který seznam ještě nezachytil, je plně hratelný. Hráči na Steamu se připojí přes adresu pomocí Add Server a na crossplay serveru může každý použít kód pro připojení.
Musí být query port otevřený, když se připojujeme jen přes IP?
Ne nutně - připojení přes IP používá herní port. Ale seznam, prohlížeč serverů Steamu i většina monitorovacích nástrojů používají query port, takže ho nech otevřený, pokud k opaku nemáš důvod.
Proč vidím svůj server v seznamu, ale kamarád ne?
Tvůj klient může zobrazovat seznam z cache, nebo se liší kamarádovo hledání či filtry. Ať znovu otevře Join Game, vyhledá unikátní slovo z názvu, a pokud se server pořád neukáže, ať se připojí přes adresu a uloží ji.
Měl by být server soukromé skupiny vůbec veřejný?
Zřídka. Veřejný záznam zve cizí lidi ke zkoušení hesel a lidem, kteří už adresu znají, nic nepřidá. Nastav -public 0, sdílej adresu nebo kód pro připojení a drž silné heslo.


