Niekto spustí kontrolu portu, uvidí slovo otvorený a považuje server za vyriešený. Čo tento výsledok skutočne znamená, je úzke: z miesta kontroly, v danom okamihu, bolo prijaté TCP spojenie na tú adresu a port. Nič nehovorí o handshake protokolu Minecraft, overení účtu ani o tom, či server hráča vpustil do sveta.

Sú to štyri rôzne vrstvy a zlyhanie v ktorejkoľvek z nich vyvolá u hráča tú istú vetu: nefungovalo to.

Sonda testuje len to, čo vidí

TCP spojenie sa dokončí, keď obe strany dokončia trojcestný handshake, ktorý leží pod všetkým, čo hra pozná. Sonda hlási, že existoval poslucháč a odpovedal zo svojho sieťového miesta. Nemôže vám povedať, že poslucháčom je hra, pretože akýkoľvek proces môže obsadiť port a prijímať spojenia.

Miesto je rovnako dôležité ako výsledok. Kontrola na verejnom internete testuje jednu cestu z jednej siete. Kontrola, ktorú prevádzkovateľ spustí zvnútra tej istej siete, testuje úplne inú cestu, a kladný výsledok tam nehovorí takmer nič o tom, čo zažíva vzdialený hráč. Dve rôzne kontroly u dvoch rôznych poskytovateľov sa dokonca môžu rozísť z dôvodov, ktoré s vaším serverom nemajú nič spoločné.

Záleží aj na čase. Výsledok sondy opisuje okamih, keď bežala, a domáce pripojenie s dynamickou adresou alebo zmeneným pravidlom presmerovania môže skutočnú odpoveď posunúť o niekoľko minút. Zapíšte verejnú adresu, port, rodinu adries a čas spolu s verdiktom, inak pozorovanie nemožno reprodukovať. Kontrolu zopakujte zo skutočne inej siete, nie z telefónu na tom istom pripojení.

Štyri vrstvy medzi socketom a hráčom

Predstavte si postupnosť, ktorú pripájajúci sa klient skutočne vykonáva. Najprv vyrieši adresu, potom otvorí TCP spojenie na publikovaný port, potom hovorí vlastným protokolom hry, aby vyjednal a overil, a nakoniec server rozhodne, či táto identita smie do sveta. Každá vrstva má vlastný podpis zlyhania a kontrole portu je viditeľná len tá prvá.

Predvolený port Java Edition je 25565, ale prevádzkovateľ môže publikovať iný vonkajší port a presmerovať ho dovnútra, takže číslo, ktoré hráč zadá, nemusí byť číslo, ktoré vidí server. Kontrola namierená na nesprávny vonkajší port hlási zatvorené, aj keď je server úplne zdravý, a to je najčastejší falošný poplach v celej tejto oblasti.

Mená pridávajú nad port ešte jeden krok. Ak hráč zadá názov hostiteľa, preklad musí vrátiť publikovanú adresu, a na stroji vnútri siete môže namiesto nej vrátiť privátnu. To nie je zlyhanie firewallu a žiadne množstvo presmerovania portov to nezmení.

Prečo hráč zvnútra ide inou cestou

Hráč v tej istej LAN alebo vo VPN, ktorá do tej LAN dosiahne, sa snaží dosiahnuť verejnú adresu zvnútra. Požiadavka ide na vonkajšiu adresu routera a router ju musí preložiť späť dovnútra, čo je usporiadanie zvyčajne nazývané hairpinning alebo NAT reflexia. Aby to fungovalo, musia sa zhodovať preklad dopredu aj spiatočná cesta, a mnohé domáce routery to vôbec neimplementujú.

Preto sa hosť zvonka pripojí a človek sediaci vedľa servera nie. Vonkajšia cesta je skutočne v poriadku; zlyháva vnútorná obchádzka a zlyháva tak, že z obrazovky hráča to vyzerá ako problém servera. Vlastný log servera rozhodne, čo sa stalo, pretože spojenie, ktoré nebolo nikdy preložené, sa k nemu nikdy nedostane.

Existujú dve poctivé opravy a jeden zlý zvyk. Dobré možnosti sú nechať vnútorných hráčov použiť privátnu adresu alebo názov split-DNS, ktorý sa vnútri preloží na privátnu adresu, alebo zapnúť reflexiu na routeri, ak funkcia existuje a správa sa správne. Zlý zvyk je otvárať ďalšie porty alebo vypínať firewall hostiteľa, čo nemôže ovplyvniť preklad, ktorý router nikdy nevykonal.

Dokumentácia Netgate o NAT reflexii podrobnejšie opisuje rozdiel medzi vonkajškom a vnútrajškom a alternatívu split-DNS. Čítajte ju ako opis mechanizmu, nie ako sľub, že konkrétny poskytovateľ VPN alebo router podporuje každý variant loopbacku.

Zbierajte dôkazy z každého pohľadu

Ku každému testu zapíšte, kto ho spustil, odkiaľ, v akom čase, proti ktorej adrese a portu a čo server zalogoval. Odmietnutie hry s jasným dôvodom v konzole servera je iné zistenie ako spojenie, ktoré nikdy neprišlo, a obe vedú opačnými smermi.

Ak sa povolení vzdialení hráči pripájajú a jeden miestny hráč nemôže, zostávajúcou otázkou je miestna cesta a zaslúži si vlastné vyšetrovanie: ktorú adresu klient použil, čo router urobil s prekladom a či server vôbec zaznamenal nejaký pokus o spojenie. Odovzdajte tieto tri fakty tomu, kto vlastní sieť, namiesto náhodného otvárania portov.

Súvisiace články