23 votes

Comment configurer un mappage hôte-IP sur un Android non rooté ?

J'ai un site web qui fonctionne sur mon ordinateur, et je veux le tester depuis ma tablette Nexus 7. C'est-à-dire via le réseau local WiFi. Si je tape l'adresse IP, il se connecte, mais affiche le mauvais site Web, car j'utilise un hébergement virtuel nommé.

Donc, ce que je veux faire, c'est être capable de taper mysite.local en Chrome/Firefox sur le Nexus, demandez-leur de le convertir en 10.1.2.3 (ou quelle que soit l'adresse IP locale), puis appelez la fonction 10.1.2.3 serveur donnant mysite.local comme l'hôte à demander.

Ma question : Une tablette Android 4.x a-t-elle un /etc/hosts ou équivalent, que je peux éditer (sans avoir à Root la tablette, ou quelque chose comme ça).

Sur mes ordinateurs Linux, je le fais en ajoutant une entrée dans le fichier /etc/hosts :

10.1.2.3  mysite.local

(Ou Windows\System32\drivers\etc\hosts sur une machine Windows fait la même chose).

BTW, c'est un semi-duplicate de Définir manuellement un nom d'hôte pour l'adresse IP (i.e. /etc/hosts equiv. ?) mais cette question portait sur Android 2.2, où apparemment ce n'était pas possible. (L'une des idées alternatives proposées était de configurer le DNS au niveau du routeur local, mais pour autant que je sache, mon routeur ne gère pas le DNS localement et n'a donc pas cette option. Je pourrais configurer mon propre serveur DNS pour le faire, mais cela ressemble à une solution de gros travaux).

11voto

Milner Points 533

Vous ne pouvez pas simplement modifier le fichier hosts sur Android, car il réside sur un système de fichiers en lecture seule : /system/etc/hosts voir :

Les alternatives sont :

  • utiliser un serveur DNS comme DNSMasq dans votre réseau local pour s'occuper de cela de manière "centralisée".
  • utiliser "Root powers" pour forcer l'édition du fichier système comme décrit ci-dessus
  • installer un "serveur DNS local" sur votre appareil Android pour l'utiliser, par exemple Serveur DNS

3voto

Bloodyaugust Points 647

Comme mentionné par lzzy, vous pouvez utiliser DNSMasq pour y parvenir. Mais Chrome utilise son propre processus de résolution DNS et cette méthode peut ne pas fonctionner.

Pour démarrer le serveur, utilisez la commande suivante :

sudo /usr/local/sbin/dnsmasq -d \
                             --no-hosts \
                             --no-resolv \
                             --conf-file=/dev/null \
                             --server=8.8.8.8 --server=8.8.4.4 \
                             --address=/example.com/192.168.0.101
  • sudo nécessaire pour se lier sur le port 53
  • -d démarrer le serveur en avant-plan
  • --no-hosts ne pas utiliser le fichier hosts local
  • --conf-file=/dev/null ne pas utiliser de fichier de configuration
  • --server=8.8.8.8 --server=8.8.4.4 les adresses des serveurs en amont (Google DNS dans cet exemple)
  • --address=/example.com/192.168.0.101 des hôtes pour passer outre. Vous devez ajouter vos hôtes à cette ligne. Vous pouvez également ajouter plusieurs hôtes à cet endroit.

Ensuite, changez le serveur DNS sur l'appareil. Cela peut être fait facilement en utilisant le Changeur de DNS app.

Après ces étapes, les demandes à ces hôtes devraient être envoyées à vos adresses.

0voto

Irfan Latif Points 16863

La manière la plus simple de définir un mappage hôte/IP es hosts comme principalement Les résolveurs DNS honorent ce fichier . Mais comme mentionné dans d'autres réponses, il n'est pas possible d'éditer /etc/hosts sans enraciner l'appareil Android. L'accès au serveur web avec une adresse IP ne fonctionnera pas non plus pour vous en raison de l'hébergement virtuel. Voici quelques options que vous pouvez utiliser sur un appareil non rooté :

  • Utilisez une application VPN qui intercepte le trafic DNS et recherche une adresse personnalisée. hosts avant d'effectuer des requêtes auprès du serveur DNS amont configuré.
  • Exécuter un serveur DNS ; ils peuvent être configurés pour renvoyer une adresse IP prédéfinie pour un nom spécifique. Par exemple, si vous utilisez dnsmasq , añadir address=/mysite.local/10.1.2.3 a "dnsmasq.conf" . Ou sur dnscrypt-proxy ajouter mysite.local 10.1.2.3 a "cloaking-rules.txt" .
  • Configurer le téléphone pour utiliser un proxy ou un VPN, puis ajouter l'entrée 10.1.2.3 mysite.local a hosts sur le serveur proxy ou exécuter un serveur DNS local sur le serveur VPN.
  • Si le chargeur de démarrage est déverrouillable, éditez hosts à partir de la récupération personnalisée.

Pour plus de détails, voir : Comment résoudre toujours un nom de domaine vers une IP fixe sans rooter ?


RELATION :

0voto

Vilko Points 1

Vous ne pouvez pas modifier le fichier sur un système de fichiers en lecture seule, mais vous pouvez utiliser la fonction bind pour remplacer le fichier par un fichier situé sur rw fs. Cela ne devrait fonctionner que jusqu'au prochain redémarrage.

Exemple :

mount /sdcard/hosts /etc/hosts -o bind
bind file /sdcard/hosts  to /etc/hosts

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