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

Визначте область до того, як читати колір, інакше колір відповість на питання, якого ніхто не ставив.

Значок відповідає на вужче питання, ніж ви думаєте

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

В Android мережеві зворотні виклики за індикатором повідомляють про транспорти й можливості мережі. Транспорт VPN каже, яка мережа несе трафік, а не які застосунки чи родини адрес його використовують.

Побудуйте таблицю станів із доказів

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

Signal actually observedWhat it establishesWhat remains open
Target client reports an established tunnelThat client believes its tunnel is up, within its own scopeOther apps, other profiles, other address families
Active network exposes a VPN transportSome tunnel carries the current networkWhich app it belongs to and where it exits
Probe to a private host returned fresh dataOne request reached one destination at one timeEverything the probe does not touch
Callbacks stopped or data is older than the refresh windowNothing current is knownAny statement about the tunnel state

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

Перевірте, що пристрій справді повідомляє

Фізичне світло або віджет має керуватися підтримуваним спостереженням, а не здогадом про останній відомий добрий стан. Ці команди Android показують транспорт і конфігурацію постійного з'єднання платформи, нічого не встановлюючи.

adb shell dumpsys connectivity | grep -i -A4 vpn
adb shell settings get secure always_on_vpn_app
adb shell settings get secure always_on_vpn_lockdown
adb shell dumpsys netstats | head -40

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

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

Тримайте попередження окремо від примусу

Автоматизація, що помічає відключення, спрацьовує після події, тому не може бути межею, яка не дає пакету втекти в проміжку. Якщо прямий відкат треба заборонити, налаштуйте політику блокування платформи й перевірте її, навмисно вимкнувши тунель. Індикатор повідомляє; політика примушує.

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

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

Схожі статті