WireGuard selhává po nečinnosti: nejprve otestujte směr
Prošlé mapování NAT, spící rádio a zastaralá aplikace vypadají po tichém období stejně. Otestujte příchozí a odchozí provoz odděleně, než přidáte keepalive.
Před každou změnou nastavení stojí čtyři otázky: funguje stejný zdroj, dokud je klient aktivní, jak dlouhá byla doba nečinnosti, spalo zařízení nebo změnilo síť, a objevuje se porucha jen u provozu, který iniciuje protější strana. Odpovědi oddělují prošlé mapování NAT od spícího rádia a od zastaralé aplikace. Také říkají, zda má keepalive vůbec význam. Začněte směrem, protože stojí jeden příkaz a vylučuje polovinu možných příčin.
Který směr selhává?
Nový odchozí požadavek klienta a provoz, který k němu po tichém období přichází, zatěžují stavová zařízení odlišně. Odchozí pakety při odchodu obnovují mapování, kdežto příchozí pakety potřebují, aby staré mapování přežilo. Tato asymetrie je celý test. Pokud se klient dostane ven, ale dovnitř nic nepřichází, mapování pravděpodobně prošlo, a pokud nefunguje ani jedno, tunel nebo síťový přístup klienta zmizel.
Poznamenejte, jak dlouho tiché období trvalo a zda zařízení spalo nebo mezitím přešlo na jinou síť. Tyto dva údaje mění diagnózu dřív než jakékoli nastavení.
wg show wg0 latest-handshakes
wg show wg0 endpoints
wg show wg0 transfer
Spusťte ty tři příkazy před tichým obdobím a po něm, protože každý odpovídá na jinou část otázky. Časové razítko handshake, které se nepohnulo, říká, že strany přestaly mluvit, zatímco změněný koncový bod říká, že se mapování posunulo, ne že zemřelo. Počítadla přenosu ukazují, zda vůbec něco dorazilo, a to je rozdíl mezi prošlým mapováním a mlčící aplikací. Zapište čísla v obou bodech, protože srovnání je důkaz.
Spánek, rádio a stav aplikace
Na telefonu nebo notebooku může spící zařízení úplně ztratit síťový přístup a keepalive nedokáže obnovit vypnuté rádio ani dokončit captive portal, který nebyl splněn. Mobilní platformy pozastavují práci na pozadí podle zásad, takže zda periodický provoz pokračuje, závisí na platformě a na tom, co si s ní aplikace vyjednala. Uložené spojení je třetí případ a nejvíc mate, protože návrat tunelu není totéž jako opětovné připojení aplikace k němu.
Po období nečinnosti aplikaci znovu otevřete, místo abyste věřili kartě, která zůstala otevřená. Pokud nový požadavek uspěje tam, kde stará relace selhala, tunel nikdy nebyl problém.
Co keepalive vlastně dělá
PersistentKeepalive pravidelně posílá ověřený prázdný paket protější straně, což stačí k udržení mapování NAT mezi stranami a k tomu, aby koncový bod protější strany zůstal aktuální, jak popisuje rychlý start WireGuard. Neopravuje spící rádio, ztracenou trasu ani aplikaci, která to nikdy nezkusí znovu. Interval zvolte v podporovaném nastavení klienta a nezapínejte agresivní hodnotu všude jen proto, že stavový displej ztichne.
Většina období nečinnosti nejsou poruchy. Tunel, který se po pěti minutách ticha znovu připojí, se chová správně, a problém je jen případ, kdy mělo z protější strany něco dorazit.
Vydržte interval, který dřív selhával
Proveďte jednu podporovanou změnu a pak nechte uplynout stejné období nečinnosti, než ten zdroj znovu otestujete. Čekání je součást testu, ne formalita. Okamžitý úspěch po opětovném připojení nic neříká o symptomu dlouhé nečinnosti, protože opětovné připojení je právě tou událostí, která stav resetuje. Pokud se problém objeví i při aktivním používání, vraťte se ke kontrolám handshake a datové cesty, místo abyste přidávali další periodický provoz.
Držte jednu změnu na test a zapište použitou dobu nečinnosti. Bez toho se každé další srovnání rozjíždí a nikdo nepozná, která změna byla důležitá. Zapište čtyři údaje společně: směr, dobu, stav spánku a chování aplikace.