Me gustaría obtener .local
direcciones (como test.local) a las que señalar, 127.0.0.1
pero no funciona. Estoy en la última versión de Ubuntu. En /etc/NetworkManager/NetworkManager.conf comenté dns=dnsmasq
y luego lo hice sudo service network-manager restart
.
Luego instalé dnsmasq y agregué un archivo address=/local/127.0.0.1
a /etc/dnsmasq.d/mycustomfile y luego lo hice sudo service dnsmasq restart
. Aparte de lo que he mencionado, no hice ningún otro cambio.
Pero cuando visito test.local no se resuelve en 127.0.0.1 y tampoco se realiza un ping a esa dirección .local. Tal vez el contenido de /etc/resolv.conf
sea relevante, es solo el valor predeterminado. 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 ping a localhost no funciona.
¿Qué debo hacer para que dnsmasq funcione para resolver direcciones .locales?
Respuesta1
local
Parece ser algún tipo de palabra clave reservada, al menos en Ubuntu:
address=/local/127.0.0.1
-- no funciona.address=/loc/127.0.0.1
-- obras.
Respuesta2
Parece que dnsmasq se está iniciando 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 para /etc/resolv.conf
usarlo nameserver 127.0.0.1
como primera opción.
También puede utilizar una configuración de resolución ascendente de custo en dnsmasq con --resolv-file=/etc/resolv.conf.dnsmasq
.
Respuesta3
Probablemente el demonio avahi esté utilizando el dominio "local". Ver:
https://unix.stackexchange.com/questions/352237/avahi-daemon-and-local-domain-issues
Respuesta4
Si lo que desea solo implica apuntar a su propia máquina y no intentar usar dnsmasq para controlar la resolución de DNS de otras computadoras, entonces lo que desea es simplemente agregar algunas entradas en el archivo /etc/hosts
. Le recomiendo que deshaga todos los cambios en dnsmasq y su configuración y se asegure de que /etc/hosts
tenga lo siguiente en la parte superior:
127.0.0.1 localhost
127.0.1.1 mycomputername mycomputername.local anothername.local
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 se puede hacer referencia a las computadoras como computer1.local
computer2.local
etc.
192.168.1.31 computer1.local
192.168.1.32 computer2.local
Si parece que no puede deshacer los cambios con dnsmasq, puede agregar esas entradas adicionales después de localhost
, pero no elimine ni cambie la localhost
entrada en sí. Entonces así:
127.0.0.1 localhost mycomputername mycomputername.local anothername.local
Por cierto: la forma correcta de modificar resolv.conf en el escritorio de Ubuntu es con el administrador de red en la 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 hacerlo ifdown eth0 && ifup eth0
. Como dice la advertencia /etc/resolv.conf
, no la modifique directamente, se escribe dinámicamente según /etc/network/interfaces
la configuración.