WireGuard PersistentKeepalive: NAT xaritalashini tirik saqlang
Agar teskari ulanish faqat peer trafik yuborgandan keyin darhol ishlasa, xaritalash muddati tugayapti. keepalive'ni router orqasida sozlang va keyin haqiqiy muddatni o'qing.
Uy qutisi tunnelni ochadi va bulut serveriga hech qanday muammosiz yetib boradi. Bulut serveri uy qutisi oxirgi marta nima yuborganidan keyin bir yoki ikki daqiqa davomida uy ilovasiga yetib borishi mumkin, keyin to'xtaydi. WireGuard jurnalida hech narsa ko'rinmaydi, hech qanday qo'l siqish xatosi xabar qilinmaydi va tunnelni qayta ishga tushirish buni qisqa vaqtga tuzatadi. Bu naqsh buzilgan tunnel emas, muddati tugayotgan xaritalash, va quyidagi qo'llanma biror narsani o'zgartirishdan oldin buni tasdiqlaydi.
Naqsh bo'sh turishda muddati tugash ekanini tasdiqlang
Ajratib turuvchi tafsilot — vaqt. Agar teskari ulanish uy peeri trafik yuborgandan so'ng darhol ishlab, jim oraliqdan keyin ishlamay qolsa, yo'l joyida, o'rtadagi holat esa emas. Agar u hech qachon ishlamagan bo'lsa, trafikdan keyin ham, bu noto'g'ri tashxis.
sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer
Birinchi ikkitasini uy peeri biror narsa yuborgandan so'ng darhol ishga tushiring, besh daqiqa kuting va yana ishga tushiring. Yangi so'nggi nuqtasiz jadval bo'yicha yangilanadigan qo'l siqish vaqt tamg'asi tunnel tirikligini bildiradi. O'zgargan narsa — tashqaridan so'ralmagan paketlarning kelish qobiliyati, bu tunnelning emas, yo'lning xususiyati.
Keyin teskari urinish qiling va uzatish hisoblagichlarini kuzating. Agar bulut tomoni baytlarni yuborsa, uy tomoni esa hech birini olmasa, paket bulutni tark etgan va yo'lda holat saqlaydigan qurilmada o'lgan. Bu siz izlayotgan imzo. Agar ikkala hisoblagich ham harakatlansa, tunnel paketni yetkazgan va gumondor — ilova.
keepalive'ni router orqasidagi peerga qo'ying
Doimiy keepalive'lar jadval bo'yicha kichik autentifikatsiyalangan paket yuborib, NAT xaritalashini va har qanday xavfsizlik devori holatini tirik saqlaydi. Sozlama router orqasidagi mashinaga, uning uzoq peer uchun yozuviga tegishli, chunki holatni aynan shu tomonning chiquvchi paketi yaratadi.
[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25
Uni mavjud peer bo'limiga birlashtiring. Xuddi shu ochiq kalit bilan ikkinchi blok qo'shish parametrlarni qo'shishning to'g'ri usuli emas, va wg-quick ularni siz uchun birlashtirmaydi. Hujjatlashtirilgan 25 soniya oddiy UDP muddatlaridan pastda turish uchun tanlangan misol, alohida ma'noga ega qiymat emas.
Xuddi shu direktivani bulut tomoniga qo'yish bu muammoga yordam bermaydi. O'sha peerning paketlari allaqachon ommaviy manzildan keladi, shuning uchun muhim yo'nalishda saqlanadigan xaritalash yo'q. U trafikni qo'shadi va hech narsani o'zgartirmaydi.
Intervalni taxmin qilish o'rniga taymerlarni o'qing
keepalive'lar ishlaydi, chunki ular holat muddati tugashidan tez-tez keladi. Bu muddatni sizga haqiqatan kerak bo'lgan songa aylantiradi, va Linux'da uni tarjima qiluvchi qurilmada o'qish mumkin:
sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820
Birinchi qiymat faqat bir yo'nalishda ko'rilgan UDP oqimi uchun muddat, ikkinchisi esa javoblar kuzatilgandan keyin qo'llaniladi. Ikkisi ham odatda qisqa, va jim qolgan xaritalash sizning oqimingizga tegishli bo'lganiga amal qiladi.
Bu sonni intervalingiz bilan solishtiring. 30 soniyalik muddat ostida 25 soniyalik keepalive ishlaydi; xuddi shu keepalive 15 soniyalik muddat ostida ishlamaydi. Qancha qayta urinish ham bu arifmetikani o'zgartirmaydi. Ba'zi iste'molchi routerlari va mobil operatorlar Linux standartidan ancha qisqa qiymatlardan foydalanadi, shuning uchun bir tarmoqda ishlaydigan konfiguratsiya boshqasida muvaffaqiyatsiz bo'ladi.
| Observation | What it means | Reasonable response |
|---|---|---|
| Works after traffic, dies when idle | Mapping or firewall state expiring | Lower the keepalive interval |
| Never works, even immediately | No return route, listener or firewall | Stop tuning keepalive |
| Works for hours, then dies once | Carrier-side translation or address change | Check the endpoint and logs together |
Tinglovchi va xavfsizlik devorini alohida tekshiring
Tirik xaritalash zarur va yetarli emas. Uy qutisidagi ilova to'g'ri manzilda tinglashi kerak, xost xavfsizlik devori esa paketni shifrdan chiqargandan keyin ruxsat berishi kerak.
sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health
Agar soket faqat jismoniy interfeys manziliga bog'langan bo'lsa, tunnel manziliga emas, tunnelda kelayotgan paketlar xavfsizlik devoridan so'rashdan oldin tashlab yuboriladi. Bu nosozlik bulut tomonidan xaritalash muammosiga o'xshab ko'rinadi va har qanday keepalive sozlamasiga bardosh beradi.
Ruxsat etilgan ro'yxatni tekshirish qarama-qarshi yo'nalishda ham birdek muhim. Bulut peeri javob bermoqchi bo'lsa, uy tunnel manzilini manba sifatida ruxsat etishi kerak, uy peeri esa bulut manzilini manzil sifatida ruxsat etishi kerak. keepalive paketlari autentifikatsiyalangan trafik va bir xil qoidalarni qo'llaydi, shuning uchun ishlayotgandek ko'rinadigan keepalive ishlamaydigan ilova bilan birga mavjud bo'lishi mumkin.
O'zgarishni joriy qiling va uning chegaralarini biling
Sozlamani qo'llang, agar bu sizning yangilash usulingiz bo'lsa interfeysni qayta ishga tushiring, keyin darhol test o'rniga bo'sh turish testini takrorlang. Avval o'qigan muddatdan uzoqroq kuting, teskari so'rov qiling va hisoblagichlar ikkala uchida ham harakatlanganini tasdiqlang.
Intervalni va o'lchangan muddatni uning yoniga yozib qo'ying. Kelajakda router proshivkasining o'zgarishi yoki mobil ulanishga o'tish muddatni o'zgartirishi mumkin. Eslatma — kimdir qiymatni nusxalash o'rniga qayta chiqarishi mumkin bo'lgan narsa. Bir satrdagi ikkita son keyinchalik butun tekshiruvni tejaydi.
Doimiy keepalive'lar holatni himoya qiladi. Ular port ochmaydi, ruxsat etilgan ro'yxatga yozuv qo'shmaydi va tinglovchining paydo bo'lishiga olib kelmaydi. Teskari ulanish umuman ishlamaganda, ayb o'sha uchtadan birida, va WireGuard tezkor qo'llanmasi keepalive sozlamasini xuddi shu tor shartlarda tasvirlaydi.