VPN se pořád odpojuje? Postupujte v tomto pořadí
Zapište interval, chybu klienta a stav sítě, než cokoli změníte. Mezera mezi odpojeními vám řekne, kterou ze čtyř vrstev prověřit.
Než klienta přeinstalujete, zapište tři věci: jak dlouho byl tunel aktivní, co klient řekl při odpojení a zda stroj mezitím usnul nebo změnil síť. Tahle poznámka je jediný důkaz, který později budete mít, a přeinstalace ji obvykle smaže. Odpojení v opakujícím se intervalu je časovač nebo vypršení stavu; odpojení v náhodném okamžiku je problém cesty. Pořadí níže vám brání změnit tři věci najednou a nic se nedozvědět.
První krok: zaznamenejte interval a text chyby
Začněte vlastním logem klienta, ne panelem poskytovatele. U klienta na Linuxu pokrývá většinu toho log služby plus živý stav tunelu:
journalctl -u openvpn-client@client --since '3 hours ago' | tail -60
journalctl -u wg-quick@wg0 --since '3 hours ago' | tail -40
wg show
ip -s link show wg0
Zaznamenejte časové značky posledního úspěšného handshake a okamžik, kdy provoz přestal, ne jen okamžik, kdy ikona změnila barvu. GUI klient, který odpojení ohlásí až dodatečně, možná hlásí stav, kterého jádro dosáhlo o několik sekund dřív.
Zachovejte znění chyby. Vypršení času, odmítnutí autentizace a chyba adaptéru nebo ovladače ukazují na tři různé vrstvy a většina zbytečné práce na tomto problému vzniká tím, že se s nimi zachází jako s jedním. Zkopírujte řádek doslova do poznámky.
Druhý krok: měňte jednu proměnnou, ne profil
Nechte zařízení i profil beze změny a přesuňte stroj na jinou přístupovou síť, třeba na hotspot z telefonu. To je nejlevnější test, který oddělí klienta od cesty. Spusťte ho dost dlouho, aby pokryl původní interval selhání; dvě stabilní minuty nic nedokazují o odpojení, k němuž dojde ve třicáté minutě.
Notebook s Ethernetovým portem vám dá druhé srovnání, které úplně vyřadí Wi-Fi. Pokud tunel drží na obou variantách, původní přístupová síť si zaslouží pozornost: roaming mezi přístupovými body, domácí router s vypršenou překladovou tabulkou nebo nadřazený spoj, který resetuje dlouhé toky.
Zapište, kterou proměnnou jste změnili. Srovnání platí jen tehdy, když vše ostatní zůstalo stejné, včetně koncového bodu serveru a denní doby.
Třetí krok: přiřaďte interval k vrstvě
Délka dobré relace je nejinformativnější jediné číslo, které máte. Přečtěte si ho proti tomuto seznamu, než sáhnete na časovače:
- Odpojení po spánku nebo probuzení: stav tunelu přežil pozastavení, ale rozhraní ne. Prověřte chování klienta při opětovném připojení po probuzení a zda služba tunel restartuje, nebo čeká na provoz.
- Odpojení jen při nečinnosti: něco uprostřed nechalo tok vypršet. Přesně pro tento případ existují keepalive.
- Odpojení ve fixním stáří relace: událost opětovné autentizace nebo obnovy klíče, ne selhání cesty. Výslovné odmítnutí v logu přesně v tom intervalu je vodítko.
- Odpojení během velkých přenosů nebo velkých stránek: podezřívejte MTU a fragmentaci, ne časovač nečinnosti.
U případu nečinnosti jsou nastavení specifická pro protokol a záleží na obou stranách. keepalive 10 60 OpenVPN na serveru posílá ping každých 10 sekund a restartuje spojení po 60 sekundách bez něj; klienti WireGuard za NAT používají PersistentKeepalive = 25 v bloku partnera. OpenVPN také znovu vyjednává datový kanál podle časovače, reneg-sec, který má ve verzi 2.x výchozí hodnotu 3600 sekund.
Nekopírujte agresivní hodnoty z návodu jiného poskytovatele. Krátké vypršení na ztrátovém mobilním spoji vytváří právě ta odpojení, kterým mělo zabránit, a hodnoty zaslané serverem přebíjejí to, co nastavíte v profilu klienta.
Čtvrtý krok: porovnejte jednu podporovanou alternativu
Pokud operátor zveřejňuje profil UDP i TCP, spusťte stejné zařízení a síť proti tomu druhému. Použijte skutečný odpovídající soubor, místo abyste upravovali transport v kopii profilu. Stabilní profil TCP na cestě, kde se UDP resetuje, zúží problém na tuto cestu; nedokazuje, že TCP je lepší transport všude.
Stejná logika platí pro koncové body. Zkuste jiný server a původní výsledek si nechte vedle. Pokud relace resetuje jen jeden výstup, je to důkaz o tomto koncovém bodu, ne důvod přestavovat každý adaptér na notebooku.
Po každé změně zopakujte původní spouštěč a ověřte, kam provoz skutečně jde. Obnovený přístup k internetu není stejný výsledek jako provoz uvnitř tunelu a klient, který tiše přešel na přímou trasu, vypadá z prohlížeče zdravě.
Ověřte opravu a ponechte si možnost návratu
Oprava se ověřuje zopakováním původního spouštěče, ne úspěšným připojením. Nechte tunel nečinný déle než starý interval selhání, jednou ho pozastavte a obnovte a potom zkontrolujte stáří handshake a výstupní adresu:
wg show wg0 latest-handshakes
curl -m 5 -sS https://ifconfig.me
cp client.ovpn client.ovpn.bak # before editing timers
Ponechte předchozí profil a předchozí hodnoty časovačů, dokud nové chování nepřežije celý pracovní den. Pokud se odpojení vrátí, obnovte zálohu a potom znovu aplikujte změny po jedné, aby druhý pokus začínal ze známého stavu.
Pokud log zůstane čistý a tunel se přesto odpojuje v opakujícím se intervalu, další zastávkou je pro tuto relaci strana serveru. Vezměte s sebou identifikátor relace klienta a přesný čas odpojení, protože právě tato dvojice dělá serverový log prohledatelným. Možnosti spoje protokolu jsou zdokumentovány v manuálu OpenVPN 2.6 když potřebujete přesný význam nějaké hodnoty.