Ich habe /sys
als neu gemountet rw
, einen Eintrag zu etc/hosts
(z . B. 10.0.0.1 x.com www.x.com
) hinzugefügt und mein Gerät neu gestartet.
Wenn ich nach dem Neustart ein Häkchen setze, etc/hosts
ist der Eintrag in Ordnung. Wenn ich pinge x.com
, pingt es die richtige IP-Adresse, die ich eingegeben habe.
Aber wenn ich einen Webbrowser öffne (entweder Stock oder Dolphin) und zu navigiere x.com
, wird er an die IP-Adresse weitergeleitet, zu der das DNS auflöst.
Was ist los?
(Mein Telefon ist ein Nexus One, auf dem das benutzerdefinierte Cyanogen 7.1-ROM basierend auf Android 2.3.7 ausgeführt wird.)
Update:
Auf der App ' LAN Droid ' bekomme ich die editierte Adresse (so 10.0.0.1
) auch prima hin. Es scheint so, als ob es nur die Browser sind, wo es sich falsch verhält.
Das hört sich genau so an , bis hin zu Ping funktioniert, aber nicht der Browser. Seine letztendliche Lösung wird unten zitiert:
Dumme Frage, aber bearbeitest du die Datei auf dem Mobilteil oder pushst du nur die Datei, die du hier gepostet hast? Das von Ihnen gepostete ist im DOS-Format, daher enthält es am Ende der Zeile zusätzliche Zeilenvorschubzeichen, die ein Linux-System verwirren könnten.
Ich weiß nicht, was Sie verwendet haben, um es zu ändern, aber Sie möchten vielleicht überprüfen, welche Art von Zeilenvorschub-/Neuzeilenzeichen es verwendet.
ff=unix
jetzt zu erzwingen und set list
einen DOS-Zeilenumbruch zu sehen ... ging sogar weiter und führte einen regulären Ausdruck aus, als ob es einen DOS-Zeilenumbruch gäbe, nichts gefunden.Ich bin mir nicht sicher, ob das hilft, aber ich hatte ein Problem mit einer ignorierten Hosts-Datei und es wurde von einem Typen in diesem Thread gelöst - die Antwort ist, eine leere neue Zeile am Ende der Datei einzufügen.
Können Sie strace installieren und die Ausgabe, die strace auf ping ausführt, mit strace im Browser vergleichen, um zu sehen, warum DNS-Lookups unterschiedlich gehandhabt werden?
Sind Sie sicher, dass kein dauerhaftes Caching stattfindet? Wie lautet die TTL in Ihren Domain-Einträgen?
Android scheint /etc/resolv.conf nicht zu verwenden, aber vielleicht gibt es einige Eigenschaften, die steuern, welche Apps /etc/hosts verwenden und welche direkt zur DNS-Suche gehen. https://groups.google.com/forum/?fromgroups#!topic/android-platform/K2Wr4WaEneI
Wenn Sie die Hosts-Datei auf einem Windows-Rechner erstellen, stellen Sie sicher, dass jede Zeile nur durch ein LF getrennt ist (nicht [CR][LF], nur [LF]). Sie können dies überprüfen und mit Notepad ++ eine geeignete Hosts-Datei erstellen.
Ich denke, Sie müssen DNS auf Ihrem Android leeren, überprüfen Sie diese Frage https://stackoverflow.com/questions/2101762/android-flush-dns , insbesondere "Gehen Sie zu Einstellungen -> Anwendungen -> Netzwerkstandort -> Daten löschen".
Mein Verdacht wäre, dass der Browser so konfiguriert ist, dass er über einen Proxy funktioniert.
Möglicherweise können Sie mit netstat -n oder einem Blick in /proc/net/tcp (oder noch besser /proc/#browser_pid#/net/tcp) feststellen, mit welcher Adresse es sich tatsächlich verbindet. Wenn dies nicht mit der Adresse Ihrer Website übereinstimmt, verwenden Sie wahrscheinlich einen Vermittler.
Ich würde normalerweise sagen (aber das trifft leider nicht auf Sie zu):
Versuchen Sie einfach einen Neustart, wenn Änderungen unbemerkt bleiben, weil die Dalvik-Maschineninstanz oder das zugrunde liegende System möglicherweise eine frühere DNS-Anfrage zwischengespeichert haben.
Sie könnten versuchen, AdAway manuell Einträge zu Ihrer Hosts-Datei hinzuzufügen (nur um zu überprüfen, ob es dasselbe tut wie Sie es manuell getan haben).
Arjan
t0mm13b
ls -l /etc/hosts
möglicherweise ein Problem mit Berechtigungen / Eigentumsrechten?gcb
KalenGi
chmod 644 /system/etc/hosts
aussortiert