Kutia e shtëpisë hap tunelin dhe arrin serverin e resë pa asnjë problem. Serveri i resë mund ta arrijë aplikacionin e shtëpisë për një ose dy minuta pasi kutia e shtëpisë dërgoi diçka për herë të fundit, dhe më pas ndalon. Nuk shfaqet asgjë në regjistrin e WireGuard, nuk raportohet asnjë gabim shtrëngimi duarsh, dhe rinisja e tunelit e rregullon për pak kohë. Ky model është një hartëzim që skadon, jo një tunel i prishur, dhe udhëzuesi më poshtë e konfirmon këtë para se të ndryshohet diçka.

Konfirmoni se modeli është skadim gjatë pasivitetit

Detaji dallues është koha. Nëse lidhja e kundërt funksionon menjëherë pasi kolegu i shtëpisë dërgon trafik dhe dështon pas një intervali të qetë, rruga është në rregull dhe gjendja në mes nuk është. Nëse nuk ka funksionuar kurrë, edhe menjëherë pas trafikut, ky është diagnoza e gabuar.

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

Ekzekutoni dy të parat menjëherë pasi kolegu i shtëpisë dërgon diçka, prisni pesë minuta dhe ekzekutoni përsëri. Një vulë kohore shtrëngimi duarsh që përtërihet sipas planit pa një pikë të re fundore ju tregon se tuneli është i gjallë. Ajo që ndryshoi është aftësia e paketave të pakërkuara për të ardhur nga jashtë, e cila është veti e rrugës dhe jo e tunelit.

Pastaj bëni një përpjekje të kundërt dhe shikoni numëruesit e transferimit. Nëse ana e resë dërgon bajt dhe ana e shtëpisë nuk merr asnjë, paketa la renë dhe vdiq në një pajisje që mban gjendjen gjatë rrugës. Kjo është nënshkrimi që kërkoni. Nëse lëvizin të dy numëruesit, tuneli e dorëzoi paketën dhe i dyshuari është aplikacioni.

Vendosni keepalive mbi kolegun pas ruterit

Keepalive-t e vazhdueshme mbajnë gjallë një hartëzim NAT dhe çdo gjendje të murit të zjarrit duke dërguar sipas planit një paketë të vogël të vërtetuar. Cilësimi i takon makinës pas ruterit, në zërin e saj për kolegun e largët, sepse ajo është ana paketa e së cilës dalëse krijon gjendjen.

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

Bashkojeni me seksionin ekzistues të kolegut. Shtimi i një blloku të dytë me të njëjtin çelës publik nuk është mënyrë e vlefshme për të shtuar opsione, dhe wg-quick nuk do t'i bashkojë për ju. 25 sekondat e dokumentuara janë një shembull i zgjedhur për të qëndruar nën afatet e zakonshme të UDP, jo një vlerë me ndonjë kuptim të veçantë.

Vendosja e të njëjtës direktivë në anën e resë nuk e ndihmon këtë problem. Paketat e atij kolegu vijnë tashmë nga një adresë publike, kështu që nuk ka hartëzim për të ruajtur në drejtimin që ka rëndësi. Shton trafik dhe nuk ndryshon asgjë.

Lexoni kohëmatësit në vend që të hamendësoni një interval

Keepalive-t funksionojnë sepse vijnë më shpesh sesa skadon gjendja. Kjo e bën afatin numrin që ju nevojitet vërtet, dhe në Linux mund të lexohet në pajisjen që bën përkthimin:

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

Vlera e parë është afati për një rrjedhë UDP që është parë vetëm në një drejtim, dhe e dyta zbatohet pasi janë vëzhguar përgjigje. Të dyja janë zakonisht të shkurtra, dhe një hartëzim që hesht do të ndjekë atë që zbatohet për rrjedhën tuaj.

Krahasoni atë numër me intervalin tuaj. Një keepalive prej 25 sekondash nën një afat prej 30 sekondash funksionon; i njëjti keepalive nën një afat prej 15 sekondash nuk funksionon. Asnjë sasi ripërpjekjesh nuk e ndryshon atë aritmetikë. Disa ruterë konsumatorë dhe operatorë celularë përdorin vlera shumë më të shkurtra se parazgjedhja e Linux, prandaj një konfigurim që funksionon në një rrjet dështon në një tjetër.

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

Kontrolloni dëgjuesin dhe murin e zjarrit veçmas

Një hartëzim i gjallë është i nevojshëm dhe jo i mjaftueshëm. Aplikacioni në kutinë e shtëpisë duhet të dëgjojë në adresën e duhur, dhe muri i zjarrit i hostit duhet ta lejojë paketën pas dekriptimit.

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

Nëse soketi është i lidhur vetëm me adresën e ndërfaqes fizike dhe jo me adresën e tunelit, paketat që vijnë në tunel hidhen poshtë para se të pyetet muri i zjarrit. Ky dështim nga ana e resë duket identik me një problem hartëzimi, dhe i mbijeton çdo rregullimi të keepalive.

Kontrolli i listës së lejuar është po aq i rëndësishëm në drejtimin tjetër. Kolegu i resë duhet të lejojë adresën e tunelit të shtëpisë si burim nëse do të përgjigjet, dhe kolegu i shtëpisë duhet të lejojë adresën e resë si destinacion. Paketat keepalive janë trafik i vërtetuar dhe zbatojnë të njëjtat rregulla, prandaj një keepalive që duket se funksionon mund të bashkëjetojë me një aplikacion që nuk funksionon.

Vendoseni ndryshimin dhe njihni kufijtë e tij

Zbatoni cilësimin, rinisni ndërfaqen nëse është metoda juaj e përditësimit, dhe më pas përsëritni provën e pasivitetit në vend të provës së menjëhershme. Prisni më shumë se afati që lexuat më parë, bëni një kërkesë të kundërt dhe konfirmoni se numëruesit lëvizën në të dy skajet.

Shënoni intervalin dhe afatin e matur pranë tij. Një ndryshim i ardhshëm në firmware-in e ruterit, ose një kalim në një lidhje celulare, mund ta ndryshojë afatin. Shënimi është ai që i lejon dikujt ta nxjerrë përsëri vlerën në vend që ta kopjojë. Dy numra në një rresht kursejnë më vonë një hetim të tërë.

Keepalive-t e vazhdueshme mbrojnë gjendjen. Ato nuk hapin një port, nuk shtojnë një zë në listën e lejuar dhe nuk bëjnë që të shfaqet një dëgjues. Kur lidhja e kundërt nuk funksionon fare, faji është në një nga ato tre, dhe fillimi i shpejtë i WireGuard e përshkruan cilësimin keepalive në të njëjtat terma të ngushtë.

Artikuj të ngjashëm