Kotak rumah membuka terowong dan mencapai pelayan awan tanpa masalah. Pelayan awan boleh mencapai aplikasi rumah selama satu atau dua minit selepas kotak rumah terakhir menghantar sesuatu, dan kemudian berhenti. Tiada apa-apa muncul dalam log WireGuard, tiada ralat jabat tangan dilaporkan, dan memulakan semula terowong membaikinya sebentar. Corak itu ialah pemetaan yang tamat tempoh, bukan terowong rosak, dan panduan di bawah mengesahkannya sebelum apa-apa diubah.

Sahkan bahawa corak itu ialah tamat tempoh semasa melahu

Perincian yang membezakannya ialah masa. Jika sambungan songsang berfungsi serta-merta selepas rakan rumah menghantar trafik dan gagal selepas selang tenang, laluan itu baik dan keadaan di tengah tidak. Jika ia tidak pernah berfungsi, walaupun serta-merta selepas trafik, ini diagnosis yang salah.

sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer

Jalankan dua yang pertama serta-merta selepas rakan rumah menghantar sesuatu, tunggu lima minit dan jalankannya semula. Cap masa jabat tangan yang diperbaharui mengikut jadual tanpa titik akhir baharu memberitahu anda bahawa terowong itu hidup. Apa yang berubah ialah keupayaan paket yang tidak diminta untuk tiba dari luar, yang merupakan sifat laluan dan bukan terowong.

Kemudian buat percubaan songsang dan perhatikan pembilang pemindahan. Jika sisi awan menghantar bait dan sisi rumah tidak menerima satu pun, paket itu meninggalkan awan dan mati dalam peranti yang menyimpan keadaan di sepanjang laluan. Itulah tandatangan yang anda cari. Jika kedua-dua pembilang bergerak, terowong menyampaikan paket itu dan aplikasi itulah yang disyaki.

Letakkan keepalive pada rakan di belakang penghala

Keepalive berterusan mengekalkan pemetaan NAT dan sebarang keadaan tembok api hidup dengan menghantar paket kecil yang disahkan mengikut jadual. Tetapan itu milik mesin di belakang penghala, dalam entrinya untuk rakan jauh, kerana sisi itulah yang paket keluarnya mencipta keadaan.

[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25

Gabungkan ke dalam bahagian rakan sedia ada. Menambah blok kedua dengan kunci awam yang sama bukan cara yang sah untuk menambah pilihan, dan wg-quick tidak akan menggabungkannya untuk anda. 25 saat yang didokumenkan ialah contoh yang dipilih untuk berada di bawah had masa UDP biasa, bukan nilai dengan makna khas.

Meletakkan arahan yang sama di sisi awan tidak membantu masalah ini. Paket rakan itu sudah tiba dari alamat awam, jadi tiada pemetaan yang perlu dipelihara dalam arah yang penting. Ia menambah trafik dan tidak mengubah apa-apa.

Baca pemasa dan bukannya meneka selang

Keepalive berfungsi kerana ia tiba lebih kerap daripada keadaan tamat tempoh. Itu menjadikan had masa sebagai nombor yang anda benar-benar perlukan, dan pada Linux ia boleh dibaca pada peranti yang melakukan terjemahan:

sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820

Nilai pertama ialah had masa untuk aliran UDP yang hanya dilihat dalam satu arah, dan yang kedua terpakai setelah balasan diperhatikan. Kedua-duanya biasanya pendek, dan pemetaan yang senyap akan mengikut mana yang terpakai pada aliran anda.

Bandingkan nombor itu dengan selang anda. Keepalive 25 saat di bawah had masa 30 saat berfungsi; keepalive yang sama di bawah had masa 15 saat tidak berfungsi. Berapa kali pun dicuba semula, aritmetik itu tidak berubah. Sesetengah penghala pengguna dan pengendali mudah alih menggunakan nilai yang jauh lebih pendek daripada lalai Linux, sebab itulah konfigurasi yang berfungsi pada satu rangkaian gagal pada rangkaian lain.

ObservationWhat it meansReasonable response
Works after traffic, dies when idleMapping or firewall state expiringLower the keepalive interval
Never works, even immediatelyNo return route, listener or firewallStop tuning keepalive
Works for hours, then dies onceCarrier-side translation or address changeCheck the endpoint and logs together

Periksa pendengar dan tembok api secara berasingan

Pemetaan yang hidup adalah perlu dan tidak mencukupi. Aplikasi pada kotak rumah mesti mendengar pada alamat yang betul, dan tembok api hos mesti membenarkan paket itu selepas dinyahsulit.

sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health

Jika soket hanya terikat pada alamat antara muka fizikal dan bukan pada alamat terowong, paket yang tiba melalui terowong digugurkan sebelum tembok api ditanya. Kegagalan itu dari sisi awan kelihatan sama seperti masalah pemetaan, dan ia bertahan dalam setiap pelarasan keepalive.

Pemeriksaan senarai dibenarkan juga sama pentingnya dalam arah yang lain. Rakan awan mesti membenarkan alamat terowong rumah sebagai sumber jika ia akan membalas, dan rakan rumah mesti membenarkan alamat awan sebagai destinasi. Paket keepalive ialah trafik yang disahkan dan ia menggunakan peraturan yang sama, sebab itulah keepalive yang kelihatan berfungsi boleh wujud bersama aplikasi yang tidak berfungsi.

Gulung perubahan dan ketahui hadnya

Terapkan tetapan itu, mulakan semula antara muka jika itu kaedah kemas kini anda, dan kemudian ulangi ujian melahu dan bukan ujian segera. Tunggu lebih lama daripada had masa yang anda baca tadi, buat permintaan songsang dan sahkan bahawa pembilang bergerak di kedua-dua hujung.

Catat selang dan had masa yang anda ukur di sebelahnya. Perubahan masa depan pada perisian tegar penghala, atau peralihan ke sambungan mudah alih, boleh mengubah had masa. Nota itulah yang membolehkan seseorang memperoleh semula nilai itu dan bukannya menyalinnya. Dua nombor pada satu baris menjimatkan seluruh penyiasatan kemudian.

Keepalive berterusan melindungi keadaan. Ia tidak membuka port, tidak menambah entri pada senarai dibenarkan, dan tidak menyebabkan pendengar muncul. Apabila sambungan songsang langsung tidak berfungsi, kesalahannya ialah salah satu daripada tiga itu, dan panduan pantas WireGuard menerangkan tetapan keepalive dalam istilah sempit yang sama.

Artikel berkaitan