Пробвате безплатен VPN клиент или разширение за браузър за седмица, изключвате го и интернетът спира. Иконата за Wi-Fi все още показва връзка, другите устройства на същия рутер работят, а единственото, което връща сърфирането, е да включите приложението отново или да го деинсталирате. Този модел не е криптиране, което създава зависимост. Това е конфигурация, която приложението е записало някъде, където тунелът не е собственик.

Клиентът променя настройки, които не принадлежат на тунела

Клиент за поверителност в Windows или macOS обикновено пипа три места наведнъж. Задава системното HTTP прокси — същото поле, което показва Internet Options. Инсталира виртуален адаптер, често TAP драйвер, за да прихваща пакети. И пренаписва списъка с резолвери, докато при натискане на „изключване“ изчезва само тунелът.

Разширението за браузър е по-тясно нещо. Обикновено променя собствения си профил или проксито, което следва един браузър. Затова един браузър може да се провали, докато инструментите от командния ред продължават да работят, или обратното: разширението никога не е имало правомощия да пипа другите слоеве. Кой слой е променило, определя кои инструменти се чупят.

Така или иначе, остарялото решение е взето от софтуер, който не е имал причина да го отмени. Тунелът беше видимата част и също единствената част с чист път за спиране. Всичко останало е настройка в хранилище, което живее по-дълго от процеса, така че премахването на приложението е единствената стъпка, която обръща и трите наведнъж. Четенето на тези хранилища преди каквато и да е преинсталация превръща симптома в диагноза.

Три остатъка, три различни повреди

Първият остатък е прокси, което не сочи никъде: квадратчето за LAN прокси все още е отметнато или URL на конфигурационен скрипт сочи към localhost порт, на който вече никой не слуша. Браузърът препраща всяка заявка към този мъртъв порт и виси, докато изтичането на времето заприлича на мъртва мрежа. Вторият е адаптер, който все още притежава маршрут по подразбиране, защото устройство TAP-Windows или драйвер за маршрутизация на доставчик остава реален интерфейс след деинсталация. То пази маршрута, който му е даден, и трафикът изчезва в тунел, който го няма. Нито един от двата остатъка не се обявява; и двата изглеждат точно като прекъсване.

Третият е DNS и се проваля по-рано от другите два. Ако списъкът с резолвери съдържа само сървъри, достъпни през тунела, всяко търсене изтича, преди да бъде поискана дори една страница, така че браузърът съобщава за недостъпен сайт, а не за мъртво прокси. Който и да е вашият, нито един не е прекъсване в мрежовия смисъл. Всеки е остатък, който никой не е отменил, и всеки се поправя на различно място.

Минете през четирите слоя

Започнете най-близо до приложението и слизайте надолу, защото слоевете се провалят точно в този ред на видимост. Променяйте по един слой на тест и тествайте отново след всеки. Нулирането на всичко наведнъж обикновено връща сърфирането и ви оставя неспособни да кажете кой остатък е причината, така че следващата инсталация създава същата главоблъсканица. Редът е прокси, адаптери, маршрути, резолвери.

В Windows всяка проверка е една команда, която идва с операционната система, така че нищо не трябва да се инсталира. Изпълнете ги по ред и дръжте изхода заедно, защото четирите отговора имат смисъл само един до друг. Те съобщават за проксито, адаптерите, IPv4 маршрутите и списъка с резолвери, в този ред:

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

Linux и macOS имат нужда от собствени команди и те не са взаимозаменяеми. В Linux маршрутите идват от ip route, а резолверът от resolvectl status там, където systemd-resolved го притежава, с връщане към cat /etc/resolv.conf. В macOS маршрутите идват от netstat -rn, резолверите от scutil --dns, а системното прокси от scutil --proxy. Читател на macOS, който пусне ip route, получава command not found, а /etc/resolv.conf там е генерирана заглушка, а не авторитетната конфигурация. Проверете платформата, преди да проверите слоя, иначе първата команда става находката.

За всеки слой задайте един въпрос: тази стойност още ли сочи към нещо, което съществува, докато приложението е затворено? Прокси на мъртъв порт, адаптер без тунел, маршрут по подразбиране през изключен интерфейс и резолвер вътре в тунела — всички отговарят „не“. Всяко едно „не“ е достатъчно да обясни симптома, затова една промяна на тест е важна.

Проксито не е тунел

Проксито приема заявка, изтегля я другаде и връща отговора, което значи, че знае дестинацията и вижда всичко, което сайтът не е криптирал сам. То не пренася други протоколи. Не защитава пътя, освен ако дестинацията вече не използва TLS. И може да бъде променено от каквото и да е го инсталирало, без ваше участие.

Това разграничение променя въпроса, който си струва да зададете. Когато прокси остане, разберете коя програма още насочва браузъра ви, а не дали тунелът е вдигнат. Тунелът може да е напълно здрав и напълно без значение за повредата.

Ако искате да знаете какво всъщност е направил такъв клиент, наблюдавайте го, вместо да четете таблото му. Process Monitor записва кои ключове в регистъра и файлове пипа, а прихващането на пакети показва къде е отишъл трафикът му. И двете са обикновени инструменти и двете отговарят на въпроса за остатъка по-добре от всяка лампичка за състояние. Нито едно не изисква приложението да работи.

Премахнете компонента, не доказателствата

Трайното решение е да премахнете нещото, което е записало настройката. Деинсталирайте приложението, изтрийте виртуалния адаптер, който е добавило, изчистете проксито и списъка с резолвери, след това рестартирайте и тествайте, докато приложението все още е деинсталирано. Ако сърфирането работи в този момент, намерили сте причината, а не заобиколно решение. Запишете кой слой е бил остарял, защото същият доставчик обикновено прави същата грешка два пъти.

Ако симптомът се върне след инсталиране на следващия клиент, минете отново през четирите слоя, преди да решите, че услугата е счупила нещо. Доказателствата обикновено са още там, в едно от четирите места. Второ приложение не създава пети слой; то променя един от четирите.

Преинсталацията нулира проксито, но не и остарял адаптер, и може да остави два резолвера в списъка. Тази асиметрия е причината „деинсталирай и тествай“ да бие бутон „нулирай всичко“. Тя ви дава и базова линия за сравнение следващия път, когато връзката падне.

Подобни статии