Как VPN работает в Android и список доступных API? (леденец)

Ссылка:

В Android 4.0 есть API для создания VPN-сервисов.

  1. VPNService (Android Docs)
  2. VPNService.Builder (Android Docs)
  3. Реализация OpenVPN для Android от Арне Шавбе (github)

Одно из таких приложений со службой VPN - это NetMotion Mobility® (Google Play)

Начиная с версии "Lollipop", Android поставляется с новым типом VPN, который предоставляет информацию о состоянии VPN-соединения, проходят ли запросы через VPN и т. Д.

Результаты теста

(Подключен к VPN)

  1. Android < =5.0(Android Lollipop)
    1. Connection is successful with WIFI(Wlan) and Cellular(rmnet) interface IP’s.
    2. Подключение выполнено успешно с IP-адресом интерфейса VPN (tun), но события подключения / отключения VPN не происходят.
  2. Android > 5.0(Android Lollipop 5.1 and 6.0)
    1. Connection is not Successful with WIFI(Wlan) and Cellular(rmnet) interface IP’s.
    2. Подключение выполнено успешно с IP-адресом интерфейса VPN (tun), а также получены события подключения / отключения VPN.

IP-адрес интерфейса tun:  Локальный частный IP-адрес САЙТА ().

  1. ConnectivityManager # TYPE_VPN
  2. NetworkCapabilites # TRANSPORT_VPN
  3. NetworkCapabilities # NET_CAPABILITY_NOT_VPN

Указывает, что эта сеть не является VPN. Эта возможность установлена ​​по умолчанию и должна быть явно отключена для сетей VPN. Постоянное значение: 15 (0x0000000f)

Вопросов:

  1. Когда на устройстве активна служба VPN, как работают запросы от сторонних приложений, таких как WhatsApp, Skype или браузера?
  2. Что именно происходит со стеком IP-адресов устройства при подключении к VPN?
  3. Как работает VPN-туннелирование в Android?
  4. Как устроено приложение, которое привязывается к активному IP-адресу и отправляет запросы?
  5. API-интерфейсы VPN в Lollipop (5.0) нестабильны?
  6. Если bindProcessToNetwork выполняется через сеть Celluar и в устройстве подключен Wi-Fi, какую сеть будет использовать VPN?

person NitZRobotKoder    schedule 15.02.2016    source источник
comment
(кода нет. У меня есть вопросы) Вы используете класс VpnService? Есть ли у вас Vpn Server Side для согласования туннелей?   -  person Gary Y Kim    schedule 23.02.2016
comment
Служба vpn и согласование сервера выполняется этим приложением..NetMotion Mobility® - приложения для Android в Google Playhttps: //play.google.com/store/apps/details? id = com.nmwco.mobility.client & hl = en. когда это приложение активно, поведение моего приложения меняется, как описано выше.   -  person NitZRobotKoder    schedule 23.02.2016
comment
В таком случае вы регистрировали бесплатную пробную версию для VPN-сервера? netmotionwireless.com/free-vpn-trial   -  person Gary Y Kim    schedule 23.02.2016
comment
У моего пользователя приложения есть платная версия доступа к vpn клиенту и серверу .. как только vpn активен на клиенте, все запросы проходят через этот туннель на сервер vpn, а затем на фактические серверы приложений ..   -  person NitZRobotKoder    schedule 23.02.2016


Ответы (1)


Постараюсь ответить на несколько вопросов:

1. VPN не влияет на потоки других приложений - он просто «виртуально» помещает ваше устройство в другую сеть. Например частная сеть какой-то компании. Это означает, что все запросы, отправляемые через VPN-соединение, будут поступать в эту сеть, и все правила / фильтры, применяемые внутри этой сети, применяются к трафику, генерируемому телефоном, что может вызвать проблемы для сторонних приложений.

2. Настоящий IP-адрес, когда трафик проходит через VPN-соединение, заменяется IP-адресами VPN, назначенными VPN-сервером. Веб-серверы, к которым вы подключаетесь, не увидят ваш реальный IP-адрес; они увидят IP-адрес сетевого шлюза VPN, через который вы подключаетесь.

5. С Android 5.0 Lollipop клиенты VPN наконец-то могут предложить детальный контроль над тем, какие приложения обмениваются данными через защищенную сеть, а какие напрямую подключаются к Интернету. Может быть, это вызовет проблемы.

Для использования VPN API вы можете проверить этот проект: OpenVPN для Android

person j2ko    schedule 01.09.2016