Nasměruj záznam A na adresu, kterou ti ukazuje panel u serveru, počkej, až se začne překládat, a hráčům dej play.example.com plus port. U skoro každé hry je to celé a zabere to dvě minuty. Zajímavá část je port, protože doménové jméno nese adresu a nic jiného a jen malé množství her si port samo dohledá.
Existují přesně tři způsoby, jak port zneviditelnit, a jeden, jak s ním žít. Tento článek probírá všechny čtyři, která hra patří kam a jak výsledek ověřit, než ho pošleš na Discord.
Mezera: jméno nese adresu, hra potřebuje port#
Záznam A mapuje jméno na adresu IPv4. Záznam AAAA dělá totéž pro IPv6. Ani jeden nemá pole pro číslo portu, protokol nebo cestu a žádné nastavení u poskytovatele DNS to nezmění. Takže play.example.com se přeloží na 203.0.113.10 a klient pořád stojí před strojem se šedesáti tisíci dveřmi a potřebuje vědět, které z nich.
Máš čtyři možnosti:
- Řekni lidem port.
play.example.com:27015. Ošklivé, univerzální, funguje všude a pořád je to mnohem lepší než adresa, kterou si nikdo nezapamatuje ani nemůže znovu vydat. - Zveřejni záznam `SRV`. Klient si ho vyhledá a port zjistí sám. Funguje jen u her, jejichž klient vyhledávání skutečně provádí, což v praxi znamená Minecraft Java a hrstku služeb, které nejsou hry.
- Běž na portu, který klient předpokládá. Pokud hra ve výchozím stavu používá 27015 a ty jedeš na 27015, nikdo port nepíše. Když je to možné, je to nejčistší řešení.
- Předřaď proxy. Proxy poslouchá na očekávaném portu a interně přeposílá na skutečný. Standard pro HTTP a dostupné i pro Minecraft přes proxy jako Velocity. U většiny her na UDP není dostupné.
Jak zjistit adresu, na kterou míříš#
Než přijde na řadu cokoli z toho, získej správnou adresu. U hostingu s panelem ukazuje stránka samotného serveru adresu a port, na které skutečně poslouchá, a právě tato dvojice patří do záznamu i do připojovacího řetězce. Zkopíruj ji, nepiš ji z paměti, protože port v hlavě bývá často ten z minulého měsíce.
Tři pasti v tomto kroku:
- Adresa panelu není adresa serveru.
panel.renode.spaceje web. Není to místo, kde poslouchá tvůj herní server, a záznam namířený tam nic nezíská. - Sdílená adresa je normální. Za jednou adresou může sedět několik serverů na různých portech. Právě proto na portu záleží a právě proto nemůžeš předpokládat, že výchozí port je volný. Statické adresy a zda je potřebuješ popisuje dva případy, kdy vyhrazená adresa přestává být volitelná - když tě má někdo jiný na seznamu povolených a když potřebuješ výchozí port, který se sdílet nedá.
- Dotazovací port není herní port. Většina her alokuje alespoň dva. Hráči se připojují na herní port; prohlížeče serverů mluví s dotazovacím portem. Když do záznamu dáš dotazovací port, vznikne jméno, které se přeloží, a spojení, které se nikdy nedokončí. Úplnou taxonomii najdeš v porty herních serverů vysvětleně.
RE:NODE doménová jména neprodává a neprovozuje DNS, takže samotný záznam patří tam, kde leží tvoje zóna - k registrátorovi, do Cloudflare nebo kdokoli, na koho míří tvoje jmenné servery. dig +short NS example.com na to odpoví definitivně a úpravy záznamů v panelu, který není autoritativní, jsou oblíbený způsob, jak ztratit odpoledne.
Záznam A, který funguje vždy#
Tuhle variantu zvol, pokud nemáš konkrétní důvod pro jinou.
- V editoru DNS u svého poskytovatele vytvoř záznam
A. - Název:
play, pokud formulář chce jen štítek,play.example.com, pokud chce celé jméno. Podívej se na existující záznam, jakou podobu používá. - Hodnota: adresa IPv4 ze stránky serveru.
- TTL:
300při zřizování,3600, až se vše ustálí. - Ulož a než to někomu řekneš, ověř překlad zvenčí své vlastní sítě.
play 300 IN A 203.0.113.10node 300 IN AAAA 2001:db8::10Pokud tvůj poskytovatel nabízí funkci HTTP proxy - nejčastěji na ni lidé narazí u oranžového mráčku v Cloudflare - musí být u tohoto záznamu vypnutá. Ta proxy ukončuje HTTP a HTTPS. Herní protokol není ani jedno, takže záznam za proxy vydá hráčům adresu patřící síti té proxy, která herní spojení nikdy nepřijme. Záznam musí být jen DNS, tedy šedý mráček. Co přesně oranžový mráček přenese a co ne, popisuje Cloudflare pro weby a herní servery.
Jakmile je serverů víc, přestaň mířit názvy služeb přímo na adresy. Adresu dej do jména stroje a názvy služeb na něj namiř přes CNAME, aby stěhování byla jedna úprava místo devíti - celý tento vzor je v subdomény pro servery.
Záznamy SRV a hry, které je čtou#
Záznam SRV nese hostitele a port pohromadě, takže klient, který ho vyhledá, nepotřebuje port od hráče. Háček je v tom, že se klient musí zeptat, a skoro žádný to nedělá.
Minecraft Java ano. Když hráč zadá jméno hostitele bez portu, klient se nejprve zeptá na _minecraft._tcp.<hostname> a pokud se vrátí záznam, použije z něj cíl a port. Pokud nic nepřijde, vrátí se k běžnému dotazu na A a předpokládá 25565.
_minecraft._tcp.play 300 IN SRV 0 5 25571 node.example.com.node 300 IN A 203.0.113.10Druhý záznam je ten, na který lidé zapomínají. Nic v záznamu SRV není adresa: cílem je jméno hostitele a to musí mít vlastní záznam A. IP adresa napsaná do pole cíle je neplatná a selže tiše. Záznamy SRV pro Minecraft prochází každé pole, tři podoby, v jakých přicházejí formuláře registrátorů, a příkazy dig, které to dokážou.
Mimo Minecraft Java počítej s tím, že SRV není k dispozici, dokud to neotestuješ. Minecraft Bedrock vyhledávání neprovádí. Hry na enginech Source a GoldSrc také ne. Valheim, Palworld, Rust, Terraria a zbytek katalogu survivalů taky ne. Významnou výjimkou jsou hlasové servery - TeamSpeak 3 používá _ts3._udp a Mumble _mumble._tcp - což stojí za to vědět, protože to bývá druhá polovina DNS komunity.
Výchozí porty a proxy, které port odstraní#
Pokud může být port výchozí, udělej z něj výchozí a přestaň číst. Hráč, který zadá play.example.com a nic jiného, je nejlepší dostupný výsledek, a u hry na standardním portu ho zajistí samotný záznam A.
| Hra | Výchozí herní port | Protokol |
|---|---|---|
| Minecraft Java | 25565 | TCP |
| Minecraft Bedrock | 19132 | UDP |
| Hry na Source a GoldSrc | 27015 | UDP |
| Valheim | 2456 | UDP |
| Palworld | 8211 | UDP |
| FiveM | 30120 | TCP a UDP |
| Project Zomboid | 16261 | UDP |
| 7 Days to Die | 26900 | TCP a UDP |
| Terraria | 7777 | TCP |
| Factorio | 34197 | UDP |
| Arma 3 a DayZ | 2302 | UDP |
| Don't Starve Together | 10999 | UDP |
U některých z nich se porty mezi verzemi mění, proto si to ověř podle portu, na který se tvůj server skutečně navázal a který konzole vypíše při startu.
Cesta přes proxy je užší, než lidé čekají. Reverzní proxy funguje tak, že rozumí protokolu natolik, aby přečetla požadované jméno hostitele a podle něj směrovala, a proto je standardem u HTTP a jinde vzácná - postup vysvětluje co dělá reverzní proxy. Minecraft má obdobu ve Velocity a BungeeCord, které poslouchají na 25565 a přeposílají hráče na backendy na interních portech, a umí dokonce směrovat podle jména, které hráč zadal, takže creative.example.com a play.example.com skončí na různých serverech za jedním veřejným portem. Takovou sestavu popisuje sítě proxy Velocity pro Minecraft. Pro střílečku nebo survival na UDP není ekvivalent, na který bys měl spoléhat, a obecný přeposílač TCP nebo UDP přidává skok a další místo poruchy jen proto, aby ušetřil dvojtečku.
Herní tarify RE:NODE slot pro proxy neobsahují, a to záměrně: HTTP proxy s herním tokem dat nemá co smysluplného dělat. Tarify pro aplikace a weby ho obsahují, protože HTTP je přesně místo, kde se uplatní.
Co přijímá který herní klient#
Záznam je užitečný, jen pokud klient přijme jméno v poli. Většina ano, a ti, kteří odmítnou, mají konzolový příkaz, který nikoli.
| Klient | Kam jméno patří | Poznámky |
|---|---|---|
| Minecraft Java | Add Server, pole adresy | Port vynech, aby se použil záznam SRV |
| Minecraft Bedrock | Address a Port jako dvě pole | Žádné vyhledání SRV. Dej obě hodnoty |
| Source a GoldSrc | connect play.example.com:27015 | Konzole, s povolenou vývojářskou konzolí |
| Prohlížeč serverů Steamu | Favourites, Add a Server | Většina her jméno přijme; pokud některá odmítne, použij konzoli |
| Valheim | Join Game, Add Server | play.example.com:2456, herní port, ne dotazovací |
| FiveM | connect play.example.com:30120 | Konzole F8 |
| Survivaly obecně | Dialog Direct Connect | Zkus jméno; pro izolaci problému zkus místo něj adresu |
Pokud klient odmítne jméno, které se jinde překládá správně, je chyba v klientovi, ne v tvém DNS. Takovým hráčům dej adresu a port a jdi dál - jméno se pořád vyplatí všem ostatním i ve dni, kdy budeš server stěhovat.
Crossplay to ještě komplikuje. Hráč na Bedrocku, který se k serveru Java připojuje přes Geyser, jde na jiný port přes UDP, takže potřebuje vlastní dvojici adresy a portu bez ohledu na to, jak vypadá strana Javy - dvoje vstupní dveře popisuje Geyser a crossplay s Bedrockem.
Ověření, než to oznámíš#
Neúspěšné připojení má příliš mnoho možných příčin na to, aby bylo testem. Odděl DNS od sítě a síť od hry, v tomto pořadí.
$ dig +short A play.example.com @1.1.1.1203.0.113.10$ dig +short SRV _minecraft._tcp.play.example.com @1.1.1.10 5 25571 node.example.com.$ nc -vz play.example.com 25571Connection to play.example.com 25571 port [tcp/*] succeeded!Na pojmenování resolveru záleží. Výslovný dotaz na 1.1.1.1 nebo 8.8.8.8 obejde vše, co má v cache tvůj router a poskytovatel připojení, a právě tak rozlišíš „není zveřejněno“ od „ještě se nerozšířilo“. Ve Windows dělají tytéž dvě věci nslookup play.example.com 1.1.1.1 a Test-NetConnection play.example.com -Port 25571.
U hry na UDP nemá nc žádné spojení k dokončení, takže test portu v užitečné podobě neexistuje. Ověř, že se server navázal tam, kde si myslíš, přečtením jeho konzole při startu - řekne to - a pak udělej jediný test, který se počítá: připoj se pomocí jména ze stroje, který není ve tvé síti. Telefon na mobilních datech je nejrychlejší způsob, jak dokázat, že cesta funguje pro někoho jiného než tebe.
Co doména za tebe neudělá#
Neschová tvou adresu. Kdokoli jméno přeloží za dvě sekundy. Doména je vrstva pohodlí, ne ochrana. To, co stojí mezi záplavou a tvým serverem, je filtrování u poskytovatele a i to zahodí jen zjevný objemový provoz - upřímnou verzi najdeš v co děláme proti útokům.
Nesníží latenci. Pakety jdou stejnou cestou jako dřív. Jediné síťové číslo, které jméno změní, je jednorázový překlad při připojení.
Nepřežije klienta, který si adresu uložil do cache. Někteří klienti překládají jednou při připojení a výsledek drží po celou relaci a zejména seznam oblíbených ve Steamu si pamatuje, co našel. Po přesunu požádej lidi, aby záznam odebrali a přidali znovu, místo abys ladil, proč jeden člověk pořád končí na starém stroji.
Neopraví zavřený port. Dokonalý záznam namířený na port, na kterém nic neposlouchá, vypadá z pohledu klienta přesně jako rozbitý záznam. Pokud se jméno přeloží a připojení selže, problém už není v DNS.
Stěhování serveru a co se při něm rozbije#
Celý důvod, proč používat jméno, je stěhování, tak ho udělej pořádně.
- Den předem sniž TTL záznamu - a cíle
SRV, pokud ho máš - na300. - Vyčkej celé předchozí TTL, aby všechny cache převzaly krátkou hodnotu.
- Přesuň svět nebo data, spusť nový server a ověř, že funguje přes adresu.
- Změň záznam. Jeden řádek.
- Starý server nech běžet několik hodin. Hráči uprostřed relace nic znovu nepřekládají a staré cache stále přicházejí.
- Sleduj konzoli starého serveru. Když se hodinu nikdo nepřipojil, je hotovo.
- TTL zase zvyš.
Přesun serveru bez ztráty hráčů probírá zbytek, včetně toho, že data se stěhují před DNS, ne po něm.
Při přepnutí se běžně rozbijí tři věci. Starý záznam má pořád v cache router některého hráče a ten trvá na tom, že server nefunguje - ať to ověří zkouškou přímo přes adresu. Firewall nového serveru má otevřený herní port, ale ne dotazovací, takže server funguje a nikdy se nevypíše. A něčí zástupce má IP adresu zapečenou z doby, kdy jsi ještě neměl doménu, což je přesně ten problém, který měla doména ukončit.
FAQ#
Mohu se zbavit portu, aby hráči psali jen moji doménu?
Jen ve třech situacích: hra je Minecraft Java a zveřejníš záznam SRV, server běží na výchozím portu hry, nebo na výchozím portu místo tebe poslouchá proxy, která rozumí protokolu. Jinak je správná odpověď play.example.com:27015 a pořád je to zlepšení oproti holé adrese.
Musím doménu koupit u svého hostingu?
Ne, a obvykle to ani nejde. Doména se kupuje u registrátora a její záznamy žijí tam, kam míří její jmenné servery. Hosting a DNS jsou oddělené služby, které se potkají jen v hodnotě jednoho záznamu. RE:NODE doménová jména neprodává ani DNS neprovozuje.
Proč mi jméno funguje, ale kamarádům ne?
Skoro vždy jde o cache. Tvůj resolver má novou odpověď a jejich starou, po zbytek předchozího TTL. Otestuj jméno proti 1.1.1.1, abys viděl zveřejněnou skutečnost, a zkontroluj, že nikdo nemá uloženou adresu se starým portem.
Mám pro herní server použít A, nebo CNAME?
Záznam A je v pořádku a je o jeden dotaz kratší. CNAME namířený na jméno stroje je lepší, jakmile provozuješ víc než jeden server, protože přesun stroje je pak jediná úprava. CNAME nedávej na kořen domény - to není dovoleno.
Dostane server certifikát tím, že na něj namířím doménu?
U herního serveru ne a nepotřebuje ho: herní protokoly HTTPS nepoužívají. Certifikáty mají smysl u webových a aplikačních serverů dostupných přes HTTPS, kde ti ho slot pro proxy vydá a obnovuje, jakmile se jméno překládá.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.