dnsmasq no funciona en Mac OS Sierra

6

Estoy ejecutando dnsmasq en un MBP 2016 con Mac OS Sierra (10.12.1) pero no puedo hacer ping a ninguna dirección .dev a pesar de tener lo que creo que es la configuración adecuada. Ejecutar dig devuelve una salida sana.

/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

Mi lista de servidores DNS en Preferencias del sistema tiene solo una entrada que apunta a 127.0.0.1.

Cuando ejecuto cavar en una dirección .dev obtengo el siguiente resultado:

; <<>> 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

Puedo cargar sitios externos como google.com a la perfección, pero si intento acceder a un servidor web local o incluso hacer ping a una dirección .dev, falla.

¡Se agradecería la ayuda!

    
pregunta Steve 20.12.2016 - 08:17

1 respuesta

4

Su demonio dnsmasq no está configurado correctamente.

Su resolutor externo está funcionando: todas las consultas a hosts / dominios que no sean dev se reenvían a servidores DNS de terceros con la línea resolv-file=/usr/local/etc/resolv-dnsmasq.conf . En su caso, el archivo configurado contiene dos Google públicos. Servidores DNS.

Sin embargo, su resolución interna no resuelve los nombres internos.

La línea address=/.dev/127.0.0.1 o superior address=/dev/127.0.0.1 redireccionará cualquier consulta * .dev al host 127.0.0.1. Entonces no se necesita un resolutor interno y el servidor de nombres interno definido en / etc / resolver / dev es inútil.

Compare esto con el ejemplo en el archivo 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

Cualquier consulta para * .double-click.net será redirigida a 127.0.0.1 y a un sitio web arbitrario servido en localhost.

Recomiendo encarecidamente definir un archivo hosts.config e ingresar / definir todos los hosts necesarios allí:

Agregue una línea addn-hosts=/usr/local/etc/hosts/hosts.conf en dnsmasq.conf. Luego agregue una carpeta con sudo mkdir /usr/local/etc/hosts y cree un archivo hosts.conf

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

con el siguiente contenido:

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

Después de guardar el archivo, vuelva a cargar su demonio dnsmasq.

Si desea usar direcciones IP diferentes para sus nombres de host, por ejemplo:

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

tendrías que agregar direcciones IP adicionales con:

sudo ifconfig lo0 alias 127.0.0.2 up
sudo ifconfig lo0 alias 127.0.0.3 up
...
    
respondido por el klanomath 20.12.2016 - 22:55

Lea otras preguntas en las etiquetas