Как настроить параметры прокси-сервера эмулятора 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. Также укажите имя пользователя и пароль, остальные поля оставьте пустыми.
krisDrOid
источник
Не работает с наиболее распространенным вариантом использования 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);
kuester2000
источник
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) и направляет их через настроенный прокси.

Гамма.X
источник
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 - серверы. То же самое с прокси-сервером и портом. Все, что работает в вашем браузере, должно быть помещено сюда.

Jerokdeep
источник
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

С уважением

usergo
источник
1

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

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

josch
источник
1

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

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
a_subscriber
источник
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"
user1981081
источник
Это устанавливает только настройки прокси для диспетчера 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 ""

ультраон
источник