Как запретить приложениям на Android выходить в сеть без лишних костылей
Репозиторий давно не обновлялся
Последнее обновление было 10 месяцев назад.
Знакомая история: устанавливаешь какой-нибудь калькулятор или простенький фоторедактор, а он первым же делом лезет в интернет. Зачем? Скорее всего, чтобы слить аналитику или показать рекламу. В Android есть штатные средства ограничения трафика, но они часто работают через пень-колоду или просто прячут уведомления, пока приложение продолжает стучаться на сервера в фоне.
Обычно для реальной блокировки используют локальные VPN-сервисы вроде AFWall+. Решение рабочее, но у него есть жирный минус: слот VPN в системе занят. Если вы и так используете VPN для работы или обхода ограничений, совместить их становится той еще задачей. Тут на сцену выходит net-switch — небольшой Magisk-модуль, который решает проблему на уровне системы, не трогая настройки сети.

Что за зверь такой
Net Switch — это инструмент для изоляции приложений от интернета, который работает напрямую с iptables. Если говорить проще, он создает правила для сетевого экрана Linux, встроенного в Android. Пакеты от заблокированного приложения просто отбрасываются системой еще до того, как покинут устройство.
Проект подкупает своей автономностью. Ему не нужны сторонние сервисы, он не висит в оперативной памяти как отдельное приложение и, соответственно, не выедает батарею. Все управление происходит либо через лаконичный WebUI, либо через терминал, если вы любите консоль так же, как я.
Главные фишки и почему это удобно
Разработчик Rem01Gaming недавно обновил проект до версии 1.3, и теперь он выглядит вполне законченным продуктом. Вот что там есть интересного:
- Работа без VPN. Это, пожалуй, главная причина попробовать модуль. Весь трафик фильтруется на уровне ядра.
- Система профилей. Можно создать набор правил «Для роуминга» или «Максимальная приватность» и переключаться между ними в один клик.
- WebUI. Несмотря на то что это модуль Magisk, у него есть симпатичный интерфейс с анимациями. Настраивать блокировки в списке приложений гораздо удобнее, чем вбивать имена пакетов вручную.
- Менеджер бэкапов. Если вы часто меняете прошивки или тестируете разные модули, настройки профилей можно сохранить и восстановить позже.
Как это устроено внутри
Проект написан преимущественно на JavaScript (для интерфейса) и Shell-скриптах. Магия происходит в скрипте netswitch, который манипулирует цепочками iptables. Когда вы выбираете приложение в интерфейсе, модуль узнает его UID (уникальный идентификатор пользователя в Android) и добавляет правило, запрещающее этому UID любой сетевой трафик.
Интересный момент с поддержкой менеджеров рут-прав. Net Switch отлично дружит с современными KernelSU и APatch, у которых поддержка WebUI встроена «из коробки». С классическим Magisk чуть сложнее — сам менеджер Magisk перестал поддерживать WebUI для модулей. Чтобы зайти в настройки, придется поставить сторонний просмотрщик вроде MMRL или KsuWebUI. Это небольшое неудобство, но такова текущая политика топового рут-менеджера.
Практические сценарии
Зачем это может понадобиться разработчику или продвинутому пользователю?
Во-первых, безопасность. Если вы реверс-инжинирите подозрительную софтину или просто не доверяете свежему APK с форума, проще всего полностью отрезать ей связь.
Во-вторых, экономия ресурсов. Некоторые игры или утилиты постоянно подсасывают контент в фоне. Если у вас лимитированный тариф в поездке, net-switch поможет оставить в сети только мессенджеры и карты.
В-третьих, чистый терминал. Если вы привыкли работать через Termux, управлять доступом можно одной командой:
netswitch block com.example.app
Это быстрее, чем искать иконку в меню настроек.

Стоит ли ставить
Если у вас уже есть Root (Magisk, KernelSU или APatch) и вам надоело, что приложения живут своей сетевой жизнью, то net-switch — отличный выбор. Он легкий, не конфликтует с VPN и делает ровно то, что заявлено в описании.
Из минусов можно отметить разве что необходимость возиться со сторонними приложениями для доступа к интерфейсу в случае с Magisk. Но для тех, кто привык к кастомным прошивкам, это вряд ли станет преградой. Проект активно развивается, и автор оперативно правит баги в Telegram-канале.
Попробовать стоит хотя бы ради того, чтобы увидеть, как изящно можно управлять сетевым экраном без лишних надстроек над системой. Ссылка на загрузку находится в разделе Releases на GitHub проекта.
