Как OpenVPN и т. Д. Создают VPN-соединение, если для этого нет Android API? - PullRequest
0 голосов
/ 25 февраля 2019

На SO уже есть много ответов, в которых утверждается, что вы не можете программно настроить профиль VPN на устройстве Android.API VpnService от Android позволяет использовать VPN только в вашем собственном приложении, и нет другого доступного API.

Как приложения, такие как OpenVPN для Android и т. Д., Достигают этого?Я могу настроить профиль через приложение OpenVPN, и другие приложения смогут использовать это соединение.

1 Ответ

0 голосов
/ 26 февраля 2019

Вы неправильно понимаете природу и назначение дескриптора дескриптора / файла, возвращаемого методом VpnService.Builder establish().Возможно, вы захотите прочитать описание API еще раз.

Суть его в том, что это дескриптор файла для устройства TUN, на которое Android направляет сетевой трафик из других приложений посредством политики маршрутизации (можно контролировать уязвимые приложения / трафик).через методы застройщика).Затем приложение может использовать файловый дескриптор, чтобы прочитать пакеты, отправленные другими приложениями, и, например, переслать их через соединение VPN (используя обычный сокет UDP / TCP).Возвращаемый трафик из VPN-подключения также может быть повторно введен в систему путем записи в файловый дескриптор устройства TUN.

...