19 votes

Pourquoi Android ignore-t-il ma modification de etc/hosts dans le navigateur ?

J'ai remonté /sys comme rw a ajouté une entrée à etc/hosts (par exemple 10.0.0.1 x.com www.x.com ) et j'ai redémarré mon appareil.

Après le redémarrage, si je vérifie etc/hosts l'entrée est bien. Si je fais un ping x.com il envoie l'adresse IP correcte que j'ai entrée.

Mais, si j'ouvre un navigateur web (soit stock, soit Dolphin), et que je navigue à l'adresse suivante x.com il ira à l'adresse IP sur laquelle le DNS se résout.

Qu'est-ce qui se passe ?

(Mon téléphone est un Nexus One, qui utilise la ROM personnalisée Cyanogen 7.1 basée sur Android 2.3.7).

Mise à jour :
Sur l'application ' Droïde LAN J'obtiens l'adresse éditée (donc 10.0.0.1 ) très bien aussi. Il semble que ce soit seulement les navigateurs qui se comportent mal.

6voto

user80805 Points 965

Cela ressemble exactement à ce Le problème est que le ping fonctionne mais pas le navigateur. Sa solution finale est citée ci-dessous :

Question stupide, mais est-ce que vous éditez le fichier sur le combiné ou vous poussez juste le fichier que que tu as posté ici ? Celui que vous avez posté est au format dos, donc il a des caractères de saut de ligne supplémentaires à la fin de la ligne, ce qui peut perturber un système linux.

Je ne sais pas ce que vous avez utilisé pour le modifier, mais vous pourriez vouloir vérifier quel type de caractères de saut de ligne/newline il utilise.

4voto

Fletch Points 141

Je ne sais pas si cela peut aider mais j'ai eu un problème de fichier hosts 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.

2voto

dave Points 408

Pouvez-vous installer strace et comparer les résultats de l'exécution de strace sur ping avec strace sur le navigateur pour voir pourquoi les recherches DNS sont traitées différemment ?

Est-ce que vous sûr il n'y a pas de mise en cache persistante ? Quel est le TTL de 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 celles qui utilisent directement la recherche DNS. https://groups.google.com/forum/?fromgroups#!topic/Android-platform/K2Wr4WaEneI

2voto

Cocowalla Points 4798

Si vous créez le fichier hosts sur une machine Windows, assurez-vous que chaque ligne est séparée par un LF seulement (pas [CR][LF], seulement [LF]). Vous pouvez vérifier cela et créer un fichier hosts correct en utilisant notepad++.

0voto

Je pense que vous devez vider le DNS de votre Android, vérifiez cette question. https://stackoverflow.com/questions/2101762/Android-flush-dns surtout "allez dans les paramètres -> applications -> Localisation réseau -> Effacer les données."

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X