Как настроить параметры прокси-сервера эмулятора Android


111

Я хочу использовать браузер в эмуляторе Android, и я хочу использовать настройки прокси на своей машине. Как я могу это настроить?

Читая очень хорошие руководства по Android, они говорят мне, что я должен запустить Android с помощью следующей команды:

emulator -avd myavd -http-proxy http://168.192.1.2:3300

Но я все еще не могу использовать браузер-эмулятор. Обратите внимание, что я использую IP-адрес для своего прокси-сервера.

Что я делаю не так?

Ответы:


147

Самый простой и лучший способ - сделать следующее: Это сделано для Android Emulator 2.2.

  1. Нажмите на меню
  2. Нажмите на Настройки
  3. Нажмите "Беспроводные сети".
  4. Перейти в мобильные сети
  5. Перейти к именам точек доступа
  6. Здесь вы попадете в Telkila Internet, щелкните по нему.
  7. В разделе «Изменить точку доступа» введите «прокси» и «порт».
  8. Также укажите имя пользователя и пароль, остальные поля оставьте пустыми.

Не работает с наиболее распространенным вариантом использования Fiddler2 или другого прокси на локальном хосте .... возможно, добавление переадресации портов, но это тоже
проблема

1
Он не работает на эмуляторе Android 2.3.3, но у меня работает на эмуляторе 4.1.2.
azgolfer

24
Это больше не работает с изображениями android 5 (api 21)
neomega

этот ответ должен быть принятым! Работает с Burpsuite на Mac!
алхимик

это также работало с Volley! добавлен на всякий случай, если кто-то это понял.
computingfreak

58

-http-proxy в эмуляторе Android

Конфигурация при запуске> Приложение Android> Приложение> Цель> Дополнительные параметры командной строки эмулятора: -http-proxy http: //xx.xxx.xx.xx: 8080


какая это версия затмения? я не вижу этого интерфейса :(
Салман фон Аббас

1
Вы прокручивали вниз?
Darpan

также настройте свой эмулятор
Бадре

3
для прокси с логином и паролем используйте этот формат:-http-proxy http://username:password@host:port
ashakirov 01

ошибка emulator is not recognized as a commandв моем случае .. мне нужно добавить что-нибудь в переменную PATH ??. Я использую Android Studio 1.0.1 и использую прокси в моей офисной системе.
Анил Бхаскар,

40

Теперь в эмуляторе Android есть настройка введите описание изображения здесь



Работал у меня. Мое окружение: MAC OS ambient + эмулятор Android и параллельный Windows 7 с прокси-сервером Fiddler
Артур Менезес,

7
Этот параметр никогда не работал у меня. Мне всегда нужно запускать эмулятор с помощью команды -http-proxy, чтобы заставить его работать.
gsingh2011

2
В этом меню есть повторяющаяся ошибка, которая сводит меня с ума с середины 2017 года. Иногда это работает, иногда не на том же AVD. Только воссоздание AVD могло надежно помочь. Иногда прокси отваливается посреди сеанса! В корпоративной среде это означает, что моя учетная запись заблокирована из-за этого дерьма.
halxinate

Хотя, похоже, я нашел решение на данный момент: настройка этой поддельной точки доступа Wi-Fi, как указано выше, для использования прокси-сервера, помогает, даже если мой прокси требует аутентификации, которой эта конфигурация точки доступа вообще не имеет. Просто URL и порт помогли немедленно восстановить потерянное соединение.
halxinate

20

Я попытался удалить http в имени сервера, и у меня это сработало.

emulator -avd myavd -http-proxy 168.192.1.2:3300


Это работает только для браузера, но ни один запрос приложения не проходит через прокси :(
Фелипе Сабино,

14

Это не поможет браузеру, но вы также можете определить прокси в своем коде для использования с HTTP-клиентом:

// proxy
private static final String PROXY = "123.123.123.123";
// proxy host
private static final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080);
HttpParams httpParameters = new BasicHttpParams();
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);

1
Вы не должны ставить "127.0.0.1" для String PROXY.
Michaël

kuester2000 взгляните на мой вопрос здесь stackoverflow.com/questions/31723494/…
AndroidGeek

10

В Android Studio:

Нажмите "Изменить конфигурацию" в меню приложения.

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

  1. Перейдите в приложение или приложение Android (по умолчанию)
  2. нажмите на отладчик
  3. Нажмите на команду запуска LLDB
  4. Нажмите +
  5. Добавить свою команду -http-proxy http://168.192.1.2:3300

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

вот и все.

Другие интересные вещи, если вы хотите использовать IP-адрес своего ПК, используйте эту команду:

  • -http-proxy "$(ipconfig getifaddr en0)":8888 на MacOS
  • -http-proxy "$(hostname -i)":8888 в Linux

4

Для настройки прокси-сервера нам нужно установить APNSsettings. Сделать это:

  1. Перейти к настройке

  2. Перейти к беспроводной сети и сети

  3. Перейти в мобильные сети

  4. Перейдите к именам точек доступа. Используйте меню для добавления новых apns

    Установите Proxy = localhost

    Установите Port = порт, который вы используете для создания прокси-сервера, в моем случае это 8989

    Для настройки имени и apn вот ссылка:

    По вашей simкарте вы можете увидеть таблицу


"аутентификация через прокси-сервер не удалась" прокси не требует аутентификации и никогда не видел никаких запросов согласно дампу tcp.
gcb

3

Мне не повезло, пока я не попытался установить переменную среды http_proxy

http://developer.android.com/tools/help/emulator.html

«Если команда -http-proxy не указана, эмулятор ищет переменную среды http_proxy и автоматически использует любое значение, соответствующее формату, описанному выше».


3

Установите Proxifier на свой хост-компьютер. Настройте прокси-сервер для использования вашего прокси . Больше ничего делать не нужно. У тебя все будет отлично. Проксификатор перехватывает вызовы из системы (включая эмулятор Android) и направляет их через настроенный прокси.


3
Обратите внимание, что Proxifier - это коммерческое программное обеспечение, которое необходимо покупать.
Роберт

2

Ничего из этого не сработало. Я использую eclipse в 64-разрядной версии Windows: выполните следующие шаги ... у меня это сработало: Window -> Preferences -> Android -> Launch -> Default Emulator Options -http-proxy = "http: / /10.1.8.30:8080 "

в вашем окне затмения


2

Иногда даже после настройки все может не работать. Я перепробовал все методы вроде

  1. Настройка прокси в эмуляторе APN
  2. Установка его через настройки eclipse -> Android -> Launch

Ничего не получилось. Затем я сделал следующее, что сработало мгновенно.

Перейти к eclipse Run -> запустить конфигурации. В разделе «Приложения для Android» вы можете увидеть свое приложение. Теперь с правой стороны щелкните вкладку Target. В разделе «Дополнительные параметры командной строки эмулятора» добавьте следующее.

-dns-server < DNS-серверы с вашего локального компьютера до трех > -http-proxy http: // < ваш прокси >: < порт вашего прокси >

Уловка здесь в том, что настройка DNS-сервера должна быть из вашей локальной системы. Goto CMD проворная и запустить IPCONFIG проверить DNS - серверы. То же самое с прокси-сервером и портом. Все, что работает в вашем браузере, должно быть помещено сюда.


2

Самый простой способ - удалить APN по умолчанию из эмулятора (в моем случае это T-mobile) и создать новый APN с настройками прокси.

Примечание: я перепробовал все параметры командной строки, а также попытался установить прокси для APN эмуляторов по умолчанию, но ничего не сработало.


Я боролся за это больше месяца, но, наконец, он заработал ... Благодаря @usergo его ответ дал мне эту подсказку
Махеш

2

В зависимости от того, какую среду вы используете для запуска эмулятора, проверьте журналы, чтобы узнать, как запускается эмулятор. Мой запускается как:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23

Затем вы добавляете параметр -http-proxy, в моем случае:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23 -http-proxy 192.168.0.22:8888


1

Если вы находитесь в среде прокси и в вашем эмуляторе не работает Интернет, пожалуйста, не меняйте никаких настроек в эмуляторе. Перейдите в свой проект eclipse, щелкните правой кнопкой мыши, щелкните «Запуск от имени», затем щелкните «Выполнить конфигурацию». Во всплывающем окне выберите «Цель» и прокрутите немного вниз, вы найдете «Дополнительные параметры командной строки эмулятора». Введите настройки прокси здесь в «Дополнительные параметры командной строки эмулятора», как я ввел.

-http-proxy http: // ee11s040: Om1l2ng3d4n2! 08@hproxy.iitm.ac.in: 3128

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

Затем запустите новый эмулятор.


1

лучший способ настроить корпоративный прокси с аутентификацией ntlm - использовать cntlm:

http://cntlm.sourceforge.net/

Установите и настройте в C: \ Program Files \ Cntlm \ cntlm.ini По умолчанию cntlm слушает 127.0.0.1:3128

В устройстве Android установите новый APN с прокси-хостом 10.0.2.2, а порт 3128 10.0.2.2 - это специальный псевдоним для интерфейса обратной петли вашего хоста (127.0.0.1 на вашей машине разработки)

см. также http://developer.android.com/tools/devices/emulator.html#emulatornetworking

С уважением


1

Вы уверены, что ваш адрес 168.192.1.2, а не 192.168.1.2?

Обратите внимание на поменяемые местами первые два числа.


1

В консоли запустите следующую команду:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

0

Наличие эмулятора Android AVD:

  1. Откройте симулятор (".. \ android-sdk \ AVD Manager.exe")
  2. Перейти к инструментам
  3. Перейти к параметрам
  4. В настройках прокси:

В первом поле (HTTP Proxy Server) укажите только IP-адрес, на котором находится ваш прокси (XXX.XXX.XXX.XXX), во втором поле установите порт вашего прокси (пример: 8080)

Затем нажмите Закрыть в окне и запустите эмулятор.

---- Добавлено ... Тогда шаги alex работают в моем случае:

Click on Menu
Click on Settings
Click on Wireless & Networks
Go to Mobile Networks
Go to Access Point Names
Here you will Telkila Internet (or other name), click on it.
In the Edit access point section, input the "proxy" and "port"

Это устанавливает только настройки прокси для диспетчера SDK для загрузки файлов SDK.
Брэд

0

Вы можете установить прокси в своем приложении. Это можно сделать с помощью класса настроек. Например, вы можете добавить следующую строку в свой метод onCreate.

 Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080"); 

Чтобы изменить настройки прокси, у вас должно быть разрешение android.permission.WRITE_SETTINGS в вашем файле AndroidManifest.xml.


0

Для некоторых leanback(ТВ) эмуляторов вы можете использовать cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - это порт прокси на локальной машине (хосте), поэтому на локальной машине http прокси будет 127.0.0.1:8888

Чтобы удалить прокси (запустить последовательно в строке cmd):

adb shell settings delete global http_proxy

adb shell settings put global global_http_proxy_host ""

adb shell settings put global global_http_proxy_port ""

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.