Подтвердить что ты не робот

Конфигурация сети эмулятора Android

Итак, я настроил charles proxy для отслеживания трафика, выходящего из эмулятора Android.

Теперь, когда я открываю сайт в браузере Android, например: - google.com Я вижу google.com в прокси-сервере charles.

Но когда я открываю приложение (например, приложение instagram) в эмуляторе, и если приложение делает некоторые сетевые вызовы, я вижу ip-адреса на прокси-сервере charles, а не на доменных именах.

Из-за чего приложение дает мне ошибку, что-то пошло не так и т.д.

Может ли кто-нибудь сказать мне, как изменить конфигурацию dns для эмулятора Android, чтобы он отправлял имена узлов вместо IP-адресов?

Или любое другое решение этой проблемы.

Спасибо

4b9b3361

Ответ 1

Внутри вашего эмулятора - перейдите в настройки → сеть и Интернет → mobileNetwork → AccessPointNames. а затем выберите свою сеть для ее редактирования и установите IP и порт компьютера Charles.

Не забудьте открыть эмулятор с помощью poxy. эмулятор с прокси-сервером

Ответ 2

вы можете настроить прокси из командной строки с параметром -http-proxy при запуске эмулятора. В этом случае вы указываете информацию прокси в одном из следующих форматов:

http://<machineName>:<port>

или

http://<username>:<password>@<machineName>:<port>

Опция -http-proxy заставляет эмулятор использовать указанный прокси HTTP/HTTPS для всех исходящих TCP-соединений. Перенаправление для UDP в настоящее время не поддерживается.

В качестве альтернативы вы можете определить переменную среды http_proxy для значения, которое вы хотите использовать. В этом случае вам не нужно указывать значение в команде -http-proxy - эмулятор проверяет значение переменной среды http_proxy при запуске и автоматически использует свое значение, если определено.

Вы можете использовать опцию -debug-proxy для диагностики проблем с прокси-соединением.

Более подробную информацию об этой теме вы можете найти здесь:

https://developer.android.com/studio/run/emulator-networking.html

Ответ 3

Невозможно изменить конфигурацию dns эмулятора android, который может получить имена хостов вместо IP-адресов, единственный вариант использования прокси-сервера - объяснить другие SO-потоки здесь.

Я уверен, что пакеты идут от instagram и/или, возможно, они используют какой-то брандмауэр для целей безопасности.

Ответ 4

Это невозможно с эмулятором, но вы можете использовать GENYMOTION. Genymotion - очень хороший инструмент для использования онлайн-эмулятора.

введите описание изображения здесь

Вы можете установить прокси-сервер в настройке- > сети.

введите описание изображения здесь

попробуйте это. Надеюсь, это поможет вам.

Ответ 5

Для пользователя Linux

Мы не сможем использовать эмулятор, запущенный из студии Android Мы должны запустить эмулятор с терминала с помощью этих двух команд

Сначала перейдите в android sdk tools dir

$ cd /home/..../Android/Sdk/tools

Запустите свой эмулятор, используя этот cmd

./emulator -avd Эмулятор_имя -http-proxy http:// Ur ip-адрес: порт/

Эмулятор_имя: откройте второй столбец AVD Manager, вы получите имена эмуляторов, затем вам нужно заменить пробелы между именами с помощью подчеркивания

как API-интерфейс Nexus 5 22 Nexus_5_API_22

Например: $ ./emulator -avd Nexus_5_API_22 -http-proxy http://12.1.0.222:8888/

Ответ 6

Вы можете использовать команду ping для получения IP-адреса.