Як налаштувати параметри проксі для емулятора Android


110

Я хочу використовувати браузер всередині емулятора 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 або іншого проксі-сервера на localhost .... можливо, додавання переадресації портів, але це теж біль
gcb

1
Він не працює на емуляторі Android 2.3.3, але працює на емуляторі 4.1.2.
azgolfer

24
Це більше не працює на android 5 images (api 21)
neomega

ця відповідь має бути прийнятою! Працює з Burpsuite на mac!
алхімік

це також працювало з Воллі! додали про всяк випадок, коли хтось похвалиться цим.
computingfreak

58

-http-проксі на Android-емуляторі

У налаштуваннях запуску> Додаток для Android> Додаток> Ціль> Додаткові параметри командного рядка емулятора: -http-proxy http: //xx.xxx.xx.xx: 8080


яка версія затемнення це? я не бачу цього інтерфейсу :(
Сальман фон Аббас

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

також налаштуйте емулятор
Badre

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

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

40

Зараз є налаштування в емуляторі Android введіть тут опис зображення



Працювали для мене. Моє оточення: MAC OS ambient + android emulator and parallels windows 7 with proxy fiddler
Arthur Menezes

7
Ця настройка ніколи не працювала для мене. Мені завжди доводиться запускати емулятор командою -http-proxy, щоб змусити його працювати.
gsingh2011

2
У цьому меню є повторювана помилка, яка змушує мене горіхи з середини 2017 року. Іноді це працює, іноді не на тому самому AVD. Тільки відновлення AVD могло б надійно допомогти. Часом проксі відпадає в середині сеансу! У корпоративному середовищі це означає, що мене виключають з мого рахунку через це лайно.
халксінат

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

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 / ...
Зар E Ahmer

9

В 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

Для налаштування проксі-сервера нам потрібно встановити APNSналаштування. Зробити це:

  1. Перейдіть до налаштування

  2. Перейти до бездротової мережі та мереж

  3. Перейти до мобільних мереж

  4. Перейдіть до назв точок доступу. Використовуйте меню, щоб додати нові apns

    Встановити проксі = localhost

    Встановіть Port = порт, який ви використовуєте для створення проксі-сервера, в моєму випадку це 8989

    Для встановлення імені та apn ось посилання:

    Відповідно до вашої simкартки ви можете побачити таблицю


"автентифікація через проксі-сервер виявилася невдалою" проксі-сервер не вимагає auth і ніколи не бачив запит відповідно до датчика tcp.
gcb

3

Мені не пощастило, поки я не спробував встановити змінну середовища http_proxy

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

"Якщо команда -http-proxy не надається, емулятор шукає змінну середовища http_proxy і автоматично використовує будь-яке значення, що відповідає формату, описаному вище."


3

Встановіть Proxifier у свій хост-комп'ютер. Налаштуйте проксіфікатор для використання вашого проксі . Вам більше не потрібно нічого робити. Ти будеш в порядку. Проксіфікатор захоплює дзвінки з системи (включаючи емулятор андроїда) і здійснює маршрутизацію через налаштований проксі.


3
Зауважте, що Proxifier - це комерційне програмне забезпечення, яке потрібно купувати.
Роберт

2

нічого з цього не працювало, я використовую затемнення на Windows 64-розрядних: виконайте наступні кроки ... це працювало для мене: Вікно -> Налаштування -> Android -> Запуск -> Параметри емулятора за замовчуванням -http-proxy = "http: / /10.1.8.30:8080 "

у вікні затемнення


2

Колись навіть після встановлення все це може не працювати. Я спробував усі подібні методи

  1. Встановлення проксі-сервера в Емуляторі APN
  2. Встановлення через налаштування затемнення -> Android -> Запуск

Нічого не працювало. Тоді я зробив наступне, що працювало миттєво.

Goto eclipse Run -> запустити конфігурації. У програмі Android ви можете побачити вашу програму. Тепер праворуч натисніть на вкладку Ціль. У розділі "Додаткові параметри командного рядка емулятора" додайте наступне.

-dns-сервер < DNS-сервери з вашої локальної машини до трьох > -http-proxy http: // < ваш проксі >: < ваш порт проксі >

Тут є те, що налаштування сервера DNS має відбуватися у вашій локальній системі. Підкажіть і запустіть cmd ipconfig для перевірки ваших DNS-серверів. Те саме з проксі-сервером та портом. Що б не працювало для вашого веб-переглядача, слід вказати тут.


2

Найпростіший спосіб - видалити APN за замовчуванням з емулятора (в моєму випадку - T-mobile) та створити новий APN з налаштуваннями проксі.

Примітка: я спробував усі параметри командного рядка, а також спробував встановити проксі-сервер для емуляторів APN за замовчуванням, але нічого не вийшло.


я боровся за це більше місяця, але нарешті змусив його працювати ... Завдяки @usergo його відповідь дав мені цю підказку
Mahesh

2

Залежно від того, яке середовище ви використовуєте для запуску емулятора, перевірте журнали, щоб побачити, як запускається емулятор. Шахта починається так:

C: \ Користувачі \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23

Потім ви додаєте параметр -http-proxy, в моєму випадку:

C: \ Користувачі \ 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

Якщо ви перебуваєте в проксі-середовищі, а Інтернет не працює в емуляторі, будь-ласка, не змінюйте жодних налаштувань емулятора. Перейдіть до проекту затемнення, клацніть правою кнопкою миші, натисніть «Запустити як», потім натисніть «Запустити конфігурацію». У спливаючому вікні виберіть "Ціль" і трохи прокрутіть униз, ви знайдете "Додаткові параметри командного рядка емулятора" Введіть тут свій проксі-параметр у "Додаткові параметри командного рядка емулятора", як я ввів

-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

Маючи андроїд-емулятор AVD:

  1. Відкрийте тренажер (".. \ android-sdk \ AVD Manager.exe")
  2. Перейдіть до Інструменти
  3. Перейдіть до Опції
  4. Налаштування проксі:

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

Потім натисніть кнопку «Закрити» у вікні та запустіть емулятор

---- Додано ... Тоді кроки Алекса працюють на моєму випадку:

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.