Dedikovaný server Valheimu potřebuje dva UDP porty: herní port, ve výchozím stavu 2456, a port o jedna výš, 2457, který odpovídá na dotazy Steamu na server. Herní port změníš pomocí -port a oba se posunou společně - -port 2500 znamená 2500 a 2501. Rozsah 2456-2458 ze starších návodů a z původních pokynů Iron Gate je bezpečná rezerva, ne třetí požadavek; přesměrovat ho nevadí, ale server na 2458 nezávisí. Všechno je UDP. Pravidlo pro TCP, ať je napsané sebepečlivěji, pro Valheim nic nedělá. Zbytek článku popisuje, k čemu je který port, jak je otevřít doma i na linuxovém nebo windowsovém stroji, jak crossplay mění situaci a jak vměstnat více serverů na jednu adresu.
K čemu který port slouží#
| Port | Protokol | Účel | Potřebný pro |
|---|---|---|---|
2456 (hodnota -port) | UDP | Herní provoz | Připojení přes IP, hraní |
2457 (-port + 1) | UDP | Dotaz Steamu | Komunitní seznam, prohlížeč serverů Steamu |
2458 (-port + 2) | UDP | Současné buildy ho nepoužívají | K ničemu - přesměruj ho, jestli na tom návod trvá |
Herní port nese samotnou relaci: pozice, data zón, stavění, chat. Když hráč na Steamu zadá adresu do Join Game, připojuje se právě na tento port.
Dotazovací port je způsob, jakým se server navenek popíše, aniž by se někdo připojoval: jeho název, počet hráčů, jestli má heslo, jeho verze. Čte ho komunitní seznam i vlastní prohlížeč serverů Steamu. Pokud je zablokovaný jen dotazovací port, server perfektně funguje pro ty, kdo se připojí přes IP, a v žádném seznamu se neukáže - to je jedna z nejčastějších otázek na podporu Valheimu a má vlastní článek: Valheim server se nezobrazuje v seznamu.
2458 pochází z raných buildů a z původních instalačních poznámek Iron Gate, které lidem říkaly přesměrovat 2456-2458. Současné dedikované servery obsazují herní port a ten o jedna výš. Pokud stejně přesměrováváš rozsah, tři porty nestojí nic; pokud porty přidělujete jednotlivě, stačí dva.
Obecná myšlenka herních a dotazovacích portů napříč hrami je v článku porty herních serverů vysvětleně a samotný dotazovací protokol v článku dotazovací porty a A2S.
Jak -port posouvá dvojici#
Server přijímá jeden argument s portem a dotazovací port z něj odvodí:
$ ./valheim_server.x86_64 -nographics -batchmode \ -name "Longship Crew" -world "Midgard" \ -password "herring-barrel-42" -port 2466Tento server používá UDP 2466 pro hru a 2467 pro dotazy. Samostatný argument pro dotazovací port neexistuje; vztah je pevný. Z toho plynou tři pravidla:
- Oba porty musí být volné a dosažitelné. Hosting nebo firewall, který otevře jen číslo, které jsi zadal do
-port, ti dá server, který nelze zařadit do seznamu. - Herní porty volte alespoň o dva od sebe, když se na jednom stroji dělí o místo více serverů.
2456a2457jako dva herní porty by z herního portu druhého serveru udělaly dotazovací port prvního a jeden z nich by se nepodařilo obsadit. - Hráči připojující se přes IP používají herní port, ne dotazovací:
203.0.113.10:2466.
Jedinou výjimkou z pravidla tři je vlastní prohlížeč serverů Steamu (View, pak Game Servers, pak Favourites, mimo hru). Přidání serveru tam používá adresu, na kterou se Steam dotazuje, tedy dotazovací port: 203.0.113.10:2467. Uvnitř Valheimu vždy herní port.
Všechny ostatní spouštěcí argumenty, s výchozími hodnotami a chybami, které s nimi lidé dělají, jsou v přehledu spouštěcích argumentů Valheimu.
Crossplay a relay#
S -crossplay se situace pro některé hráče mění. K crossplay serverům se přistupuje přes relay služby PlayFab pomocí šestimístného kódu pro připojení, takže hráč na Xboxu nebo Game Passu, který kód použije, se připojí k relay a relay mluví se serverem. Tento provoz nepotřebuje příchozí přesměrování na routeru tak jako přímá připojení, a proto je crossplay server doma někdy dostupný přes kód, zatímco přes IP se k němu nikdo nedostane.
Nespoléhej na to. Hráči na Steamu připojující se přes IP se stále připojují přímo na herní port, komunitní seznam stále potřebuje dotazovací port a relay přidává ke každému paketu jeden skok navíc. Otevři porty pořádně a ber kód jako pohodlí, ne jako obejití. Zbytek toho, co crossplay mění, najdeš v článku Valheim crossplay a hráči na Xboxu.
Otevření portů na stroji#
Server na tvém vlastním linuxovém nebo windowsovém stroji potřebuje, aby firewall operačního systému provoz propustil, ještě než se do věci zapojí jakýkoli router.
Na Ubuntu nebo Debianu s ufw:
$ sudo ufw allow 2456:2457/udp comment "Valheim"$ sudo ufw status numberedČást /udp není volitelná. sudo ufw allow 2456 bez ní otevře TCP i UDP jen pro jeden port a dotazovací port nechá zavřený. Pravidla, jejich pořadí i odebrání pokrývá průvodce firewallem ufw.
S obyčejným iptables, pokud ho stroj používá:
$ sudo iptables -A INPUT -p udp --dport 2456:2457 -j ACCEPTToto pravidlo samo restart nepřežije; ulož ho způsobem, který tvá distribuce používá (netfilter-persistent save na systémech odvozených od Debianu s nainstalovaným tímto balíčkem).
Ve Windows první start valheim_server.exe obvykle zobrazí výzvu Windows Defender Firewall. Povol ho alespoň v soukromých sítích. Pokud byla výzva zavřena nebo chceš explicitní pravidlo, spusť v PowerShellu jako správce:
New-NetFirewallRule -DisplayName "Valheim server" -Direction Inbound ` -Protocol UDP -LocalPort 2456-2457 -Action AllowFunguje i pravidlo vázané na program místo na porty, přežije změnu -port, ale přestane platit, když SteamCMD nainstaluje server do jiné složky. Pravidla pro porty se snáz promýšlejí.
Přesměrování doma#
Server na domácím připojení potřebuje ještě jeden krok: router musí příchozí UDP na těchto portech poslat na PC, na kterém server běží.
- Dej počítači se serverem pevnou adresu v LAN. Buď rezervaci DHCP v routeru, nebo statickou adresu na PC. Přesměrování na
192.168.1.50přestane fungovat v den, kdy se PC vrátí jako192.168.1.51. - Vytvoř přesměrování. Externí porty
2456-2457, protokol UDP, vnitřní adresa PC se serverem, vnitřní porty2456-2457. Routery to označují jako „port forwarding“, „virtual server“ nebo „NAT rules“. Pokud router nabízí „TCP/UDP“ nebo „Both“, je to v pořádku; samotné „TCP“ ne. - Zjisti svou veřejnou adresu. Stavová stránka routeru ukazuje jeho WAN adresu; pokud začíná na
100.64až100.127,10.,172.16až172.31nebo192.168, tvůj poskytovatel používá carrier-grade NAT a žádné přesměrování na tvém routeru nemůže fungovat. - Otestuj zvenčí. Popros kamaráda, ať se připojí přes IP, nebo použij telefon na mobilních datech. Test zevnitř vlastní sítě nic nedokazuje - viz níže.
Případ CGNAT z kroku tři je běžný u mobilních, optických i kabelových připojení a možnosti, které zbývají - požádat poskytovatele o veřejnou adresu, VPN s přesměrováním portů nebo hostování jinde - porovnává článek NAT a CGNAT pro hostitele herních serverů. Funkce routerů, které se pletou do cesty, pokrývá přesměrování portů versus hostované servery: UPnP v konfliktu s ručními pravidly, dvojitý NAT za modemem od poskytovatele a adresy, které se přes noc mění.
Připojení k vlastnímu serveru ze stejné sítě
Lidé přesměrují porty, zkusí se připojit na svou veřejnou adresu z PC vedle serveru a usoudí, že přesměrování je rozbité. Může být v pořádku. Připojení na vlastní veřejnou adresu zevnitř sítě vyžaduje funkci routeru zvanou NAT loopback neboli hairpinning, kterou mnoho domácích routerů nemá.
Hráči ve stejné síti by se měli připojovat přes LAN adresu serveru, například 192.168.1.50:2456. Hráči zvenčí používají veřejnou adresu. Pokud se zvenčí dostanou dovnitř, přesměrování funguje, ať se zevnitř děje cokoli.
Více serverů na jedné IP#
Provozovat dva nebo tři servery Valheimu na jednom stroji nebo jedné adrese je běžné - vanilla svět a modovaný, nebo hlavní svět a testovací kopie. Každý potřebuje vlastní dvojici portů a každý by měl mít vlastní složku s uloženými daty.
# Server A - the main world$ ./valheim_server.x86_64 -nographics -batchmode -name "Midgard Main" \ -world "Midgard" -password "herring-barrel-42" -port 2456 \ -savedir "/srv/valheim/main"# Server B - a modded test world$ ./valheim_server.x86_64 -nographics -batchmode -name "Midgard Test" \ -world "MidgardTest" -password "herring-barrel-42" -port 2466 \ -savedir "/srv/valheim/test"Rozestupy herních portů po deseti (2456, 2466, 2476) jsou spíš zvyk než pravidlo - technickým minimem jsou dva - ale nechávají rezervu a porty se pak v pravidlech firewallu snáz rozlišují. Přesměruj nebo povol každou dvojici: tady 2456-2457 a 2466-2467.
Samostatný -savedir je stejně důležitý jako port. Dva servery sdílející složku s uloženými daty sdílejí adminlist.txt, bannedlist.txt a permittedlist.txt a pokud se jejich názvy světů někdy shodnou, přepisují si navzájem uložení. Rozložení popisuje článek umístění uložených dat Valheimu. Pokud servery běží pod samostatnými systémovými uživateli, každý dostane svou výchozí složku stejně, ale nastavení -savedir to dělá explicitním.
Hráči servery rozlišují podle názvu v seznamu a podle portu při připojení přes IP. Kódy pro připojení na crossplay serverech jsou pro každý server zvlášť, takže tato cesta nevyžaduje žádné další přemýšlení.
Porty na hostovaném serveru#
Na hostovaném serveru adresu nevybíráš ani neupravuješ router. Hosting přiděluje porty z vlastního rozsahu a tvým úkolem je zajistit, aby server používal ty, které dostal.
Tři věci ke kontrole:
- Herní port ve startovacím řádku odpovídá přidělení. U hostingu s panelem se hodnota
-portobvykle doplní z primárního přidělení automaticky. Pokud startovací příkaz upravuješ ručně, nech ji tam. - Dotazovací port je přidělen také. Protože ho Valheim odvozuje jako herní port plus jedna, musí ti hosting dát tento následující port, ne libovolný jiný. Dotazovací port přidělený jako nesouvisející číslo Valheimu nepomůže.
- Připojuj se na adresu a port, které panel ukazuje. Nemusí to být
2456. Na server na203.0.113.10:27015se připojuješ přesně tam.
Na RE:NODE má každý plán Valheim přidělené dva porty, herní a jemu příslušný dotazovací, a záložka Network je místo, kde se přidělení vypisují, přidávají a odebírají. Hostovaný server se také vyhne domácím problémům z předchozí části - není tu CGNAT, router ani loopback, na které by bylo třeba myslet, jen dva UDP porty.
Testování, že jsou porty otevřené#
UDP se testuje nepříjemně. Neexistuje spojení, které by se navázalo, takže webová stránka „kontrola portů“, která se pokouší připojit, obvykle hlásí UDP port jako zavřený nebo neznámý, i když funguje. Valheim ti dává lepší testy:
- Připoj se přes IP zvenčí sítě. Pokud to funguje, herní port je otevřený. Nic jiného to neprokáže tak přímo.
- Najdi server v seznamu nebo ho přidej do oblíbených Steamu přes jeho dotazovací port. Pokud Steam ukáže název a počet hráčů, dotazovací port odpovídá.
- Zeptej se ho nástrojem. Cokoli, co mluví protokolem A2S od Steamu, se může dotazovacího portu zeptat na informace o serveru. Odpověď znamená, že port je dosažitelný a server běží.
- Sleduj log serveru, zatímco se někdo připojuje. Pokus o připojení, který server dosáhne, zanechá řádek. Vůbec nic v logu znamená, že pakety nikdy nedorazily - firewall, přesměrování nebo špatná adresa, ne hra.
Pokud připojení přes IP selže a v logu nic není, problém je v síťové cestě. Pokud log pokus ukazuje a hráč je pak odmítnut, porty jsou v pořádku a důvod je ve zprávě - verze, heslo, ban nebo plný server, vše rozebrané v článku chyby „Failed to connect“ ve Valheimu.
FAQ#
Je Valheim TCP, nebo UDP?
UDP, pro herní i dotazovací port. Pravidlo pro TCP na 2456 je nejčastější důvod, proč se na pečlivě přesměrovaný server nedá dostat.
Musím přesměrovat 2458?
Ne, pro současné buildy ne. Starší návody uvádějí 2456-2458 a přesměrování všech tří nevadí, ale server používá herní port a ten o jedna výš.
Jaký port zadávám při připojení přes IP?
Herní port - 2456, pokud nebyl server spuštěn s jiným -port. Dotazovací port je jen pro oblíbené ve vlastním prohlížeči serverů Steamu, mimo hru.
Můžu provozovat Valheim na portu 27015 nebo jakémkoli jiném?
Ano. S -port funguje jakýkoli volný UDP port, pokud je volný a otevřený i další port nahoru. Hráči se pak připojují na tento port a seznam server najde přes port o jedna výš.
Proč se moji kamarádi připojí, ale já ve vlastní síti ne?
Tvůj router pravděpodobně nemá NAT loopback, takže nedokáže vrátit vlastní veřejnou adresu dovnitř. Připoj se přes LAN adresu serveru; hráči zvenčí používají veřejnou.
Potřebují crossplay servery také otevřené porty?
Pro hráče na Steamu připojující se přes IP a pro komunitní seznam ano. Hráči s kódem jdou přes relay, ale server, který funguje jen přes kód, je napůl nakonfigurovaný a pomalejší, než musí být.


