Ссылка:
В 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)
- Connection is successful with WIFI(Wlan) and Cellular(rmnet) interface IP’s.
- Подключение выполнено успешно с IP-адресом интерфейса VPN (tun), но события подключения / отключения VPN не происходят.
- Android > 5.0(Android Lollipop 5.1 and 6.0)
- Connection is not Successful with WIFI(Wlan) and Cellular(rmnet) interface IP’s.
- Подключение выполнено успешно с IP-адресом интерфейса VPN (tun), а также получены события подключения / отключения VPN.
- ConnectivityManager # TYPE_VPN
- NetworkCapabilites # TRANSPORT_VPN
- NetworkCapabilities # NET_CAPABILITY_NOT_VPN
Указывает, что эта сеть не является VPN. Эта возможность установлена по умолчанию и должна быть явно отключена для сетей VPN. Постоянное значение: 15 (0x0000000f)
Вопросов:
- Когда на устройстве активна служба VPN, как работают запросы от сторонних приложений, таких как WhatsApp, Skype или браузера?
- Что именно происходит со стеком IP-адресов устройства при подключении к VPN?
- Как работает VPN-туннелирование в Android?
- Как устроено приложение, которое привязывается к активному IP-адресу и отправляет запросы?
- API-интерфейсы VPN в Lollipop (5.0) нестабильны?
- Если bindProcessToNetwork выполняется через сеть Celluar и в устройстве подключен Wi-Fi, какую сеть будет использовать VPN?