3 votos

dnsmasq no funciona oh Mac OS High Sierra

Tengo un servicio que se ejecuta en localhost en MacOS High Sierra.

curl foo.test 

no funciona, pero

curl localhost 

lo hace.

Para llegar a mi configuración, instalé dns usando homebrew,

brew install dnsmasq

añadí mi configuración a /usr/local/etc/dnsmasq.conf,

address=/test/127.0.0.1

y añadimos un archivo de resolución /etc/resolver/test:

nameserver 127.0.0.1

He pasado un día intentando

  • dig foo.test
  • scutil --dns
  • dscacheutil -q host -a name foo.test

y nada funcionó.

Mi tema eventual no fue cubierto en ningún otro lugar, así que lo respondo aquí para alguien más.

0 votos

Mismo problema en Mojave/10.14.6

9voto

ebelisle Puntos 116

Tl;dr asegúrese de iniciar dnsmasq como Root.

Para diagnosticar este problema, utilicé Console.app, y busqué dnsmasq.

  1. Mi primer problema revelado en los registros:

    failed to create listening socket for 127.0.0.1: Address already in use
    FAILED to start up

Para solucionarlo, asegúrese de que dnsmasq está detenido:

brew services stop dnsmasq

entonces usa Activity Monitor.app para matar cualquier proceso antiguo de dnsmasq.

Una vez eliminado el conflicto del socket, intenté iniciar dnsmasq de nuevo:

brew services start dnsmasq # does not work

y ahora los registros en Console.app muestran

failed to create listening socket for 127.0.0.1: Permission denied
FAILED to start up

Para solucionarlo, he reiniciado el servicio como Root:

brew services stop dnsmasq
sudo brew services start dnsmasq

Ahora

curl foo.test

¡funciona!

Después de este viaje, revisé todos los artículos de ayuda de dnsmasq que leí. El sudo estaba ahí todo el tiempo y lo pasé por alto. Estoy publicando esto para la próxima persona que se olvide de iniciar dnsmasq como Root.

0 votos

¿No sería el trabajo de la configuración .plist launchd en ~/Library/LaunchAgents para declarar como qué usuario debe ejecutar este servidor?

0 votos

Suena como un riesgo de seguridad, pero la respuesta aquí habla de una solución que utiliza /Library/LaunchDaemons en su lugar.

0 votos

Sólo funciona si se utilizan privilegios elevados, así que ¿por qué utilizar la función que launchd proporciona para hacer eso es un riesgo de seguridad?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X