Pemeriksa port kata terbuka? Mengapa pemain Minecraft masih tidak boleh menyertai
Sambungan TCP yang berjaya hanya membuktikan satu soket diterima dari satu tempat. Log masuk, kemasukan ke dunia dan laluan dari dalam ke luar ialah ujian berasingan.
Seseorang menjalankan pemeriksaan port, melihat perkataan terbuka dan menganggap pelayan sudah selesai. Maksud sebenar keputusan itu sempit: dari lokasi pemeriksa, pada saat itu, sambungan TCP ke alamat dan port tersebut telah diterima. Ia tidak menyatakan apa-apa tentang jabat tangan protokol Minecraft, pengesahan akaun atau sama ada pelayan membenarkan pemain masuk ke dunia.
Itu empat lapisan berbeza, dan kegagalan pada mana-mana satu daripadanya menghasilkan ayat yang sama daripada pemain: ia tidak berfungsi.
Probe hanya menguji apa yang dapat dilihatnya
Sambungan TCP lengkap apabila kedua-dua pihak menamatkan jabat tangan tiga hala, yang berada di bawah semua yang diketahui permainan. Probe melaporkan bahawa pendengar wujud dan menjawab dari lokasi rangkaiannya. Ia tidak boleh memberitahu bahawa pendengar itu ialah permainan, kerana mana-mana proses boleh mengikat port dan menerima sambungan.
Lokasi sama penting dengan keputusan. Pemeriksa di internet awam menguji satu laluan dari satu rangkaian. Pemeriksa yang dijalankan pengendali dari dalam rangkaian yang sama menguji laluan yang sama sekali berbeza, dan keputusan positif di sana hampir tidak menyatakan apa-apa tentang apa yang dialami pemain jauh. Dua pemeriksa berbeza pada dua pembekal berbeza malah boleh tidak bersetuju atas sebab yang tiada kaitan dengan pelayan anda.
Masa juga penting. Keputusan probe menggambarkan saat ia dijalankan, dan sambungan rumah dengan alamat dinamik atau peraturan penghantaran yang berubah boleh mengalihkan jawapan sebenar beberapa minit kemudian. Catat alamat awam, port, keluarga alamat dan masa bersama keputusan, jika tidak pemerhatian itu tidak boleh diulang. Ulangi pemeriksaan dari rangkaian yang benar-benar berbeza, bukan dari telefon pada sambungan yang sama.
Empat lapisan antara soket dan pemain
Bayangkan urutan yang sebenarnya dilakukan klien yang menyertai. Mula-mula ia menyelesaikan alamat, kemudian membuka sambungan TCP ke port yang diterbitkan, kemudian bercakap protokol permainan itu sendiri untuk berunding dan mengesahkan, dan akhirnya pelayan memutuskan sama ada identiti itu dibenarkan masuk ke dunia. Setiap lapisan mempunyai tandatangan kegagalannya sendiri, dan hanya lapisan pertama kelihatan kepada pemeriksa port.
Port lalai Java Edition ialah 25565, tetapi pengendali boleh menerbitkan port luaran yang berbeza dan menghantarnya ke dalam, jadi nombor yang ditaip pemain tidak semestinya nombor yang dilihat pelayan. Pemeriksa yang ditujukan ke port luaran yang salah melaporkan tertutup sedangkan pelayan sepenuhnya sihat, dan itulah penggera palsu paling biasa dalam seluruh bidang ini.
Nama menambah satu lagi langkah di atas port. Jika pemain menaip nama hos, penyelesaian mesti mengembalikan alamat yang diterbitkan, dan pada mesin di dalam rangkaian ia mungkin mengembalikan alamat peribadi sebaliknya. Itu bukan kegagalan tembok api dan tiada jumlah penghantaran port akan mengubahnya.
Mengapa pemain di dalam mengambil laluan berbeza
Pemain pada LAN yang sama, atau pada VPN yang sampai ke LAN itu, cuba mencapai alamat awam dari dalam. Permintaan pergi ke alamat luaran penghala dan penghala mesti menterjemahkannya kembali ke dalam, iaitu susunan yang biasanya dipanggil hairpinning atau pantulan NAT. Kedua-dua terjemahan ke hadapan dan laluan balik mesti sejajar untuk ia berfungsi, dan banyak penghala pengguna tidak melaksanakannya langsung.
Itulah sebabnya tetamu dari luar dapat menyertai manakala orang yang duduk di sebelah pelayan tidak. Laluan luaran memang betul-betul baik; lencongan dalaman itulah yang gagal, dan ia gagal dengan cara yang dari skrin pemain kelihatan seperti masalah pelayan. Log pelayan sendiri menentukan yang mana berlaku, kerana sambungan yang tidak pernah diterjemah tidak pernah sampai kepadanya.
Terdapat dua pembetulan jujur dan satu tabiat buruk. Pilihan yang baik ialah membenarkan pemain dalaman menggunakan alamat peribadi atau nama split-DNS yang diselesaikan secara dalaman ke alamat peribadi, atau mengaktifkan pantulan pada penghala jika ciri itu wujud dan berkelakuan betul. Tabiat buruk ialah membuka lebih banyak port atau mematikan tembok api hos, yang tidak boleh mempengaruhi terjemahan yang tidak pernah dilakukan penghala.
Dokumentasi Netgate tentang pantulan NAT menerangkan perbezaan luar dan dalam serta alternatif split-DNS dengan lebih terperinci. Bacalah sebagai penerangan mekanisme dan bukan janji bahawa mana-mana pembekal VPN atau penghala tertentu menyokong setiap variasi loopback.
Kumpulkan bukti dari setiap sudut pandangan
Untuk setiap ujian, catat siapa yang menjalankannya, dari mana, pada pukul berapa, terhadap alamat dan port yang mana, dan apa yang dilog oleh pelayan. Penolakan permainan dengan sebab yang jelas dalam konsol pelayan ialah penemuan yang berbeza daripada sambungan yang tidak pernah tiba, dan kedua-duanya menuju arah yang bertentangan.
Jika pemain jauh yang dibenarkan dapat menyertai dan seorang pemain tempatan tidak, laluan tempatan ialah persoalan yang tinggal dan ia wajar disiasat sendiri: alamat mana yang digunakan klien, apa yang dilakukan penghala dengan terjemahan itu, dan sama ada pelayan merekodkan sebarang percubaan sambungan. Serahkan tiga fakta itu kepada pemilik rangkaian dan bukannya membuka port secara rawak.