macOS, launchctl y dnsmasq para el spoofing de dominio de localhost

Normalmente soy usuario de Linux, pero me gustaría probar mi aplicación web mojolicious en un sistema macOS. por lo tanto, me gustaría *.test *.*.test y *.*.*.test all para resolver 127.0.0.1, donde mi aplicación web está escuchando ansiosamente en el puerto 80.

Entiendo que esto se hace mejor instalando dnsmasq. Para macOS,

  • launchd golpeando cada file modificado cada 30 segundos
  • Evitar la búsqueda en google de dominio de nivel superior personalizado
  • Mac OS X Mavericks Cambio de order de búsqueda de nombre DNS?
  • DNS no funciona correctamente en OS X Yosemite
  • discoveryutil: command no encontrado
  • Eliminado com.apple.mDNSResponder.plist en Mavericks, ¿cómo recuperarlo?
  •  # brew install dnsmasq 

    y entonces

     # echo "address=/test/127.0.0.1" >> /usr/local/dnsmasq.conf # launchctl start dnsmasq # launchctl list | grep dns 89254 0 homebrew.mxcl.dnsmasq 

    entonces, si entiendo esto correctamente, ping abc.test ahora debería hacer ping a localhost. por desgracia, no es así. (o, ¿hay una mejor manera de probar?)

    Tampoco entiendo cómo cerrar y reiniciar dnsmasq. launchctl restart dnsmasq , launchctl kill dnsmasq.mxcl.dnsmasq y launchctl disable 89254 (y muchas permutaciones del mismo) parecen provocar desprecio pero no resultados.

  • Desactivar el inicio del receptor de citrix al iniciar session
  • Apache no se iniciará al reiniciar
  • ¿Cómo controlar el service de Apache en OS X (inicio / detención / reinicio / agraciado reinicio)?
  • Mail.app sigue intentando conectarse al viejo server de correo
  • Eliminado com.apple.mDNSResponder.plist en Mavericks, ¿cómo recuperarlo?
  • ¿Cómo el iPad expone su nombre de host en la networking?
  • One Solution collect form web for “macOS, launchctl y dnsmasq para el spoofing de dominio de localhost”

    No has dicho en qué versión de MacOS estás; mi respuesta aquí es de macOS Sierra versión 10.12.5. (Lo estoy usando para ejecutar testings en una installation VMWare de ADCS …)

    Primero , los commands para detener e iniciar dnsmasq son:

     sudo launchctl stop homebrew.mxcl.dnsmasq sudo launchctl start homebrew.mxcl.dnsmasq 

    ETA Si launchctl stop no lo detiene, es probable que el file .plist (presumiblemente /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist contenga las líneas

     <key>KeepAlive</key> <true/> 

    Si no desea que esté siempre encendido, cámbielo a

     <key>KeepAlive</key> <false/> 

    en lugar. O puede desactivarlo con

     sudo launchctl disable homebrew.mxcl.dnsmasq 

    La próxima vez que quieras activarlo, ejecuta

     sudo launchctl enable homebrew.mxcl.dnsmasq 

    En segundo lugar , debe verificar los otros valores de su file dnsmasq.conf. Aquí está el mío:

     [jenny@temerair ~] $ grep -v ^# /usr/local/etc/dnsmasq.conf | grep -v ^$ domain-needed bogus-priv resolv-file=/usr/local/etc/resolv.conf server=/ad.dybedahl.se/192.168.226.10 server=/226.168.192.in-addr.arpa/192.168.226.10 listen-address=127.0.0.1 no-negcache 

    Tenga en count la línea resolv-file . Le dice a dnsmasq qué serveres de nombres usar para los hosts que no están en la configuration dnsmasq. En mi caso, se ve así:

     [jenny@temerair ~] $ more /usr/local/etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.8.4 

    De modo que todas las búsquedas de DNS que mi server de AD virtual no responde serán manejadas por los serveres de nombres de Google, lo que significa que aún puedo conectarme a hosts que no están en mi configuration.

    En tercer lugar , para depurar si dnsmasq funciona correctamente, no use ping. En su lugar, usa dig, de esta forma:

     dig @127.0.0.1 abc.test 

    Para probar si su sistema está usando dnsmasq como su resolver, nuevamente use dig:

     dig abc.test 

    Te dirá qué server de nombres está usando, entre otras cosas.

    Dig le dará información sobre cómo se realiza realmente la búsqueda.

    En cuarto lugar , para usar dnsmasq como su resolver, también necesita cambiar /etc/resolv.conf para apuntar a 127.0.0.1 en lugar de lo que ahora apunte. Debería comenzar por copyr su /etc/resolv.conf actual a /usr/local/etc/resolv.conf , para que dnsmasq sepa qué serveres de nombres usar. A continuación, cambie /etc/resolv.conf para leer

     nameserver 127.0.0.1 

    En mi computadora portátil, hago esto en Preferences del sistema -> Red -> DNS. No estoy seguro de cómo lo haces en un server; quizás solo funcione editar el file.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).