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.com
und 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?
Antworten:
Dies ist ein bekanntes Konstruktionsproblem bei Verwendung von statisch verknüpftem Libresolv und Glibc.
Sie haben 2 Möglichkeiten:
Verwenden Sie die native libc Bionic-Bibliothek von Google Android anstelle von glibc.
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
.quelle
Überprüfen Sie, ob in Ihrer Terminal-Emulator-Umgebung DNS korrekt eingestellt ist, indem Sie es ausführen
getprop net.dns1
und gegebenenfalls mit festlegensetprop net.dns1 [yourdns]
. Die Befehle können je nach Gerät, Verwendungnet.eth0.dns1
odernet.gprs.dns1
Ausführunggetprop
ohne Parameter unterschiedlich sein, um alle festgelegten Eigenschaften für Hinweise anzuzeigen.quelle
nslookup
nun die richtige serveradresse an oder wird diese noch angezeigt0.0.0.0
?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).
Geben Sie dann Folgendes ein (ersetzen Sie xxxx durch Ihre DNS-Server-IP)
Testen Sie nun, ob es richtig funktioniert hat
Es sollte sich jetzt auflösen.
quelle
resolv.conf
bei jeder Verbindungsänderung durch das System überschrieben wird.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/bin
und die alte Version enthalten sind.~/system/bin
)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 wiewget
undnslookup
in 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
quelle
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.
quelle
/system/etc/hosts
gibt eine Reihe von spammig aussehenden URLs, auf die verwiesen wird127.0.0.1
Ich benutze dies in Android von ADB. Vielleicht gibt es bessere Wege.
quelle