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 인터넷을 클릭하십시오.
  7. 액세스 포인트 편집 섹션에서 "프록시"및 "포트"를 입력합니다.
  8. 사용자 이름과 암호도 제공하고 나머지 필드는 비워 둡니다.

하지 않습니다 아마 포트 포워딩을 추가 .... Fiddler2 또는 로컬 호스트에있는 다른 프록시를 실행하는 가장 일반적인 사용 사례와 작동하지만 그 고통 너무
GCB

1
Android 에뮬레이터 2.3.3에서는 작동하지 않지만 에뮬레이터 4.1.2에서는 작동합니다.
azgolfer

24
Android 5 이미지 (api 21)에서는 더 이상 작동하지 않습니다.
neomega

이 대답은 받아 들여 져야합니다! Mac에서 Burpsuite와 함께 작동합니다!
연금술사

이것은 또한 Volley와 함께 작동했습니다! 누군가가 그것을 찌르는 경우를 대비하여 추가되었습니다.
computingfreak

58

-Android 에뮬레이터의 http-proxy

실행 구성> Android 애플리케이션> 앱> 대상> 추가 에뮬레이터 명령 줄 옵션 : -http-proxy http : //xx.xxx.xx.xx : 8080


이클립스 버전은 무엇입니까? 나는이 인터페이스 :( 표시되지 않습니다
살만 폰 압바스

1
아래로 스크롤 했습니까?
Darpan

에뮬레이터도 구성하십시오.
Badre

3
사용자 이름과 암호가있는 프록시의 경우 다음 형식을 사용하십시오.-http-proxy http://username:password@host:port
ashakirov

emulator is not recognized as a command내 경우 에 오류 가 있습니다. PATH 변수에 아무것도 추가해야합니까 ??. Android Studio 1.0.1을 사용하고 있으며 사무실 시스템에 프록시가 있습니다.
Anil Bhaskar 2015

40

이제 Android 에뮬레이터에 설정이 있습니다. 여기에 이미지 설명 입력



나를 위해 일했습니다. 내 주위 : MAC OS 주위 + 안드로이드 에뮬레이터와 평행 윈도우 7 피들러 프록시와
아서 메네 제스

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
String PROXY에 "127.0.0.1"을 입력하면 안됩니다.
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

여기에 이미지 설명 입력

그게 다야.

PC IP를 사용하려면 다음 명령을 사용하십시오.

  • -http-proxy "$(ipconfig getifaddr en0)":8888 MacOS에서
  • -http-proxy "$(hostname -i)":8888 Linux에서

4

프록시 서버를 설정하려면 설정을해야 APNS합니다. 이것을하기 위해:

  1. 설정으로 이동

  2. 무선 및 네트워크로 이동

  3. 모바일 네트워크로 이동

  4. 액세스 포인트 이름으로 이동합니다. 메뉴를 사용하여 새 APN 추가

    프록시 설정 = localhost

    Set Port = 프록시 서버를 만드는 데 사용하는 포트, 제 경우에는 8989입니다.

    이름과 apn을 설정하려면 여기에 링크가 있습니다.

    당신에 따르면 sim카드는 테이블을 볼 수 있습니다


"프록시 서버를 통한 인증에 실패했습니다."프록시는 인증을 요구하지 않으며 tcp 덤프에 따른 요청을 보지 못했습니다.
gcb 2013-08-30



2

그 중 아무것도 작동하지 않았습니다 .Windows 64 비트에서 이클립스를 사용하고 있습니다 : 다음 단계를 수행하십시오 ... 나를 위해 일했습니다 : 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 애플리케이션에서 애플리케이션을 볼 수 있습니다. 이제 오른쪽에서 대상 탭을 클릭하십시오. 'Additional Emulator Command line options'에서 다음을 추가합니다.

-dns-server < 로컬 컴퓨터의 DNS 서버 최대 3 개 > -http-proxy http : // < 프록시 > : < 프록시 포트 >

여기서 문제는 DNS 서버 설정이 로컬 시스템에서 가져와야한다는 것입니다. 고토 cmd를 프롬프트를 실행 ipconfig를이 DNS 서버를 확인합니다. 프록시 서버 및 포트와 동일합니다. 브라우저에서 작동하는 것이 무엇이든 여기에 입력해야합니다.


2

가장 쉬운 방법은 에뮬레이터 (내 경우에는 T- 모바일)에서 기본 APN을 삭제하고 프록시 설정으로 새 APN을 만드는 것입니다.

참고 : 모든 명령 줄 옵션을 시도하고 에뮬레이터 기본 APN에 대한 프록시 설정을 시도했지만 아무것도 작동하지 않았습니다.


내가 그의 대답을 @usergo하는 ... 감사 작업을 얻었다 마지막으로이 달 이상을 위해 애 쓰고 있지만되었다 저에게이 단서 준
마헤

2

에뮬레이터를 실행하는 데 사용하는 환경에 따라 로그를 확인하여 에뮬레이터가 시작되는 방법을 확인하십시오. 광산은 다음과 같이 시작됩니다.

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

그런 다음 제 경우에는 -http-proxy 옵션을 추가합니다.

C : \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay 없음 -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 장치에서 프록시 호스트 10.0.2.2 및 포트 3128 10.0.2.2가있는 새 APN을 설정하면 호스트 루프백 인터페이스에 대한 특수 별칭입니다 (개발 컴퓨터의 경우 127.0.0.1).

또한 참조 http://developer.android.com/tools/devices/emulator.html#emulatornetworking

문안 인사


1

주소가 192.168.1.2가 아니라 168.192.1.2입니까?

스왑 된 처음 두 숫자를 확인합니다.


1

콘솔에서 다음 명령을 시작하십시오.

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

0

AVD Android 에뮬레이터가있는 경우 :

  1. 시뮬레이터 ( ".. \ android-sdk \ AVD Manager.exe")를 엽니 다.
  2. 도구로 이동
  3. 옵션으로 이동
  4. 프록시 설정 :

첫 번째 필드 (HTTP 프록시 서버)에서 프록시 (XXX.XXX.XXX.XXX)가있는 IP 주소 만 두 번째 필드에 설정합니다 (예 : 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 관리자의 프록시 설정 만 설정합니다.
Brad

0

앱에서 프록시를 설정할 수 있습니다. 설정 클래스를 사용하여 수행 할 수 있습니다. 예를 들어 "onCreate"메소드에 다음 행을 추가 할 수 있습니다.

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

프록시 설정을 변경하려면 AndroidManifest.xml 파일에 android.permission.WRITE_SETTINGS 권한이 있어야합니다.


0

일부 leanback(TV) 에뮬레이터의 경우 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 ""

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.