Pemeriksa port bilang terbuka? Mengapa pemain Minecraft tetap tidak bisa masuk
Koneksi TCP yang berhasil hanya membuktikan satu soket diterima dari satu tempat. Login, penerimaan ke dunia, dan jalur dari dalam ke luar adalah uji terpisah.
Seseorang menjalankan pemeriksaan port, melihat kata terbuka, dan menganggap server sudah beres. Apa arti hasil itu sebenarnya sempit: dari lokasi pemeriksa, pada saat itu, koneksi TCP ke alamat dan port tersebut diterima. Hasil itu tidak mengatakan apa pun tentang jabat tangan protokol Minecraft, autentikasi akun, atau apakah server mengizinkan pemain masuk ke dunia.
Itu empat lapisan berbeda, dan kegagalan di salah satunya menghasilkan kalimat yang sama dari pemain: tidak berhasil.
Probe hanya menguji apa yang bisa dilihatnya
Koneksi TCP selesai ketika kedua sisi menyelesaikan jabat tangan tiga arah, yang berada di bawah semua yang diketahui game. Probe melaporkan bahwa ada pendengar dan merespons dari lokasi jaringannya. Probe tidak bisa memberi tahu bahwa pendengar itu adalah game, karena proses apa pun dapat mengikat port dan menerima koneksi.
Lokasi sama pentingnya dengan hasil. Pemeriksa di internet publik menguji satu jalur dari satu jaringan. Pemeriksa yang dijalankan operator dari dalam jaringan yang sama menguji jalur yang sangat berbeda, dan hasil positif di sana hampir tidak mengatakan apa pun tentang yang dialami pemain jauh. Dua pemeriksa berbeda pada dua penyedia berbeda bahkan bisa tidak sepakat karena alasan yang tidak ada hubungannya dengan server Anda.
Waktu juga penting. Hasil probe menggambarkan saat probe dijalankan, dan koneksi rumah dengan alamat dinamis atau aturan penerusan yang berubah dapat menggeser jawaban sebenarnya beberapa menit kemudian. Catat alamat publik, port, keluarga alamat, dan waktu bersama putusannya, atau pengamatan itu tidak dapat direproduksi. Ulangi pemeriksaan dari jaringan yang benar-benar berbeda, bukan dari ponsel pada koneksi yang sama.
Empat lapisan antara soket dan pemain
Bayangkan urutan yang benar-benar dilakukan klien yang bergabung. Pertama ia menyelesaikan alamat, lalu membuka koneksi TCP ke port yang diterbitkan, lalu berbicara protokol game itu sendiri untuk bernegosiasi dan mengautentikasi, dan akhirnya server memutuskan apakah identitas itu diizinkan masuk ke dunia. Setiap lapisan punya tanda kegagalannya sendiri, dan hanya lapisan pertama yang terlihat oleh pemeriksa port.
Port bawaan Java Edition adalah 25565, tetapi operator dapat menerbitkan port eksternal yang berbeda dan meneruskannya ke dalam, jadi angka yang diketik pemain belum tentu angka yang dilihat server. Pemeriksa yang diarahkan ke port eksternal yang salah melaporkan tertutup padahal server sepenuhnya sehat, dan itulah alarm palsu paling umum di seluruh bidang ini.
Nama menambah satu langkah lagi di atas port. Jika pemain mengetik nama host, resolusi harus mengembalikan alamat yang diterbitkan, dan pada mesin di dalam jaringan ia bisa mengembalikan alamat privat sebagai gantinya. Itu bukan kegagalan firewall dan tidak ada jumlah penerusan port yang akan mengubahnya.
Mengapa pemain di dalam mengambil jalur berbeda
Pemain di LAN yang sama, atau di VPN yang mencapai LAN itu, mencoba mencapai alamat publik dari dalam. Permintaan pergi ke alamat eksternal router dan router harus menerjemahkannya kembali ke dalam, yang merupakan pengaturan yang biasa disebut hairpinning atau refleksi NAT. Baik terjemahan maju maupun jalur kembali harus sejajar agar berhasil, dan banyak router konsumen tidak menerapkannya sama sekali.
Itulah sebabnya tamu dari luar bisa bergabung sementara orang yang duduk di samping server tidak. Jalur eksternal memang baik; jalan memutar internal adalah yang gagal, dan gagal dengan cara yang dari layar pemain terlihat seperti masalah server. Log server sendiri menentukan mana yang terjadi, karena koneksi yang tidak pernah diterjemahkan tidak pernah sampai ke sana.
Ada dua perbaikan jujur dan satu kebiasaan buruk. Pilihan yang baik adalah membiarkan pemain internal menggunakan alamat privat atau nama split-DNS yang diselesaikan secara internal ke alamat privat, atau mengaktifkan refleksi pada router jika fitur itu ada dan berperilaku benar. Kebiasaan buruk adalah membuka lebih banyak port atau menonaktifkan firewall host, yang tidak dapat memengaruhi terjemahan yang tidak pernah dilakukan router.
Dokumentasi Netgate tentang refleksi NAT menjelaskan perbedaan luar dan dalam serta alternatif split-DNS secara lebih rinci. Bacalah sebagai deskripsi mekanisme, bukan janji bahwa penyedia VPN atau router tertentu mendukung setiap varian loopback.
Kumpulkan bukti dari setiap sudut pandang
Untuk setiap uji, catat siapa yang menjalankannya, dari mana, pada jam berapa, terhadap alamat dan port mana, dan apa yang dicatat server. Penolakan game dengan alasan jelas di konsol server adalah temuan yang berbeda dari koneksi yang tidak pernah tiba, dan keduanya mengarah ke arah berlawanan.
Jika pemain jauh yang diizinkan bisa bergabung dan satu pemain lokal tidak, jalur lokal adalah pertanyaan yang tersisa dan layak diselidiki sendiri: alamat mana yang dipakai klien, apa yang dilakukan router dengan terjemahan itu, dan apakah server mencatat satu pun percobaan koneksi. Serahkan ketiga fakta itu kepada pemilik jaringan alih-alih membuka port secara acak.