Časový limit připojení VPN: DNS, transport, vyjednávání, nebo přihlášení
Časový limit znamená jen to, že marně uplynula lhůta. Porovnejte čtyři fáze, překlad jména, transport, vyjednávání a přihlášení, abyste zjistili, která skončila jako poslední.
„Připojení vypršelo“ je nejméně konkrétní chyba, kterou klient VPN umí vypsat. Znamená, že jedna operace propásla svůj termín, a každá fáze od překladu jména po odpověď při přihlášení má termín. Klienti, kteří zobrazují jen závěrečnou zprávu, dělají fáze nerozeznatelnými, a tak lidé prodlužují limit, mění port a přeinstalovávají profil, v tomto pořadí, aniž by se něco dozvěděli. Porovnávat fáze je rychlejší: každá selhává na jiném místě a každé selhání zanechává jiný druh důkazu.
Čtyři fáze, čtyři různá selhání
Pořadí je pevné, i když ho klient skrývá: jméno se musí přeložit, k výsledné adrese se musí navázat transport, protokol musí vyjednat své parametry a klíče a účet musí být ověřen. Průvodce OpenVPN pro odstraňování problémů s připojením postupuje u vlastního klienta ve stejném pořadí a ostatní ho těsně následují. Vypršení ve druhé fázi a vypršení ve čtvrté nemají nic společného kromě slova na obrazovce.
| Stage | Looks like | What it does not prove |
|---|---|---|
| Name resolution | fails in under a second, before any contact | nothing about the server being up |
| Transport | waits the full timeout, then gives up | nothing about the VPN service behind the port |
| Negotiation | connects, then stalls at handshake | nothing about credentials |
| Login | a reply arrives and is rejected or hangs on a prompt | nothing about reachability |
Čtěte protokol a hledejte poslední řádek, který ukazuje pokrok, ne poslední řádek před chybou. Většina klientů vypíše něco jako přeloženou adresu, navázaný soket, zahájené handshake nebo požadavek na ověření, a fáze, která následuje po tomto řádku, je ta, která vypršela.
Překlad jména selhává dřív, než se cokoli kontaktuje
Pokud se koncový bod nikdy nepřeloží, klient se nemá k čemu připojit a žádná transportní práce neproběhla. Takové selhání je obvykle okamžité, nikoli plné vypršení, což je nejlevnější způsob, jak ho od ostatních odlišit. Otestujte jméno systémovým resolverem a druhým resolverem a porovnejte obě odpovědi, než usoudíte, že server je mimo provoz.
Stará adresa zkopírovaná z příspěvku na fóru je častou příčinou vypršení, které vypadá jako problém serveru, protože adresa teď patří něčemu jinému nebo ničemu. Použijte aktuální profil operátora místo nahrazování adresy, která dřív fungovala. Chybějící odpověď na ping není důkaz ani jedním směrem: mnoho koncových bodů zahazuje ICMP, a přitom slouží naprosto dobře.
Nastavení transportu čeká na paket, který nepřijde
Když je DNS v pořádku a klient přesto spálí celý limit, podezřelým je transportní vrstva. Na TCP můžete port otestovat přímo; Test-NetConnection ve Windows nebo nc -vz v Linuxu vám řekne, zda něco připojení přijímá, a to je užitečnější než ping. Na UDP to stejně otestovat nelze, protože v této vrstvě není žádné handshake k dokončení, a tato asymetrie způsobuje mnoho chybných závěrů.
To, co TCP test prokáže, je omezené: služba přijímající port 443 nemusí být VPN listener a koncový bod pouze s UDP nemá žádný TCP port, který by něco přijal. Přepsání profilu z UDP na TCP nevytvoří listener na druhé straně; jen změní, na co váš klient čeká. Pokud síť protokol filtruje, změna vyprodukuje jiné vypršení ve stejné fázi.
Captive portály si v této fázi zaslouží vlastní kontrolu. Dokud portál zařízení neschválí, odchozí provoz jde na portál a pokus o tunel prostě visí. Nejprve portál dokončete v prohlížeči, potom to zkuste znovu, a neměňte profil, dokud portál stále čeká.
Vyjednávání a přihlášení znamenají, že server odpověděl
Jakmile tunel dosáhne serveru, klient zahájí handshake a chyba změní charakter. Zaseknutí tady souvisí s kompatibilitou, ne s dostupností: neshodné verze protokolu, nastavení šifry nebo datového kanálu, které druhá strana nepřijme, nebo profil, který očekává funkci, již server nenabízí. OpenVPN měnil své výchozí hodnoty vyjednávání mezi hlavními verzemi tak často, že profil napsaný pro jednu generaci může serveru dosáhnout a přesto se nezvednout.
Ověření je poslední fáze a nejlépe se dá přečíst špatně. Explicitní odmítnutí je odpověď, což znamená, že cesta funguje a problém je v identitě, certifikátu nebo stavu účtu. Tok jednotného přihlášení přes prohlížeč je třetí případ: klient čeká na akci, kterou jste neprovedli, nebo na prohlížeč, který nedokáže spustit, a nic nepřijde, dokud ten krok nedokončíte.
Porovnejte důkazy, než změníte opakování
Držte zařízení a profil pevně a měňte po jednom, počínaje sítí. Pokud se stejný profil připojí přes hotspot telefonu a na hotelovém Wi-Fi vyprší, proměnnou je cesta, ne server. Pokud selhává všude, proměnnou je profil nebo koncový bod. Pokud selhává jen v určitou denní dobu, zaznamenejte časové razítko a porovnejte ho s událostmi na straně serveru, než cokoli předpokládáte o zátěži.
U služby, kterou spravujete, je rozhodující srovnání, zda pokus vůbec dorazí. Spojení, které dosáhne listeneru a pak se zasekne, patří k fázi vyjednávání; to, které se v pohledu listeneru nikdy neobjeví, je problém transportu nebo překladu, a žádné ladění opakování s ním nepohne. Serverové protokoly také oddělují odmítnuté přihlášení od tichého shození, což je rozdíl mezi opravou identity a opravou firewallu.
Zaznamenejte verzi klienta, název profilu, čas pokusu s jeho časovým pásmem a první užitečnou chybu místo závěrečného řádku o odpojení. Před sdílením výňatku odstraňte klíče a materiál nesoucí přihlašovací údaje. Pak proveďte jednu smysluplnou opravu a zkuste to znovu, protože delší termín pomáhá jen zdokumentované pomalé operaci a nic neudělá se špatnou adresou nebo blokovaným portem.