Vyzkoušíte bezplatného VPN klienta nebo rozšíření prohlížeče na týden, vypnete ho a internet se zastaví. Ikona Wi-Fi stále ukazuje připojení, ostatní zařízení na stejném routeru fungují a jediné, co prohlížení vrátí, je znovu zapnout aplikaci nebo ji odinstalovat. Tento vzorec není šifrování, které vytváří závislost. Je to konfigurace, kterou aplikace zapsala někam, kde tunel není vlastníkem.

Klient mění nastavení, která tunelu nepatří

Klient pro soukromí ve Windows nebo macOS obvykle zasahuje na tři místa najednou. Nastaví systémové HTTP proxy, což je stejné pole, které zobrazuje Internet Options. Nainstaluje virtuální adaptér, často ovladač TAP, aby mohl zachytávat pakety. A přepíše seznam resolverů, zatímco po stisku odpojení zmizí jen tunel.

Rozšíření prohlížeče je užší věc. Obvykle mění svůj vlastní profil nebo proxy, kterou sleduje jeden prohlížeč. Proto může jeden prohlížeč selhat, zatímco nástroje příkazové řádky dál fungují, nebo naopak: rozšíření nikdy nemělo pravomoc zasáhnout do ostatních vrstev. Kterou vrstvu upravilo, rozhoduje o tom, které nástroje se rozbijí.

Ať tak či onak, zastaralé rozhodnutí udělal software, který neměl důvod je rušit. Tunel byl viditelná část a zároveň jediná část s čistou cestou k vypnutí. Všechno ostatní je nastavení v úložišti, které přežije proces, takže odstranění aplikace je jediný krok, který vrátí všechny tři naráz. Čtení těchto úložišť před jakoukoli reinstalací je to, co ze symptomu dělá diagnózu.

Tři zbytky, tři různé poruchy

První zbytek je proxy, která nikam neukazuje: zaškrtnutý rámeček proxy v síti LAN, nebo URL konfiguračního skriptu mířící na port localhost, kde už nikdo neposlouchá. Prohlížeč posílá každý požadavek na tento mrtvý port a zasekne se, dokud časový limit nevypadá jako mrtvá síť. Druhý je adaptér, který stále vlastní výchozí trasu, protože zařízení TAP-Windows nebo směrovací ovladač výrobce zůstává po odinstalaci skutečným rozhraním. Drží si trasu, kterou dostal, a provoz mizí v tunelu, který není. Ani jeden zbytek se neohlásí; oba vypadají přesně jako výpadek.

Třetí je DNS a selhává dřív než oba předchozí. Pokud seznam resolverů obsahuje jen servery dostupné tunelem, každý dotaz vyprší dřív, než se požádá o jedinou stránku, takže prohlížeč hlásí nedostupný web, nikoli mrtvou proxy. Ať máte kterýkoli, žádný není výpadek ve smyslu sítě. Každý je zbytek, který nikdo neodvolal, a každý se opravuje na jiném místě.

Projděte čtyři vrstvy popořadě

Začněte nejblíž aplikaci a jděte dolů, protože vrstvy selhávají právě v tomto pořadí viditelnosti. Měňte jednu vrstvu na test a po každé test opakujte. Resetovat všechno naráz obvykle obnoví prohlížení a nechá vás neschopné říct, který zbytek to způsobil, takže další instalace vytvoří stejnou hádanku. Pořadí je proxy, adaptéry, trasy, resolvery.

Ve Windows je každá kontrola jediný příkaz, který je součástí operačního systému, takže není co instalovat. Spusťte je v pořadí a držte výstup pohromadě, protože čtyři odpovědi dávají smysl jen vedle sebe. Hlásí proxy, adaptéry, trasy IPv4 a seznam resolverů, v tomto pořadí:

netsh winhttp show proxy
Get-NetAdapter
route print -4
Get-DnsClientServerAddress

Linux a macOS potřebují vlastní příkazy a nejsou zaměnitelné. V Linuxu trasy pocházejí z ip route a resolver z resolvectl status tam, kde ho vlastní systemd-resolved, s návratem k cat /etc/resolv.conf. V macOS trasy pocházejí z netstat -rn, resolvery z scutil --dns a systémová proxy z scutil --proxy. Čtenář macOS, který spustí ip route, dostane command not found, a /etc/resolv.conf je tam vygenerovaná zástěrka, ne autoritativní konfigurace. Zkontrolujte platformu dřív než vrstvu, jinak se první příkaz stane nálezem.

U každé vrstvy položte jednu otázku: ukazuje tato hodnota ještě na něco, co existuje, když je aplikace zavřená? Proxy na mrtvém portu, adaptér bez tunelu, výchozí trasa přes vypnuté rozhraní a resolver uvnitř tunelu všechny odpovídají ne. Jediné ne stačí k vysvětlení symptomu, a proto záleží na jedné změně na test.

Proxy není tunel

Proxy přijme požadavek, jinde ho vyzvedne a vrátí odpověď, což znamená, že zná cíl a vidí vše, co web sám nezašifroval. Nenese jiné protokoly. Nechrání cestu, pokud cíl už nepoužívá TLS. A může ho změnit kdokoli, kdo ho nainstaloval, bez vaší účasti.

Toto rozlišení mění otázku, kterou stojí za to klást. Když proxy zůstane, zjistěte, který program ještě vede váš prohlížeč, místo zda je tunel nahoře. Tunel může být naprosto zdravý a pro poruchu zcela nepodstatný.

Chcete-li vědět, co takový klient skutečně udělal, pozorujte ho, místo abyste četli jeho panel. Process Monitor zaznamenává, kterých klíčů registru a souborů se dotkl, zatímco zachytávání paketů ukáže, kam jeho provoz odešel. Obojí jsou běžné nástroje a obojí odpovídá na otázku zbytků lépe než kterákoli kontrolka stavu. Ani jedno nevyžaduje, aby aplikace ještě běžela.

Odstraňte komponentu, ne důkazy

Trvalá oprava je odstranit věc, která nastavení zapsala. Odinstalujte aplikaci, smažte virtuální adaptér, který přidala, vyčistěte proxy a seznam resolverů, potom restartujte a testujte s aplikací stále odinstalovanou. Pokud v tu chvíli prohlížení funguje, našli jste příčinu, ne náhradní řešení. Poznamenejte si, která vrstva byla zastaralá, protože stejný výrobce má ve zvyku udělat stejnou chybu dvakrát.

Pokud se symptom vrátí po instalaci dalšího klienta, projděte čtyři vrstvy znovu, než rozhodnete, že služba něco rozbila. Důkazy jsou obvykle pořád tam, na jednom ze čtyř míst. Druhá aplikace nevytváří pátou vrstvu; upravuje jednu ze čtyř.

Reinstalace resetuje proxy, ale ne zastaralý adaptér, a může nechat v seznamu dva resolvery. Tato asymetrie je důvod, proč odinstaluj-a-testuj poráží tlačítko resetovat vše. Dává vám také výchozí bod pro srovnání, až příště spojení spadne.

Související články