WireGuard и AmneziaWG с автозапуском по Wi-Fi: скачать WG Tunnel на Android
Идея клиента родилась из бытовой неприятности: на разных сетях VPN приходилось вручную включать и выключать. Дома он не нужен, в кафе обязателен, на мобильном интернете зависит от оператора. Отсюда автотуннель, который срабатывает по имени Wi-Fi, Ethernet или мобильным данным. Сразу оговорка: серверов внутри нет, это только клиент. Без своего конфига подключаться не к чему.
Лучше всего болевые точки видны в журнале изменений. Правки по автотуннелю идут почти в каждом релизе: на проблемных OEM-прошивках, в Android Auto, при мигающем captive-портале, при убийстве службы системой. В 5.7.4 чинили запуск туннеля на 32-битных Android TV и DNS-утечку. В Google Play разработчик отвечает на жалобу о проблемах с переключением IPv4/IPv6 и восстановлением соединения. Эти правки показывают, где пользователи спотыкаются чаще всего.
Мой вывод: основной риск не в самом туннеле, а в автотуннеле на нестандартных прошивках. Если у вас оболочка с агрессивным энергосбережением, проверьте автозапуск на своей сети до того, как полагаться на него.
Что такое WG Tunnel
Приложение принимает готовый конфиг четырьмя способами: файл .conf, zip-архив, ручной ввод или QR-код. Дальше начинается то, что отличает его от штатного клиента.
Два движка. WireGuard работает в режиме ядра и в режиме userspace. Ядерный режим обычно требует поддержки модуля в ядре и root. AmneziaWG на Android работает только в userspace, режима ядра для него нет. AmneziaWG добавляет обфускацию сигнатур пакетов, чтобы системы DPI не распознавали WireGuard-трафик. Есть ловушка: если в конфиге нет дополнительных параметров Amnezia, обфускация не применяется, и туннель ведёт себя как обычный WireGuard. Поддерживаются версии AmneziaWG от 2.0 до 3.1.
Автотуннель. Приложение включает нужный туннель по Wi-Fi SSID, Ethernet или мобильным данным и поднимает его после перезагрузки. Следит за рукопожатием в реальном времени. Бета-опция перезапускает туннель при сбое пинга.
Lockdown Mode. Встроенный kill switch блокирует весь трафик, пока туннель лежит.
Локальный прокси. Туннель можно открыть как локальный SOCKS5 или HTTP-прокси для браузера или файервола вроде AdGuard.
DNS. Запросы идут через туннель обычным DNS, DoT или DoH, с разбиением по суффиксу домена.
Особенности версии
Как установить WG Tunnel
- Сначала запаситесь конфигом. У приложения нет своих серверов: понадобится свой WireGuard или AmneziaWG-сервер, либо готовый конфиг от провайдера. Без него после установки останется пустой список туннелей.
- Файл скачивается с этой страницы. Android попросит разрешение на установку из неизвестных источников для браузера или файлового менеджера, дайте его и подтвердите установку.
- Дальше импортируйте конфиг: QR-код проще всего. Android спросит разрешение на создание VPN-соединения, оно обязательно. Для автотуннеля по SSID включите геолокацию и выдайте приложению разрешение на неё: так Android разрешает читать имя сети. Добавьте приложение в исключения из оптимизации батареи.
- Если нужен AmneziaWG, откройте настройки туннеля (долгое нажатие, шестерёнка), нажмите редактирование и выберите Amnezia: общие параметры подтянутся сами, останется заполнить Amnezia-поля.
- На Android TV импорт идёт через файловый выбор, а в 5.8.0 исправили неверные MIME-типы при импорте и экспорте. На 32-битных приставках сборки старше 5.7.4 не запускали туннель, поэтому ниже 5.7.4 ставить не стоит.
Частые вопросы
Что такое WG Tunnel и нужен ли свой сервер?
Чем AmneziaWG отличается от WireGuard и когда он нужен?
Как настроить автоподключение по Wi-Fi?
Что делает Lockdown Mode?
Нужен ли root для kernel-режима WireGuard?
Безопасность и риски
Исходный код открыт под лицензией MIT, и сборку можно сверить по подписи, как описано выше. Но безопасность туннеля определяет ваш сервер, а не клиент: приложение лишь передаёт трафик на то, что вы указали.
Из реальных рисков:
- До версии 5.7.4 была гонка DNS, из-за которой при пользовательском DNS мог случиться DNS-утечка. В 5.8.0 она закрыта, но в старых сборках она есть.
- Автотуннель для SSID требует разрешения на геолокацию. Android привязывает чтение имени сети именно к нему.
- Lockdown Mode при падении туннеля режет весь интернет. Это защита, но и повод не включать его на сервере, которому не доверяете.
- Ядерный режим WireGuard обычно требует root и работает не на каждом устройстве.
- Тем, кому нужен VPN «нажал и работает», такой клиент избыточен: настройки сложнее, чем у однокнопочных приложений.
Для тех, у кого свой сервер, клиент даёт то, чего не хватает штатному приложению: автоматику по сети, kill switch, прокси и обфускацию против DPI. В 5.8.0 к этому добавились multihop и группы. Расплата за гибкость: порог входа выше, без своего сервера он бесполезен, а ядерный режим капризен. Для обычного пользователя без сервера проще подобрать однокнопочный VPN. Тем, кто поднимал WireGuard сам и хочет управлять им на телефоне, клиент подходит.
- Динамическая тема AMOLED
- Пинг серверов с главного экрана при отсутствии активного туннеля.
- Исправлены ошибки при импорте файлов на Android TV.
- Исправлены ошибки, связанные с изменениями конфигурации разделенного туннеля.
- Исправлены ошибки в процессе резервного копирования/восстановления, добавлена поддержка ТВ.
- Различные другие незначительные улучшения и исправления