Конфигурация сети эмулятора Android
Итак, я настроил charles proxy для отслеживания трафика, выходящего из эмулятора Android.
Теперь, когда я открываю сайт в браузере Android, например: - google.com Я вижу google.com в прокси-сервере charles.
Но когда я открываю приложение (например, приложение instagram) в эмуляторе, и если приложение делает некоторые сетевые вызовы, я вижу ip-адреса на прокси-сервере charles, а не на доменных именах.
Из-за чего приложение дает мне ошибку, что-то пошло не так и т.д.
Может ли кто-нибудь сказать мне, как изменить конфигурацию dns для эмулятора Android, чтобы он отправлял имена узлов вместо IP-адресов?
Или любое другое решение этой проблемы.
Спасибо
Ответы
Ответ 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-адреса.