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,

  • El logging de la console está lleno de errores tcp principalmente de Safari, todos provienen de dominios de google
  • Forzar sistema para usar el file local de hosts antes de DNS (OS X El Capitan)
  • Hacer asociaciones de files para iniciar una cierta extensión, ¿pero con un progtwig de console?
  • Definición de variables de entorno con launchd / launchctl
  • ¿Cuál es el valor para DNS cuando dejas DNS en blanco en IP estática?
  • Launchd se ejecuta una vez por inicio en lugar de en cada inicio de session
  •  # 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.

  • Cómo hacer un LaunchAgent con StartCalendarInterval
  • Agregar input ARP estática al inicio
  • No se puede usar launchctl como usuario no root
  • ¿Establecer dinámicamente la variable de entorno HOME en un script de lanzamiento?
  • ¿Cómo se usa scutil para establecer un server DNS específico del dominio?
  • Asignar determinados puertos a URL a través de un file de hosts o un solucionador de DNS
  • 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).