WireGuard menghantar data tetapi tidak menerima apa-apa balik: sebelah mana?
Pembilang hantar yang menaik menunjukkan arah, bukan diagnosis. Tentukan sama ada permintaan tidak pernah keluar dari terowong atau balasan tidak pernah kembali sebelum mengubah apa-apa.
Pembilang hantar yang menaik sementara pembilang terima kekal sifar menggambarkan arah, bukan diagnosis. Bacaan yang sama muncul apabila rakan tidak pernah menyelesaikan jabat tangan, apabila destinasi memilih rakan yang salah, apabila sebelah jauh tiada laluan balik, dan apabila penapis menggugurkan balasan dalam perjalanan pulang. Setiap satu daripadanya dibaiki di tempat yang berbeza.
Perbandingan yang memendekkan kerja ialah antara permintaan yang tidak pernah meninggalkan terowong dan balasan yang tidak pernah kembali. Satu tangkapan pada antara muka yang betul memutuskan antara keduanya.
Pembilang menggambarkan isipadu, bukan arah kerosakan
Pembilang WireGuard merekodkan apa yang diserahkan antara muka kepada rakan dan apa yang diterimanya daripadanya. Ia tidak menyatakan destinasi, rakan atau separuh pertukaran yang gagal. Trafik latar menjadikan jumlah keseluruhan lebih tidak bermaklumat, kerana sesetengah bait mungkin mesej pengekalan sambungan atau aliran yang tidak berkaitan. Bacalah sebagai penunjuk bahawa antara muka aktif, kemudian berhenti memperlakukannya sebagai bukti.
Fakta pertama yang berguna ialah sama ada jabat tangan masih sah. Tanpanya tiada apa-apa dienkripsi untuk rakan ini dan pembilang terima tiada sebab untuk bergerak.
Pemilihan rakan atau laluan balasan: dua penjelasan
Penjelasan pertama ialah paket tidak pernah sampai kepada rakan yang dimaksudkan, kerana laluan menunjuk ke tempat lain atau awalan yang dibenarkan pada rakan tidak meliputi destinasi. Yang kedua ialah paket tiba tetapi balasan tidak dapat kembali, yang merupakan masalah penghalaan di hujung yang jauh. Jadual memisahkan keduanya mengikut apa yang akan anda perhatikan pada setiap titik.
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
Baca jadual dari atas. Jabat tangan yang tiada membawa anda kepada kunci, titik akhir dan laluan luar, kerana belum ada perkara lain untuk diperiksa. Jabat tangan yang sah dengan permintaan kelihatan pada pelayan memindahkan masalah ke arah balik, di mana jadual laluan destinasi itu sendiri yang menentukan. Permintaan yang tidak pernah muncul pada pelayan ialah masalah pemilihan, dan awalan yang dibenarkan pada kedua-dua rakan ialah perkara pertama yang perlu dibandingkan.
Dua daripada empat baris itu dibaiki pada klien dan dua pada pelayan. Mengetahui pasangan mana yang anda hadapi ialah sebahagian besar kerjanya.
Di mana balasan hilang
Balasan meninggalkan destinasi, sampai ke antara muka terowong pelayan dan dienkripsi untuk rakan yang alamat dibenarkannya sepadan dengan alamat dalaman klien. Jika padanan itu gagal, balasan dibuang secara senyap, yang dari sisi klien kelihatan tepat seperti kerosakan rangkaian. Jika balasan dienkripsi dan penapis klien sendiri menolaknya, gejalanya kembali sama. Kedua-dua kes memerlukan tangkapan, bukan pembilang.
Bentuk paling kuat bagi kesilapan ini ialah pelayan yang memajukan paket untuk klien tetapi tiada laluan balik ke julat dalaman klien. Ia menerima permintaan, menghantar balasan ke get laluan lalainya, dan terowong tidak pernah melihatnya. Peraturan terjemahan yang luas yang ditambah pada pelayan menyembunyikan kerosakan itu dan bukannya membaiki laluan.
Uji satu destinasi dari hujung ke hujung
Pilih satu destinasi dalam julat rakan, dan ujinya semasa jabat tangan terbukti masih sah. Perintah di bawah membaca keadaan rakan, laluan yang dipilih dan kedua-dua belah pertukaran. Jalankan tangkapan pada antara muka yang benar-benar digunakan oleh paket dienkripsi.
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
Tangkapan yang menunjukkan permintaan pada antara muka terowong tanpa apa-apa kembali ialah jawapan dari sisi pelayan, dan jadual laluan destinasi ialah tempat seterusnya yang perlu dilihat. Jika tiada apa-apa muncul sama sekali, paket mengambil laluan lain, jadi laluan tempatan ialah yang disyaki. Pertukaran yang kelihatan dalam kedua-dua tangkapan tanpa kemajuan dalam aplikasi memindahkan soalan ke saiz paket atau ke penapis yang tidak pernah ditunjukkan oleh statistik antara muka. Kekalkan satu destinasi dan satu klien dalam ujian, kerana pemboleh ubah kedua menukar bukti kembali menjadi tanggapan.
Jika nama gagal sementara alamat yang dibenarkan berfungsi, jawapannya ada dalam DNS dan bukan dalam terowong. Jika hanya pemindahan besar tersekat, periksa saiz paket secara berasingan.