Старої програми немає, а в списку розділеного тунелю досі є запис про неї. Нічого помітно не ламається, тому запис лишається там місяцями. Потім хтось встановлює іншу програму в ту саму теку, або керований профіль відновлює правило при кожному повторному підключенні, і трафік починає йти шляхом, який ніхто не планував. Виключення пережило причину свого існування.

Прибирання тут передусім про ідентичність: на що правило вказує тепер і кому належить список.

Симптом: виключення, яке ні з чим не збігається

Застарілий запис непомітний при звичайному використанні. Він стає помітним трьома способами: програма, яка, як ви очікували, піде через тунель, іде напряму; нова програма успадковує старе виключення; або клієнт відмовляється зберегти правку, бо керований профіль її перезаписує. Усі три виглядають як окремі помилки, і всі три — та сама проблема обліку. Кожну дешево перевірити й дорого діагностувати неправильно.

Почніть із читання правила, а не з його видалення.

З’ясуйте, що саме визначає правило

Реалізації розділеного тунелю прив’язують виключення до різних речей: шляху до виконуваного файлу, назви пакета, ідентифікатора пакета або маршруту. Правило на основі шляху вказує на файл, якого може вже не бути або який тепер може бути іншим файлом. Правило на основі пакета вказує на ідентичність, яку нова інсталяція може використати повторно. Прочитайте документацію клієнта для поля, на яке дивитеся, бо те саме текстове поле означає різне в різних продуктах. Посібник з VpnService від Android — орієнтир для випадку з пакетами.

Показана назва — найменш надійна частина запису, і саме її люди читають.

Правила шляхів і правила пакетів поводяться по-різному

Правило шляху, що пережило видалення, зазвичай стає неактивним, і неактивність — добрий результат. Поганий результат — шлях, який використовується повторно, бо новий виконуваний файл мовчки успадковує виключення. Правила пакетів поводяться знову інакше: продукт може ігнорувати недоступний пакет, відхилити його або й далі зіставляти за назвою, коли щось нове займає цю назву.

Не переносьте припущення з одного клієнта на інший. Перевірте, що ваш клієнт насправді робить з відсутньою ціллю, бажано навмисно створивши умову на тестовій машині й спостерігаючи, який процес успадковує виключення.

Видаліть його через власника

Якщо список походить із керованого профілю, локальне редагування — тимчасова зміна, яку буде відновлено при наступному підключенні. Змініть профіль або запитайте того, хто ним володіє, і підтвердьте, що правка переживає повторне підключення. Якщо список локальний, видаліть запис і перевірте, що клієнт перезаписав свою конфігурацію, а не зберіг стару в пам’яті.

Порожній список — не мета. Мета — список, записи якого досі відповідають реальним вимогам.

Потім перевірте обидва напрямки

Після прибирання перевірте програму, яка має залишитися виключеною, і програму, яка тепер має йти через тунель. Поведінку DNS підтвердьте окремо, бо політика резолвера — це інший механізм контролю, ніж список виключень. Потім один раз перепідключіться й перевірте знову, адже відновлений профіль — найчастіший спосіб, яким прибирання тихо скасовує саме себе.

Тримайте однорядкову мету поруч із кожним залишеним виключенням. Саме цей рядок не дає списку перетворитися на музей і робить наступне прибирання п’ятихвилинною роботою.

Схожі статті