Ev qutusu tuneli açır və bulud serverinə heç bir problem olmadan çatır. Bulud serveri ev tətbiqinə ev qutusu sonuncu dəfə nəsə göndərdikdən sonra bir-iki dəqiqə çata bilir, sonra dayanır. WireGuard jurnalında heç nə görünmür, heç bir handshake xətası bildirilmir və tuneli yenidən başlatmaq onu qısa müddətə düzəldir. Bu model xarab tunel deyil, vaxtı bitən bir mapinqdir və aşağıdakı runbook hər şeyi dəyişməzdən əvvəl bunu təsdiqləyir.

Modelin boşdayanma zamanı bitdiyini təsdiqlə

Fərqləndirici detal vaxtdır. Əgər əks əlaqə ev peer-i trafik göndərdikdən dərhal sonra işləyir və sakit fasilədən sonra uğursuz olursa, yol qaydasındadır və ortadakı vəziyyət deyil. Əgər o, heç vaxt işləməyibsə, hətta trafikdən dərhal sonra belə, bu səhv diaqnozdur.

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

İlk iki əmri ev peer-i nəsə göndərdikdən dərhal sonra işə salın, beş dəqiqə gözləyin və yenidən işə salın. Cədvəl üzrə yenilənən və yeni endpoint olmayan handshake vaxt möhürü tunelin diri olduğunu bildirir. Dəyişən şey tələb olunmamış paketlərin xaricdən gəlmə qabiliyyətidir və bu, tunelin deyil, yolun xüsusiyyətidir.

Sonra əks cəhd edin və ötürmə sayğaclarına baxın. Əgər bulud tərəfi baytlar göndərir və ev tərəfi heç nə almırsa, paket buluddan çıxıb yolda vəziyyət saxlayan cihazda ölüb. Axtardığınız imza budur. Əgər iki sayğac da hərəkət edirsə, tunel paketi çatdırıb və şübhəli tətbiqdir.

Keepalive-ı routerin arxasındakı peer-ə qoyun

Daimi keepalive-lar cədvəl üzrə kiçik autentifikasiya olunmuş paket göndərməklə NAT mapinqini və hər hansı firewall vəziyyətini diri saxlayır. Ayar routerin arxasındakı maşında, onun uzaq peer üçün girişində olmalıdır, çünki vəziyyəti yaradan tərəf məhz həmin tərəfin çıxan paketidir.

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

Onu mövcud peer bölməsinə birləşdirin. Eyni açıq açar ilə ikinci blok əlavə etmək seçim əlavə etməyin düzgün yolu deyil və wg-quick onları sizin üçün birləşdirməyəcək. Sənədləşdirilmiş 25 saniyə ümumi UDP timeout-larının altında qalmaq üçün seçilmiş nümunədir, xüsusi mənası olan dəyər deyil.

Eyni direktivi bulud tərəfinə qoymaq bu problema kömək etmir. Həmin peer-in paketləri artıq açıq ünvandan gəlir, ona görə vacib istiqamətdə qorunmalı mapinq yoxdur. Bu, trafik əlavə edir və heç nəyi dəyişmir.

Interval təxmin etmək əvəzinə taymerləri oxuyun

Keepalive-lar işləyir, çünki vəziyyətin bitdiyindən daha tez-tez gəlirlər. Bu, timeout-u həqiqətən lazım olan rəqəm edir və Linux-da o, tərcüməni edən cihazda oxuna bilir:

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

Birinci dəyər yalnız bir istiqamətdə görülən UDP axını üçün timeout-dur, ikincisi isə cavablar müşahidə edildikdən sonra tətbiq olunur. Hər ikisi adətən qısadır və sakitləşən mapinq axınınıza aid olanı izləyəcək.

Bu rəqəmi intervalınızla müqayisə edin. 30 saniyəlik timeout altında 25 saniyəlik keepalive işləyir; 15 saniyəlik timeout altında eyni keepalive işləmir. Heç bir təkrar cəhd bu hesabı dəyişmir. Bəzi istehlakçı routerləri və mobil operatorlar Linux defoltundan qat-qat qısa dəyərlər istifadə edir, buna görə bir şəbəkədə işləyən konfiqurasiya digərində uğursuz olur.

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

Dinləyicini və firewall-u ayrı-ayrılıqda yoxlayın

Canlı mapinq zəruridir və kifayət deyil. Ev qutusundakı tətbiq düzgün ünvanda dinləməlidir və host firewall şifrə açıldıqdan sonra paketə icazə verməlidir.

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

Əgər socket yalnız fiziki interfeys ünvanına bağlanıbsa, tunel ünvanına deyil, o zaman tuneldə gələn paketlər firewall-a baxılmadan atılır. Bu nasazlıq bulud tərəfindən mapinq probleminə tam bənzəyir və hər keepalive düzəlişindən sağ çıxır.

İcazəli siyahı yoxlaması digər istiqamətdə də eyni dərəcədə vacibdir. Bulud peer-i cavab verəcəksə ev tunel ünvanına mənbə kimi icazə verməlidir, ev peer-i isə bulud ünvanına təyinat kimi icazə verməlidir. Keepalive paketləri autentifikasiya olunmuş trafikdir və eyni qaydaları işlədir, buna görə işləyən kimi görünən keepalive işləməyən tətbiqlə birgə mövcud ola bilir.

Dəyişikliyi yayın və hədlərini bilin

Ayarı tətbiq edin, əgər yeniləmə üsulunuz budursa interfeysi yenidən başladın və sonra dərhal testi deyil, boşdayanma testini təkrarlayın. Əvvəl oxuduğunuz timeout-dan daha uzun gözləyin, əks sorğu edin və sayğacların iki tərəfdə hərəkət etdiyini təsdiqləyin.

Intervalı və ölçdüyünüz timeout-u onun yanında qeyd edin. Router firmware-inə gələcək dəyişiklik və ya mobil bağlantıya keçid timeout-u dəyişə bilər. Qeyd, kimsənin dəyəri kopyalamaq əvəzinə yenidən çıxarmasına imkan verən şeydir. Bir sətirdə iki rəqəm sonralar bütöv bir araşdırmaya qənaət edir.

Daimi keepalive-lar vəziyyəti qoruyur. Onlar port açmır, icazəli siyahıya giriş əlavə etmir və dinləyici yaratmır. Əks əlaqə ümumiyyətlə işləməyəndə nasazlıq bu üçündən biridir və WireGuard sürətli başlanğıcı keepalive ayarını eyni dar şərtlərlə təsvir edir.

Əlaqəli məqalələr