J'ai remonté en /sys
tant que rw
, ajouté une entrée etc/hosts
(par exemple 10.0.0.1 x.com www.x.com
) et redémarré mon appareil.
Après le redémarrage, si je vérifie etc/hosts
, l'entrée est correcte. Si je fais un ping x.com
, il envoie un ping à l'adresse IP correcte que j'ai entrée.
Mais, si j'ouvre un navigateur Web (stock ou Dolphin) et que je le navigue x.com
, il ira à l'adresse IP à laquelle le DNS se résout.
Que ce passe-t-il?
(Mon téléphone est un Nexus One, qui exécute la ROM Cyanogen 7.1 personnalisée basée sur Android 2.3.7)
Mise à jour:
sur l'application « LAN Droid », je reçois l'adresse modifiée (donc 10.0.0.1
) très bien aussi. Il semble que ce ne soit que les navigateurs où il se comporte mal.
ls -l /etc/hosts
, éventuellement un problème de permissions / propriété?chmod 644 /system/etc/hosts
triéRéponses:
Cela ressemble exactement à ceci , pour que le ping fonctionne, mais pas le navigateur. Sa solution éventuelle est citée ci-dessous:
Je ne sais pas ce que vous avez utilisé pour le modifier, mais vous voudrez peut-être vérifier quel type de caractères de saut de ligne / de nouvelle ligne il utilise.
la source
ff=unix
maintenant etset list
de voir tout saut de ligne DOS ... même allé de l'avant et exécuter une expression rationnelle comme s'il y avait un saut de ligne DOS, rien trouvé.Je ne sais pas si cela aide, mais j'ai eu un problème de fichier d'hôtes ignoré et il a été résolu par un gars sur ce fil - la réponse est de mettre une nouvelle ligne vierge à la fin du fichier.
la source
Pouvez-vous installer strace et comparer la sortie exécutant strace sur ping avec strace sur le navigateur pour voir pourquoi les recherches DNS sont traitées différemment?
Êtes-vous sûr qu'il n'y a pas de mise en cache persistante? Quel est le TTL sur vos enregistrements de domaine?
Android ne semble pas utiliser /etc/resolv.conf, mais il existe peut-être des propriétés qui contrôlent les applications qui utilisent / etc / hosts et qui vont directement à la recherche DNS. https://groups.google.com/forum/?fromgroups#!topic/android-platform/K2Wr4WaEneI
la source
Si vous créez le fichier d'hôtes sur une machine Windows, assurez-vous que chaque ligne est séparée par un LF uniquement (pas [CR] [LF], seulement [LF]). Vous pouvez vérifier cela et créer des fichiers hôtes appropriés à l'aide de notepad ++.
la source
Je pense que vous devez vider le DNS sur votre Android. Vérifiez cette question /programming/2101762/android-flush-dns , en particulier "allez dans les paramètres -> applications -> Emplacement réseau -> Effacer les données".
la source
Je soupçonne que le navigateur est configuré pour fonctionner via un proxy.
Vous pourrez peut-être dire en utilisant netstat -n ou en regardant dans / proc / net / tcp (ou mieux encore, / proc / # browser_pid # / net / tcp) à quelle adresse il se connecte réellement. Si cela ne correspond pas à l'adresse de votre site Web, il est probable que vous passiez par un intermédiaire.
la source
Je dirais normalement (mais cela ne s'applique pas à vous, hélas):
Essayez simplement de redémarrer si les modifications passent inaperçues car l'instance de la machine Dalvik ou le système sous-jacent peut avoir mis en cache une ancienne requête DNS.
Vous pouvez essayer AdAway pour ajouter manuellement des entrées à votre fichier d'hôtes (juste pour vérifier s'il fait la même chose que vous avez fait manuellement).
la source