Настройка прокси с помощью эмулятора Android

В эмуляторе Android можно использовать прокси-сервер для отладки трафика приложений или для доступа к интернету из-за корпоративного брандмауэра. Эмулятор предлагает два различных механизма прокси для поддержки этих различных сценариев использования: системный прокси Android и прокси эмулятора.

Выбор подходящего прокси-сервера

Перед настройкой прокси важно понимать два варианта его использования. Системный прокси Android предназначен для проверки трафика приложений, а прокси эмулятора — для обхода сетевых ограничений. Эти два прокси являются взаимоисключающими; одновременно можно включить только один.

Особенность Системный прокси Android Прокси-эмулятор
Основной вариант использования Отладка приложений Обход брандмауэра
Операционный уровень Сетевой уровень Уровень приложения
Конфигурация Интерфейс настроек Wi-Fi в системе Android Расширенные элементы управления эмулятора (UI) или
-Флаг -http-proxy .
Отладка HTTPS Да — позволяет использовать такие инструменты, как Charles Proxy.
перехват трафика при наличии сертификата
установлено.
Нет — создает TCP-туннель, предотвращая
Проверка SSL.
Обрабатывает протоколы, отличные от HTTP/HTTPS.
Трафик
Нет — в основном обрабатывает только HTTP и
HTTPS-трафик.
Да — перенаправляет весь TCP-трафик.

Пример использования 1: Отладка приложения с помощью системного прокси Android.

Для отладки сетевого трафика вашего приложения, например, для проверки HTTPS-запросов с помощью такого инструмента, как Charles Proxy, следует использовать Android System Proxy .

Этот прокси-сервер работает на уровне приложений в операционной системе Android. Он позволяет инструментам отладки перехватывать и анализировать трафик, но для этого требуется установка необходимых сертификатов безопасности на эмулируемом устройстве.

Настройка системного прокси Android

Конфигурация

Настроить системный прокси-сервер Android можно двумя способами:

  1. Ручная настройка : В эмуляторе перейдите в Настройки > Сеть и Интернет > Wi-Fi , выберите свою сеть и вручную введите параметры прокси.
  2. Автоматическая настройка : Вы можете программно настроить системный прокси-сервер Android. Это делается путем создания инструментального теста, использующего фреймворк автоматизации пользовательского интерфейса, например UI Automator , для открытия приложения «Настройки» Android и применения конфигурации прокси-сервера без ручного вмешательства.

Вариант использования 2: Обход корпоративных брандмауэров с помощью эмулятора-прокси

Во многих корпоративных сетях прямые подключения к интернету отклоняются сетевыми администраторами и должны проходить через специальный прокси-сервер. Для доступа к внешним ресурсам из такой ограниченной сети следует использовать эмулятор прокси .

Этот механизм работает на более низком сетевом уровне и направляет весь TCP-трафик эмулируемого устройства через указанный прокси-сервер, что делает его идеальным для обхода брандмауэра. Он прозрачно переписывает HTTP-запросы от виртуального устройства перед отправкой их на прокси-сервер, обеспечивая их корректную работу.

Конфигурация

При использовании эмулятора в Android Studio вы можете настроить прокси-сервер с помощью параметров в меню Android Studio ( Settings > Appearance & Behavior > System Settings > HTTP Proxy ). Более подробную информацию можно найти в разделе «Настройка прокси-сервера Android Studio» в документации Android Studio.

При использовании эмулятора в автономном режиме ( вне Android Studio ) вы можете настроить прокси-сервер эмулятора одним из следующих способов:

  1. Флаг командной строки : Запустите эмулятор из командной строки с флагом -http-proxy <proxy> . Информация <proxy> может быть указана в формате http://<machineName>:<port> или http://<username>:<password>@<machineName>:<port> .

    emulator -http-proxy http://<machineName>:<port>
    

    или

    emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>
    
  2. Переменная среды : Определите переменную среды http_proxy с настройками прокси-сервера. Эмулятор проверяет наличие этой переменной при запуске и автоматически использует её значение, если она определена.

  3. Расширенные настройки : Откройте расширенные настройки эмулятора, перейдите в «Настройки» > «Прокси» и вручную введите конфигурацию HTTP-прокси. Эмулятор сохранит эти настройки для устройства и восстановит их при перезагрузке.

    Настройка прокси-сервера эмулятора

Эмулятор-прокси работает на сетевом уровне. Он туннелирует HTTPS-трафик через TCP, но этот трафик пересылается без расшифровки, что препятствует проверке HTTPS-трафика. Эмулятор-прокси не поддерживает перенаправление UDP.

Взаимодействие с Android Studio

В Android Studio есть собственное диалоговое окно настройки прокси для загрузки обновлений и библиотек. При запуске эмулятора из Android Studio он один раз считывает настройки прокси IDE для заполнения конфигурации прокси эмулятора . Однако эти настройки не влияют на системный прокси Android .