Me gustaría obtener .local
direcciones (como test.local) para señalar, 127.0.0.1
pero no funciona. Estoy en la última versión de Ubuntu. En /etc/NetworkManager/NetworkManager.conf lo comenté y dns=dnsmasq
luego lo hice sudo service network-manager restart
.
Luego instalé dnsmasq y agregué un address=/local/127.0.0.1
archivo 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.conf
sea 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.conf
para usarnameserver 127.0.0.1
como 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.conf
archivo 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.d
porque mi archivo de configuración personalizado está en ese directorio.conf-dir
directiva 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.conf
este 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/hosts
tenga 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.local
computer2.local
etc.Si parece que no puede deshacer sus cambios con dnsmasq, puede agregar esas entradas adicionales después
localhost
, pero no elimine ni cambie lalocalhost
entrada 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-nameserver
entradas en su dispositivo de red/etc/network/interfaces
y reiniciar o hacerifdown eth0 && ifup eth0
. Como la advertencia en los/etc/resolv.conf
estados, no la modifique directamente, se escribe dinámicamente en función de la/etc/network/interfaces
configuración.fuente
/etc/hosts
no permite comodines, tendría que actualizarlo para cada nuevo.local
dominio, por eso la gente usa dnsmasq incluso para la resolución local.