2015-12-23 75 views
27

Tak więc skonfigurowałem charles proxy do monitorowania ruchu wychodzącego z emulatora Androida.Konfiguracja sieci emulatora Androida

Teraz, gdy otwieram stronę internetową w przeglądarce Android Na przykład: - google.com Widzę google.com w proxy charles.

Ale kiedy otwieram aplikację (na przykład aplikacja Instagram) w emulatorze i jeśli aplikacja wykonuje niektóre połączenia sieciowe, widzę adresy IP w charles proxy, a nie w nazwach domen.

których Ponieważ aplikacja daje mi błąd coś poszło nie tak itp

Czy ktoś może mi powiedzieć jak zmienić configs DNS android emulator tak, że wysyła hostów zamiast adresów IP?

Lub jakiekolwiek inne rozwiązanie tego problemu.

Dzięki

+0

Czy Twój android emulator działa na Linux czy Windows? Przegląda /etc/resolv.conf na Linuksie, możesz również użyć -dns-server xx.xx.xx.xx w linii poleceń, aby ustawić to ręcznie. Czy wyświetla komunikat ostrzegawczy, że nie może znaleźć serwera DNS? Czy pakiety z adresami IP pochodzą z aplikacji takich jak Instagram czy cokolwiek innego? – ozborn

+0

@ozborn Używam mac. Jestem pewien, że pakiety pochodzą z instagrama i próbowałem też skonfigurować inne serwery dns (8.8.8.8) bez żadnego sukcesu. Czy przez przypadek wiesz, jak działa sieć w emulatorze Androida? Ponieważ, gdy próbuję uzyskać dostęp do stron z przeglądarki Android, mogę wyświetlać nazwy hostów w monitoringu proxy charles. Ale kiedy używam adresów IP aplikacji pojawiają się. – azero0

+0

Wiem, jak działa DNS i praca w sieci, ale od pewnego czasu nie działał emulator Androida. Nie jestem pewien, czy DNS jest nawet problemem, czy też spodziewałbyś się zobaczyć ruch DNS z serwerem proxy charles, jeśli twoja sieć jest poprawnie skonfigurowana i otrzymasz zwrot rozsądnych adresów routerów od serwera DNS, z którego powinna działać twoja aplikacja. Jeśli masz "nslookup google.com 10.0.2.3" na konsoli emulatora, co otrzymujesz? – ozborn

Odpowiedz

0

nie ma sposobu, aby zmienić configs DNS android emulator, który może uzyskać nazwy hostów zamiast adresów IP, jedynym rozwiązaniem, aby korzystać z serwera proxy jest wyjaśnić na inne tak wątków here.

Jestem pewien, że pakiety pochodzą z instagrama i/lub może używają zapory ogniowej dla celów bezpieczeństwa.

0

Nie jest to możliwe z emulatorem, ale można do tego użyć GENYMOTION. Genymotion jest bardzo dobrym narzędziem do używania emulatora online.

enter image description here

Można ustawić proxy w Ustawienia-> Sieć.

enter image description here

spróbować .hope to pomoże.

+0

Wiem, że to działa z genymotion Chciałem, aby działało to ze zwykłym emulatorem androida. – azero0

0

Dla Linux User

nie może w stanie wykorzystać emulator Zaczęliśmy od android studio Musimy zacząć od emulatora terminalu używając tych 2 polecenia

pierwszy krok do android narzędzi SDK reż

$ cd /home/..../Android/Sdk/tools 

Po drugie uruchom emulator za pomocą tego cmd

./ Emulator -avd Emulator_name-http-proxy http: // adres IP Ur: portu/

Emulator_name: otwarty Menedżer Druga kolumna AVD dostaniesz nazwy emulatora następny trzeba zastąpić spacje między nazwy z podkreślenia

jak Nexus 5 API 22 ->Nexus_5_API_22

Np: $ ./emulator -avd Nexus_5_API_22 -http-proxy http://12.1.0.222:8888/

-2

Możesz użyć polecenia "ping", aby uzyskać adres IP.

1

Wewnątrz emulatora - przejdź do ustawień -> sieć & internet -> mobileNetwork -> AccessPointNames. a następnie wybierz swoją sieć do edycji i umieść adres IP oraz port komputera Charlesa.

Pamiętaj, aby otworzyć emulator za pomocą poxy. emulator with proxy

1

można skonfigurować serwer proxy z wiersza poleceń za pomocą opcji -http-proxy podczas uruchamiania emulatora. W tym przypadku, należy podać informacje proxy w jednym z tych formatów:

http://<machineName>:<port> 

lub

http://<username>:<password>@<machineName>:<port> 

Opcja-http-proxy zmusza emulatora do korzystania z określonego HTTP/HTTPS proxy dla wszystkich wychodzących Połączenia TCP. Przekierowanie dla UDP nie jest obecnie obsługiwane.

Alternatywnie można zdefiniować zmienną środowiskową http_proxy na wartość, której chcesz użyć. W takim przypadku nie trzeba określać wartości dla polecenia -http-proxy - emulator sprawdza wartość zmiennej środowiskowej http_proxy podczas uruchamiania i automatycznie używa jej wartości, jeśli jest zdefiniowana.

Możesz użyć opcji -debug-proxy, aby zdiagnozować problemy z połączeniem z serwerem proxy.

można uzyskać dalsze szczegóły na ten temat tutaj:

https://developer.android.com/studio/run/emulator-networking.html