Terminal Android nie może nslookup?


14

Za każdym razem, gdy próbuję telnet do domeny na moim LG Ally, kończy się to niepowodzeniem, ale działa, jeśli używam adresu IP. Więc próbowałem użyć nslookup telehack.comi zwraca:

Server:       0.0.0.0
Address 1:    0.0.0.0

nslookup: can't resolve 'telehack.com'

Mam zainstalowany emulator terminala Android i BusyBox ,

To nie działało z domyślnymi dns, więc teraz mam wpisy dns ustawione na OpenDNS i nadal nie można ich rozwiązać.

czy jest coś, co mogę zrobić, aby rozwiązać ten problem, czy też jest to ograniczenie dla sojusznika?


Nie mam problemu z zrobieniem NSlookup w tej domenie lub innej domenie w tym zakresie.
Ryan Conrad,

Jak wygląda twoja sieć? Czy masz porty zablokowane lub przekazane dalej?
Matthew Przeczytał

Mam ten sam problem.
Max Ried

Odpowiedzi:


4

Jest to znany problem z projektowaniem podczas używania statycznie połączonych bibliotek libresolv i glibc.

Masz 2 opcje:

  1. Użyj natywnej biblioteki libion ​​Bionic Google Androida zamiast glibc.

  2. Zbuduj busyboksa, aby przeszukiwać biblioteki /system/lib(lub np /usr/lib -> /system/lib. Utworzyć niezbędne linki ). Umieść ld-linux.so.3, libc.so.6, libresolv.so.2, libnss_dns.so.2 w swoim pliku /system/lib.


Więc chcesz, żebym wysłał Gibsona? co?
JKirchartz

1

Sprawdź, czy środowisko emulatora terminali ma poprawnie ustawiony DNS, uruchamiając go getprop net.dns1i, jeśli to konieczne, ustaw go za pomocą setprop net.dns1 [yourdns]. Polecenia mogą się różnić w zależności od urządzenia, niektóre z nich net.eth0.dns1lub net.gprs.dns1uruchamiane getpropbez parametrów, aby wyświetlić wszystkie ustawione właściwości podpowiedzi.


dns jest ustawiony, zmieniłem go z domyślnego na openDNS i nadal nie działa ...
JKirchartz

ma nslookupteraz dać prawidłowy adres serwera, czy też jeszcze pokazać 0.0.0.0?
onik

wciąż pokazuje 0.0.0.0
JKirchartz

getprop istnieje i zwraca adres IPv6 dla serwerów DNS, mimo że serwer DHCP podaje im adres IPv4. Ale setprop nie istnieje.
Michael

1

wpisz swój terminal, a następnie wpisz „su” i naciśnij enter (uwaga działa tylko, jeśli masz zrootowany telefon)

$ su
#

następnie wprowadź następujące dane (zamień xxxx na ip serwerów dns)

# echo 'nameserver x.x.x.x' > /system/etc/resolv.conf
# echo 'nameserver x.x.x.x' >> /system/etc/resolv.conf
# exit

Teraz sprawdź, czy działa poprawnie

$ nslookup google.com

Powinno to rozwiązać teraz.


Należy pamiętać, że jest prawdopodobne, że resolv.confzostaną zastąpione przy każdej zmianie łączności przez system.
Flow

tak naprawdę, NIGDY nie miałem tego na żadnym urządzeniu z Androidem ... To po prostu się nie zmienia (wiem o tym, bo mam prywatny serwer dns (lokalny) na stałe zapisany w resolv.conf i muszę go ręcznie ustawić dla inne sieci (przy użyciu zaawansowanego okna dialogowego))
Mikah

1

Skopiowałem (i nieznacznie zmieniłem) moją odpowiedź z komentarza, który opublikowałem w sprawie na stronie kodowej Google dla terminalu IDE, jednak powinna być taka sama:

Jeśli jesteś zrootowany, możesz zainstalować najnowszą wersję busyboksa (możesz ją skompilować). Następnie dowiedz się, gdzie znajduje się zaktualizowany busybox i uruchom następujące polecenia: (Zakładam, że jest nowa wersja i jest w /system/binstarej wersji ~/system/bin)

PATH=/system/bin:$PATH
cd ~/system/bin
mv busybox busybox.old
ln -s /system/bin/busybox busybox

Teraz domeny zostaną poprawnie rozwiązane.

Uwaga: ze względu na sposób działania busybox musisz mieć uprawnienia roota, aby móc z niego korzystać ping(chociaż rzeczy takie jak wgeti nslookuppowinny być teraz w stanie poprawnie rozwiązywać hosty). Deweloperzy busybox pracują nad tym problemem.

Osobiście użyłem tej aplikacji do zainstalowania najnowszej wersji: https://play.google.com/store/apps/details?id=stericson.busybox


0

Z jakiej sieci korzystasz? Jeśli jest to Wi-Fi, czy inne urządzenia w sieci mogą się z nim skontaktować? Jeśli jest to plan danych operatora ... czy jest blokowany?

Aktualizacja: 0.0.0.0 wydaje mi się blokiem pliku hosts. Jakieś programy blokujące reklamy? Adblock Plus? Modyfikacje plików hostów?

Wypróbuj sieć USB - jeśli opublikujesz tutaj komentarz z prośbą o to, zaktualizuję pytanie i wprowadzę samouczek (jest zaangażowany i wiem tylko, jak to zrobić na maszynach GNU / Linux)


Nie działa na 3G (Verizon) ani na WiFi, to samo 0.0.0.0 nie może rozwiązać.
JKirchartz,

0.0.0.0 wydaje mi się blokiem pliku hosts. Jakieś programy blokujące reklamy? (Aktualizacja odpowiedzi.)
Broam

Kiedyś miałem taki, ale tak naprawdę nie działał ... /system/etc/hostswskazuje na kilka spamersko wyglądających adresów URL127.0.0.1
JKirchartz

0

Używam tego w Androidzie z Androida. Może są lepsze sposoby.

ip=$(ping -c 1 -W 1 example.com|grep PING|cut -d "(" -f 2|cut -d ")" -f 1)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.