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.

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

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.

O'xshash maqolalar