9 votes

dnsmasq ne fonctionne pas sur Mac OS Sierra

J'exécute dnsmasq sur un MBP 2016 fonctionnant sous Mac OS Sierra (10.12.1) mais je ne parviens pas à envoyer un ping à une adresse .dev malgré ce que je pense être la bonne configuration. L'exécution de dig renvoie une sortie saine.

/usr/local/etc/dnsmasq.conf

resolv-file=/usr/local/etc/resolv-dnsmasq.conf
address=/.dev/127.0.0.1

/etc/resolver/dev

nameserver 127.0.0.1

/usr/local/etc/resolv-dnsmasq.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

Ma liste de serveurs DNS dans les préférences système ne comporte qu'une seule entrée pointant vers 127.0.0.1.

Lorsque je lance dig sur une adresse .dev, j'obtiens le résultat suivant :

; <<>> DiG 9.11.0-P1 <<>> test.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36126
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.dev.          IN  A

;; ANSWER SECTION:
test.dev.       0   IN  A   127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 19 23:13:20 PST 2016
;; MSG SIZE  rcvd: 42

Je peux parfaitement charger des sites externes comme google.com, mais si j'essaie d'accéder à un serveur web local ou même d'envoyer une requête à une adresse .dev, cela échoue.

Une aide serait appréciée !

6voto

klanomath Points 63400

Votre démon dnsmasq n'est pas correctement configuré.

Votre résolveur externe fonctionne : toutes les requêtes vers le non dev Les hôtes/domaines sont transférés vers des serveurs DNS tiers avec le nom de l'hôte. resolv-file=/usr/local/etc/resolv-dnsmasq.conf Dans votre cas, le fichier configuré contient deux serveurs DNS publics de Google.

Votre résolveur interne ne résout pas les noms internes.

La ligne address=/.dev/127.0.0.1 ou mieux address=/dev/127.0.0.1 redirigera toute requête *.dev vers l'hôte 127.0.0.1. Un résolveur interne n'est donc pas nécessaire et le serveur de noms interne défini dans /etc/resolver/dev est inutile.

Comparez cela avec l'exemple dans le fichier dnsmasq.conf :

# Add domains which you want to force to an IP address here.
# The example below send any host in double-click.net to a local
# web-server.
#address=/double-click.net/127.0.0.1

Toute requête pour *.double-click.net sera redirigée vers 127.0.0.1 et vers un site web arbitraire servi sur localhost.

Je recommande fortement de définir un fichier hosts.config et d'y entrer/définir tous les hôtes nécessaires :

Ajouter une ligne addn-hosts=/usr/local/etc/hosts/hosts.conf dans dnsmasq.conf. Ensuite, ajoutez un dossier avec sudo mkdir /usr/local/etc/hosts et créer un fichier hosts.conf

sudo nano /usr/local/etc/hosts/hosts.conf

avec le contenu suivant :

127.0.0.1   localhost
127.0.0.1   test.dev
127.0.0.1   test2.dev
...

Après avoir enregistré le fichier, rechargez votre démon dnsmasq.

Si vous souhaitez utiliser des IP différentes pour vos noms d'hôtes, par exemple :

127.0.0.1   localhost
127.0.0.2   test.dev
127.0.0.3   test2.dev
...

vous devrez ajouter des IP supplémentaires avec :

sudo ifconfig lo0 alias 127.0.0.2 up
sudo ifconfig lo0 alias 127.0.0.3 up
...

2voto

Ken Kopelson Points 31

Le TLD .dev n'est plus utilisable par les développeurs en tant que TLD privé. J'ai rencontré ce problème et j'ai dû changer les choses pour utiliser ".priv" ou autre chose à la place. Le TLD ".dev" n'est plus un domaine privé, puisqu'il appartient désormais à Google et qu'il est traité de manière spéciale par Chrome et les autres navigateurs.

Voici un extrait de l'article suivant : https://www.tomshardware.com/news/google-enforces-https-tld-hsts,35564.html

"Google a annoncé que 45 des domaines de premier niveau (TLD) qu'il a récemment achetés, dont .dev, .app, .eat, et ainsi de suite, appliqueront la sécurité HTTPS, garantissant que toutes les connexions aux sites utilisant ces TLD se feront par des canaux cryptés."

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X