Android-Terminal nicht in der Lage, nslookup?


13

Jedes Mal, wenn ich versuche, eine Telnet-Verbindung zu einer Domain auf meinem LG Ally herzustellen, schlägt dies fehl, funktioniert jedoch, wenn ich eine IP-Adresse verwende. Also habe ich versucht zu verwenden nslookup telehack.comund es gibt zurück:

Server:       0.0.0.0
Address 1:    0.0.0.0

nslookup: can't resolve 'telehack.com'

Ich habe Android Terminal Emulator und BusyBox installiert,

Es funktionierte nicht mit den Standard-DNS, also habe ich jetzt meine DNS-Einträge auf OpenDNS gesetzt und es wird immer noch nicht aufgelöst.

Kann ich irgendetwas tun, um das zu beheben, oder ist es eine Einschränkung für den Verbündeten?


Ich habe kein Problem damit, ein NSlookup für diese Domain oder eine Domain für diese Angelegenheit durchzuführen.
Ryan Conrad

Wie ist Ihr Netzwerk-Setup? Haben Sie Ports gesperrt oder weitergeleitet?
Matthew Read

Ich habe das gleiche Problem.
Max Ried

Antworten:


4

Dies ist ein bekanntes Konstruktionsproblem bei Verwendung von statisch verknüpftem Libresolv und Glibc.

Sie haben 2 Möglichkeiten:

  1. Verwenden Sie die native libc Bionic-Bibliothek von Google Android anstelle von glibc.

  2. Erstellen Sie eine Busybox, in der Sie Bibliotheken durchsuchen können /system/lib(oder erstellen Sie die erforderlichen Links, z /usr/lib -> /system/lib. B. ). Platzieren Sie ld-linux.so.3, libc.so.6, libresolv.so.2, libnss_dns.so.2 in Ihrem /system/lib.


Soll ich den Gibson haxxieren? Was?
JKirchartz

1

Überprüfen Sie, ob in Ihrer Terminal-Emulator-Umgebung DNS korrekt eingestellt ist, indem Sie es ausführen getprop net.dns1und gegebenenfalls mit festlegen setprop net.dns1 [yourdns]. Die Befehle können je nach Gerät, Verwendung net.eth0.dns1oder net.gprs.dns1Ausführung getpropohne Parameter unterschiedlich sein, um alle festgelegten Eigenschaften für Hinweise anzuzeigen.


Die DNS eingestellt ist, änderte ich es von der Standardeinstellung zu openDNS und es funktioniert immer noch nicht ...
JKirchartz

gibt nslookupnun die richtige serveradresse an oder wird diese noch angezeigt 0.0.0.0?
Onik

zeigt noch
0.0.0.0

getprop ist vorhanden und gibt eine IPv6-Adresse für DNS-Server zurück, obwohl der DHCP-Server eine IPv4-Adresse für sie ausgibt. Setprop existiert aber nicht.
Michael

1

Geben Sie Ihr Terminal ein, geben Sie "su" ein und drücken Sie die Eingabetaste (Hinweis funktioniert nur, wenn Sie ein Telefon mit Root-Status haben).

$ su
#

Geben Sie dann Folgendes ein (ersetzen Sie xxxx durch Ihre DNS-Server-IP)

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

Testen Sie nun, ob es richtig funktioniert hat

$ nslookup google.com

Es sollte sich jetzt auflösen.


Beachten Sie, dass es wahrscheinlich ist, dass das resolv.confbei jeder Verbindungsänderung durch das System überschrieben wird.
Flow

Eigentlich habe ich das NIE auf einem Android-Gerät erlebt ... Es ändert sich einfach nicht (ich weiß das, weil ich meinen privaten DNS-Server (lokal) in der resolv.conf fest codiert habe und ich ihn tatsächlich manuell einstellen muss andere Netzwerke (mit dem erweiterten Dialogfeld))
Mikah

1

Ich habe meine Antwort von einem Kommentar, den ich zu einem Problem auf der Google-Codepage für die Terminal-IDE gepostet habe, kopiert (und leicht geändert). Es sollte jedoch derselbe sein:

Wenn Sie als Root angemeldet sind, können Sie die neueste Version von busybox installieren (möglicherweise können Sie sie kompilieren). Dann finden Sie heraus, wo Sie busybox aktualisiert haben, und führen Sie die folgenden Befehle aus: (Ich gehe davon aus, dass die neue Version /system/binund die alte Version enthalten sind. ~/system/bin)

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

Jetzt werden Domains korrekt aufgelöst.

Bitte beachten Sie: Aufgrund der Funktionsweise von busybox müssen Sie als Root angemeldet sein, um die Funktion nutzen zu können ping(auch wenn Dinge wie wgetund nslookupin der Lage sein sollten, Hosts jetzt ordnungsgemäß aufzulösen). Die busybox-Entwickler arbeiten an diesem Problem.

Ich persönlich habe diese Anwendung verwendet, um die neueste Version zu installieren: https://play.google.com/store/apps/details?id=stericson.busybox


0

Welches Netzwerk verwenden Sie? Wenn es sich um Wifi handelt, können andere Computer in Ihrem Netzwerk Kontakt mit ihm aufnehmen? Wenn es sich um einen Carrier Data Plan handelt ... wird er blockiert?

Update: 0.0.0.0 scheint mir ein Hosts-Dateiblock zu sein. Irgendwelche Werbeblocker? Adblock Plus? Hosts Dateiänderungen?

Versuchen Sie es mit USB-Netzwerken. Wenn Sie hier einen Kommentar hinterlassen und danach fragen, aktualisiere ich die Frage und füge ein Tutorial hinzu.


Es funktioniert nicht auf 3G (Verizon) oder auf WiFi, gleiche 0.0.0.0 kann nicht aufgelöst werden.
JKirchartz,

0.0.0.0 scheint mir ein Hosts-Dateiblock zu sein. Irgendwelche Werbeblocker? (Antwort wird aktualisiert.)
Broam

Früher hatte ich eine, aber es hat nicht wirklich funktioniert ... es /system/etc/hostsgibt eine Reihe von spammig aussehenden URLs, auf die verwiesen wird127.0.0.1
JKirchartz

0

Ich benutze dies in Android von ADB. Vielleicht gibt es bessere Wege.

ip=$(ping -c 1 -W 1 example.com|grep PING|cut -d "(" -f 2|cut -d ")" -f 1)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.