VPN tidak menjawab apa-apa pada portnya, dan dua punca yang mungkin memerlukan pembaikan bertentangan: sama ada tiada proses membuka soket, atau soket wujud dan sesuatu antara mesin menghentikan paket. Satu arahan menyelesaikan separuh pertama soalan itu, sebab itulah ia didahulukan sebelum apa-apa peraturan firewall disentuh. Urutan di bawah membuang satu penjelasan setiap langkah dan bukan menambah satu lagi tekaan. Meneka antara kedua-duanya itulah yang menukar diagnosis sepuluh minit menjadi satu malam penuh.

Anggapkan anda boleh log masuk ke pelayan dan klien ialah profil sebenar, bukan pengimbas. Kedua-dua andaian penting, kerana kuar umum tidak boleh menjawab soalan khusus protokol.

Adakah soket itu wujud sama sekali

Mulakan dengan apa yang perkhidmatan katakan tentang dirinya: sama ada ia naik dan, lebih berguna, apa ralat permulaan pertamanya. Kegagalan huraian, kunci hilang atau ralat ikat menghalang pendengar daripada wujud, dan proses boleh keluar begitu senyap sehingga baris status dibaca secara samar. Unit yang melaporkan aktif bukan bukti dengan sendirinya, kerana proses utama boleh hidup sementara komponen yang sepatutnya mengikat port sudah menyerah.

systemctl status openvpn-server@server --no-pager
journalctl -u openvpn-server@server -n 30 --no-pager
ss -lunp

Senarai soket ialah fakta yang menjadi asas diagnosis selebihnya. Baca lajur alamat setempat dan bukan port sahaja, kerana dalam lajur itulah ikatan loopback dan ikatan antara muka yang salah muncul. Pendengar yang wujud pada 127.0.0.1 berjalan dengan sempurna dan masih tidak kelihatan kepada komputer riba anda.

Pada alamat dan keluarga mana soket menjawab

Dua kesilapan kelihatan sama dari sisi klien dan menjelaskan kebanyakan laporan "tidak dapat dicapai". Pelayan yang terikat pada alamat loopback tidak pernah menerima trafik dari mesin lain, dan pelayan yang terikat hanya pada alamat IPv4 tidak pernah menjawab klien yang mendail alamat IPv6 hos yang sama. Bandingkan alamat dalam jadual soket dengan alamat yang benar-benar didail klien, huruf demi huruf, sebelum menganggap apa-apa tentang dasar.

Menghadkan senarai kepada satu port menjadikannya kekal boleh dibaca apabila hos menjalankan beberapa perkhidmatan. Penapis sport mengambil port bersama pengangkutan yang anda uji:

ss -lun 'sport = :51820'
ss -ltnp 'sport = :1194'

Lajur protokol mengubah seluruh jawapan

Jadual soket berkunci pada protokol serta port, dan keduanya entri yang bebas. Perkhidmatan yang menjawab TCP pada 1194 tidak memberitahu apa-apa tentang sama ada sesuatu mendengar pada UDP 1194, dan klien hanya akan menggunakan salah satu daripadanya. Sahkan pengangkutan mana yang dipilih oleh konfigurasi pelayan dan mana yang dihantar oleh profil klien, kemudian cari baris yang tepat itu.

UDP mempunyai lipatan kedua: kuar tanpa pengesahan bukan ralat yang perkhidmatan wajib jawab. Imbasan yang melaporkan port sebagai senyap telah mengukur kehati-hatian perkhidmatan, bukan ketersediaannya, jadi uji dengan klien dan profil sebenar.

Satu cubaan, tiga tempat untuk dilihat

Daripada klien yang diluluskan buat tepat satu cubaan dan catat masa hingga ke saat. Kemudian baca tiga sumber untuk tetingkap itu: peraturan rangkaian atau konsol penyedia, pembilang atau log firewall hos, dan log perkhidmatan itu sendiri. Melakukannya sekali inilah yang menjadikan ketiga-tiga keterangan boleh dibandingkan, dan kosnya lebih rendah daripada mengulang cubaan yang cap masanya tidak dicatat oleh sesiapa.

Kedua-dua hasil menunjuk arah bertentangan. Jika tiada paket sampai ke hos, laluan menggugurkannya dan pendengar tidak relevan. Jika paket sampai ke soket dan perkhidmatan menolaknya, laluan baik dan jawapannya ada pada protokol, kriptografi atau kelayakan. Membuka port untuk perkhidmatan yang sudah menerima sambungan menjadikan diagnosis seterusnya lebih sukar, bukan lebih mudah.

Namakan peringkat sebelum menukar peraturan

Rundingan yang bermula dan pengesahan yang gagal ialah satu kegagalan, dan terowong yang terbentuk sementara penghantaran tersekat ialah kegagalan yang sama sekali berbeza. Menamakan peringkat dahulu mengekalkan pembaikan itu sempit: masalah kelayakan tidak dibaiki oleh peraturan firewall, dan masalah laluan data tidak dibaiki oleh permulaan semula.

Gunakan diagnosis paling sempit yang menjawab soalan. Pemerhatian paket sementara pada satu port, di bawah kawalan pentadbir, ialah alat yang wajar; mematikan seluruh firewall bukan, kerana hasilnya menjadi mustahil untuk diatribusikan. Dokumentasi ss meliputi penapis yang digunakan di atas, dan ia langkah pertama yang lebih murah daripada sebarang tangkapan. Catat cabang mana yang anda buktikan, dan kejadian seterusnya bermula daripada jawapan yang diketahui.

Artikel berkaitan