Справка:
Android 4.0 имеет API для создания VPN-сервисов.
- VPNService (Android Docs)
- VPNService.Builder(Android Docs)
- Арне Шовбе Внедрение OpenVPN для Android (github)
Одним из таких приложений с услугой VPN является NetMotion Mobility® (Google Play)
Начиная с версии "Lollipop", Android поставляется с новым типом VPN, который предоставляет информацию о состоянии VPN-подключения, передаются ли запросы через VPN и т.д.
Результаты испытаний
(подключен к VPN)
- Android <= 5.0 (Android Lollipop)
- Соединение выполняется с IP-интерфейсами WIFI (Wlan) и сотовой (rmnet).
- Соединение выполняется с IP-адресом VPN (туннеля), но не получает подключенных/отключенных событий VPN.
- Android > 5.0 (Android Lollipop 5.1 и 6.0)
- Соединение не Успешно с IP-интерфейсами WIFI (Wlan) и сотового (rmnet).
- Соединение выполняется с IP-адресом интерфейса VPN (туннеля), а также с подключенными/отключенными событиями VPN.
- ConnectivityManager # TYPE_VPN
- NetworkCapabilites # TRANSPORT_VPN
- NetworkCapabilities # NET_CAPABILITY_NOT_VPN
Указывает, что эта сеть не является VPN. Эта возможность устанавливается по умолчанию и должен быть явно очищен для сетей VPN. постоянная Значение: 15 (0x0000000f)
Вопросы:
- Когда служба VPN активна на устройстве, как запросы работают от сторонних приложений, таких как WhatsApp, Skype или браузер?
- Когда VPN подключен, что именно происходит с IP-стеком устройства?
- Как работает туннелирование VPN в Android?
- Что представляет собой приложение для приложения, которое связывается с активным IP-адресом и отправляет запросы?
- Являются ли API VPN в леденец (5.0) нестабильными?
- Если bindProcessToNetwork выполняется через сеть Celluar, а WiFi подключен к устройству, какая сеть будет использовать VPN?