Android: Always-On и блокировка без VPN — выберите правильную пару
Always-On переподключает туннель, блокировка отвергает любой обходной путь. Выбирайте по владельцу, охвату приложений и разблокировке, затем проверьте состояние без сети.
Always-On и блокировка без VPN — две разные настройки, и включение первой не включает вторую. Нужная пара зависит от того, кому принадлежит устройство, какие приложения охватывает туннель и что происходит до разблокировки.
Два переключателя с разными обещаниями
Always-On обещает устойчивость и перезапускает службу при сбое; блокировка обещает изоляцию: без туннеля у охваченного трафика нет выхода.
Третий фактор — охват по приложениям, который относится к клиенту или политике управления, а не к двум системным переключателям; блокировка без решения об охвате даёт политику шире или уже требования.
Решение первое: управляемое устройство или пользовательская настройка?
На управляемом устройстве политика держит Always-On и блокировку, а локальный переключатель может отсутствовать; меняйте требование в политике, а не на устройстве.
На личном устройстве пользователь решает, готов ли он остаться без сети, когда туннеля нет; блокировка — обмен на доступность, и отсутствие переключателя не повод делать root.
Охват задаётся профилем, а не устройством: Android разрешает один активный VPN на профиль пользователя.
Блокировка в рабочем профиле ничего не говорит о личной стороне, и проверка одного контекста не подтверждает другой.
Решение второе: блокировать всё или исключить часть приложений?
Исключения по приложениям в режиме блокировки понимают наоборот: по данным Android исключённые приложения могут потерять связь, а не тихо использовать обычную сеть, поэтому исключение не является разрешением на интернет.
Выбирайте осознанно: блокируйте весь охваченный трафик и примите, что исключённые приложения останутся в темноте, или отключите блокировку и примите обходной путь; если приложению всегда нужна связь, блокировка — неподходящий инструмент.
Решение третье: что происходит до разблокировки и в портале?
У большинства клиентов туннель не поднимается, пока пользователь не разблокирует устройство, поэтому первые мгновения после загрузки — пробел, а не сбой; подтвердите это для развёртываемого клиента.
Порталы captive — другая грань: сеть отеля или аэропорта требует неаутентифицированной сессии браузера, и жёсткая блокировка может сделать вход невозможным; поддерживаемый ответ — одобренный процесс восстановления с триггером, максимальной длительностью, тем, кто его выдаёт, и проверкой, что применение само возвращается.
Документация по клиентам VPN Android охватывает Always-On, блокировку, исключения по приложениям и правило одного VPN на профиль; прочитайте её, прежде чем проектировать по памяти.
Проверьте состояние без сети и затем напишите строку приёмки
Используйте безвредный трафик и поддерживаемый клиентом тест отказа: обычное подключение, потеря туннеля, восстановление и перезагрузка до разблокировки, и запишите, заблокировалось ли приложение как задумано.
Проверяйте ресурс и resolver, а не значок, и отдельно проверяйте устройство за телефоном, потому что политика телефона не создаёт пересылку для клиентов точки доступа.
Строка приёмки конкретна и проверяема: нужное приложение в нужном профиле достигает одобренного туннеля и остаётся в требуемом заблокированном состоянии, когда не может. Перед подписью:
- Always-On и блокировка настроены там, где платформа их поддерживает, и владелец каждой настройки известен.
- Охват приложений выбран осознанно, и вы подтвердили, что происходит с исключёнными приложениями в режиме блокировки.
- Пробел до разблокировки и процесс captive-портала решены, а не обнаружены.
- Тест отказа выполнен на том классе устройств, который вы действительно развёртываете.