Me gustaría obtener .localdirecciones (como test.local) para señalar, 127.0.0.1pero no funciona. Estoy en la última versión de Ubuntu. En /etc/NetworkManager/NetworkManager.conf lo comenté y dns=dnsmasqluego lo hice sudo service network-manager restart.
Luego instalé dnsmasq y agregué un address=/local/127.0.0.1archivo a /etc/dnsmasq.d/mycustomfile y luego lo hice sudo service dnsmasq restart. Aparte de lo que he mencionado, no hice otros cambios.
Pero cuando visito test.local no se resuelve en 127.0.0.1, hacer un ping de esa dirección .local tampoco tiene éxito. Tal vez el contenido de /etc/resolv.confsea relevante, es solo el valor predeterminado que no lo cambié:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 222.11.22.36
nameserver 222.11.22.37
Este es el resultado cuando ejecuto dnsmasq no como un demonio:
$ sudo dnsmasq --no-daemon
dnsmasq: started, version 2.68 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 222.11.22.37#53
dnsmasq: using nameserver 222.11.22.36#53
dnsmasq: read /etc/hosts - 9 addresses
Cuando dnsmasq se está ejecutando, /etc/resolv.conf se actualiza automáticamente (y vuelve a la entrada anterior cuando se detiene dnsmasq):
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
Y esto:
$ sudo nslookup test.local 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: test.local
Address: 127.0.0.1
Pero seguir haciendo un ping a localhost no funciona.
¿Qué debo hacer para que dnsmasq funcione para resolver direcciones .local?
fuente

Parece que dnsmasq está comenzando correctamente. Debe probar si dnsmasq funciona correctamente con
nslookup test.local 127.0.0.1.Para asegurarse de que el sistema esté usando dnsmasq, debe actualizar
/etc/resolv.confpara usarnameserver 127.0.0.1como primera opción.También puede usar una configuración de resolución ascendente custo en dnsmasq con
--resolv-file=/etc/resolv.conf.dnsmasq.fuente
/etc/dnsmasq.confarchivo original se deja como estaba originalmente, con todo comentado. ¿Hay cosas que necesito comentar a partir de ahí? (Es un archivo grande de más de 600 líneas). Lo único que descomenté fue la última líneaconf-dir=/etc/dnsmasq.dporque mi archivo de configuración personalizado está en ese directorio.conf-dirdirectiva carga todos los archivos dentro del directorio, por lo que puede organizarse en diferentes archivos, no necesariamente necesarios en su caso. Puede mantener el dnsmasq.conf original como está y poner su configuración en un archivo personalizado en /etc/dnsmasq.d, como ya lo ha hecho. No necesita sudo para ejecutar nslookup. Vuelva a probar connslookup test.local, utilizará la configuración de DNS a partir de/etc/resolv.confeste momento.Probablemente el avahi-daemon está usando el dominio "local". Ver:
https://unix.stackexchange.com/questions/352237/avahi-daemon-and-local-domain-issues
fuente
Si lo que quiere solo implica apuntar hacia atrás en su propia máquina, y no tratar de usar dnsmasq para controlar la resolución dns de otras computadoras, entonces lo que quiere es agregar algunas entradas
/etc/hosts. Le recomendé que deshaga todos sus cambios en dnsmasq y su configuración y asegúrese de que/etc/hoststenga lo siguiente en la parte superior:Después de esto, hacer ping a mycomputername.local apuntará a usted mismo (en realidad, apuntará al servidor dnsmasq que se ejecuta en 127.0.1.1, LUEGO a localhost). Incluso puede agregar entradas para otras computadoras en su red para que le parezca, en esta máquina, que las computadoras pueden ser referenciadas como
computer1.localcomputer2.localetc.Si parece que no puede deshacer sus cambios con dnsmasq, puede agregar esas entradas adicionales después
localhost, pero no elimine ni cambie lalocalhostentrada en sí. Así como esto:Por cierto: la forma correcta de modificar resolv.conf en el escritorio de Ubuntu es con el administrador de red en su barra de tareas. La forma correcta en el servidor Ubuntu es agregar
dns-nameserverentradas en su dispositivo de red/etc/network/interfacesy reiniciar o hacerifdown eth0 && ifup eth0. Como la advertencia en los/etc/resolv.confestados, no la modifique directamente, se escribe dinámicamente en función de la/etc/network/interfacesconfiguración.fuente
/etc/hostsno permite comodines, tendría que actualizarlo para cada nuevo.localdominio, por eso la gente usa dnsmasq incluso para la resolución local.