Ostu pārbaudītājs saka atvērts? Kāpēc Minecraft spēlētāji joprojām nevar pievienoties
Veiksmīgs TCP savienojums pierāda tikai to, ka viens savienojuma punkts tika pieņemts no vienas vietas. Pieteikšanās, uzņemšana pasaulē un ceļš no iekšpuses uz āru ir atsevišķi testi.
Kāds palaiž ostas pārbaudi, ierauga vārdu atvērts un uzskata serveri par atrisinātu. Tas, ko šis rezultāts patiešām nozīmē, ir šaurs: no pārbaudītāja atrašanās vietas, tajā brīdī, TCP savienojums uz šo adresi un ostu tika pieņemts. Tas neko nepasaka par Minecraft protokola roku paspiešanu, konta autentifikāciju vai to, vai serveris ielaida spēlētāju pasaulē.
Tie ir četri dažādi slāņi, un kļūme jebkurā no tiem spēlētājam dod vienu un to pašu teikumu: tas nestrādāja.
Zonde pārbauda tikai to, ko tā var redzēt
TCP savienojums tiek pabeigts, kad abas puses pabeidz trīsceļu roku paspiešanu, kas atrodas zem visa, ko spēle zina. Zonde ziņo, ka klausītājs pastāvēja un atbildēja no savas tīkla atrašanās vietas. Tā nevar pateikt, ka klausītājs ir spēle, jo jebkurš process var aizņemt ostu un pieņemt savienojumus.
Atrašanās vieta ir tikpat svarīga kā rezultāts. Pārbaudītājs publiskajā internetā pārbauda vienu ceļu no viena tīkla. Pārbaudītājs, ko operators palaiž no tā paša tīkla iekšpuses, pārbauda pavisam citu ceļu, un pozitīvs rezultāts tur gandrīz neko nepasaka par to, ko piedzīvo attāls spēlētājs. Divi dažādi pārbaudītāji pie diviem dažādiem pakalpojumu sniedzējiem pat var nepiekrist tādu iemeslu dēļ, kuriem nav nekāda sakara ar jūsu serveri.
Arī laiks ir svarīgs. Zondes rezultāts apraksta brīdi, kad tā tika palaista, un mājas savienojums ar dinamisku adresi vai mainītu pāradresācijas noteikumu var pārcelt īsto atbildi dažas minūtes vēlāk. Pierakstiet publisko adresi, ostu, adrešu saimi un laiku kopā ar spriedumu, citādi novērojumu nevar atkārtot. Atkārtojiet pārbaudi no patiesi cita tīkla, nevis no tālruņa tajā pašā savienojumā.
Četri slāņi starp savienojuma punktu un spēlētāju
Iedomājieties secību, ko pievienojošais klients faktiski veic. Vispirms tas atrisina adresi, tad atver TCP savienojumu uz publicēto ostu, tad runā pašas spēles protokolā, lai vienotos un autentificētos, un visbeidzot serveris izlemj, vai šī identitāte tiek ielaista pasaulē. Katram slānim ir sava kļūmes paraksts, un tikai pirmais ir redzams ostas pārbaudītājam.
Java Edition noklusējuma osta ir 25565, bet operators var publicēt citu ārējo ostu un pāradresēt to uz iekšu, tāpēc skaitlis, ko ievada spēlētājs, ne vienmēr ir skaitlis, ko redz serveris. Pārbaudītājs, kas vērsts uz nepareizo ārējo ostu, ziņo aizvērts, kamēr serveris ir pilnīgi vesels, un tas ir visizplatītākais viltus trauksmes signāls visā šajā jomā.
Nosaukumi pievieno vēl vienu soli virs ostas. Ja spēlētājs ievada resursdatora nosaukumu, atrisinājumam jāatgriež publicētā adrese, un mašīnā tīkla iekšpusē tas var atgriezt privātu. Tas nav ugunsmūra bojājums, un neviens ostu pāradresācijas apjoms to nemainīs.
Kāpēc spēlētājs iekšpusē iet citu ceļu
Spēlētājs tajā pašā LAN vai VPN, kas sasniedz šo LAN, mēģina sasniegt publisko adresi no iekšpuses. Pieprasījums dodas uz maršrutētāja ārējo adresi, un maršrutētājam tas jāpārtulko atpakaļ uz iekšu, ko parasti sauc par hairpinning vai NAT atspulgu. Lai tas darbotos, gan tulkojumam uz priekšu, gan atgriešanās ceļam jāsakrīt, un daudzi mājas maršrutētāji to nemaz neievieš.
Tāpēc viesis no ārpuses pievienojas, bet cilvēks, kas sēž blakus serverim, nevar. Ārējais ceļš patiešām ir kārtībā; neizdodas iekšējais apvedceļš, un tas neizdodas tā, ka spēlētāja ekrānā tas izskatās pēc servera problēmas. Pats servera žurnāls izšķir, kas notika, jo savienojums, kas nekad netika pārtulkots, nekad to nesasniedz.
Ir divi godīgi labojumi un viens slikts ieradums. Labās iespējas ir ļaut iekšējiem spēlētājiem izmantot privāto adresi vai split-DNS nosaukumu, kas iekšpusē tiek atrisināts uz privāto adresi, vai iespējot atspulgu maršrutētājā, ja funkcija pastāv un darbojas pareizi. Sliktais ieradums ir atvērt vairāk ostu vai izslēgt resursdatora ugunsmūri, kas nevar ietekmēt tulkojumu, ko maršrutētājs nekad nav veicis.
Netgate NAT atspulga dokumentācija detalizētāk apraksta ārējā un iekšējā atšķirību un split-DNS alternatīvu. Lasiet to kā mehānisma aprakstu, nevis kā solījumu, ka kāds konkrēts VPN pakalpojumu sniedzējs vai maršrutētājs atbalsta katru loopback variantu.
Vāciet pierādījumus no katra skatu punkta
Katram testam pierakstiet, kas to palaida, no kurienes, kurā laikā, pret kādu adresi un ostu, un ko serveris reģistrēja. Spēles atteikums ar skaidru iemeslu servera konsolē ir cits atradums nekā savienojums, kas nekad nav pienācis, un abi ved pretējos virzienos.
Ja atļautie attālie spēlētāji pievienojas, bet viens vietējais spēlētājs nevar, vietējais ceļš ir atlikušais jautājums, un tas ir pelnījis savu izmeklēšanu: kādu adresi klients izmantoja, ko maršrutētājs izdarīja ar tulkojumu un vai serveris vispār reģistrēja kādu savienojuma mēģinājumu. Nododiet šos trīs faktus tam, kam pieder tīkls, nevis atveriet ostas pēc nejaušības principa.