В Android API 29 появился VpnService.Builder.setHttpProxy, позволяющий прикрепить рекомендацию HTTP-прокси к VPN-сети. В существующей службе VPN, перед установкой настроенного интерфейса:

builder.setHttpProxy(
    ProxyInfo.buildDirectProxy("proxy.example", 8080));

Здесь builder — это VpnService.Builder службы, а ProxyInfo — android.net.ProxyInfo. Укажите хост и порт прокси по отдельности. Этот фрагмент добавляет сведения о прокси в builder, остальные параметры VPN которого уже настроены.

PAC-прокси не поддерживаются этим API. Создание ProxyInfo из PAC URI не превращает его в поддерживаемую конфигурацию VPN-прокси; используйте доступную прямую конечную точку HTTP-прокси. Для разрешённого публичного трафика список HTTP-прокси даёт кандидатов в хосты и порты, доступность которых нужно проверять с учётом схемы маршрутизации VPN.

Эта настройка носит рекомендательный характер. Приложения могут её игнорировать, поэтому она не гарантирует, что каждое соединение использует прокси. В разделённом туннеле приложения, следующие рекомендации, могут также пытаться отправлять HTTP-запросы к назначениям вне VPN через этот прокси. Такие приложения не различают две группы маршрутов при применении сведений о прокси. Проверьте доступность посредника в этой схеме маршрутизации, прежде чем считать настройку полной.

Похожие статьи