Mi servidor DNS es 192.168.1.152
.
Este DNS es proporcionado a los clientes por DHCP. Los clientes de Windows en mi LAN resuelven los nombres correctamente usando ese DNS, pero mi Ubuntu VM no lo hace.
La VM está configurada con redes de puente y se proporciona correctamente el servidor DNS, pero mis nombres de host locales no se resuelven con nslookup o navegadores.
Aquí está nslookup
uno de mis dominios locales:
# nslookup unraid.local
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find unraid.local: SERVFAIL
Esto es lo que debe resolver usando mi servidor DNS:
# nslookup unraid.local 192.168.1.152
Server: 192.168.1.152
Address: 192.168.1.152#53
Name: unraid.local
Address: 192.168.1.152
/etc/resolv.conf
tiene un servidor de nombres incorrecto:
# 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
Ejecuté ese comando. En Servidores DNS, confusamente, especifica el servidor correcto (y mi puerta de enlace predeterminada).
root@ubuntu:~# systemd-resolve --status
Global
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 2 (ens33)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.152
192.168.1.1
No quiero "codificar" la IP del servidor DNS en un archivo de configuración porque no podré resolverlo cuando cambie las redes.
¿Cómo puedo obtener resolvconf y NetworkManager para configurar automáticamente la IP del servidor DHCP /etc/resolv.conf
?
fuente
Conocido systemd fallo .
Solución temporal sin necesidad de reconfigurar si cambia la IP del DNS:
fuente
/etc/resolv.conf
proviene/run/systemd/resolve/stub-resolv.conf
es bollox, debe tenerse en/run/systemd/resolve/resolv.conf
cuenta que/etc/resolv.conf
realmente no existe en ninguno de los casosping
funciona entonces?host
ynslookup
resuelva los nombres de host de forma diferente aping
owget
. Es posible que deba buscar/etc/nsswitch.conf
una solución.Finalmente obtuve una solución para este problema para ubuntu 17.10. Por defecto, esta versión de Ubuntu usa
systemd-resolved
, que espero sea estable para las próximas versiones.Para utilizar dns personalizados en lugar de la memoria caché local resuelta por systemd, haga lo siguiente:
agregar nuevos servidores de nombres. Edite el archivo
/etc/systemd/resolved.conf
como sudoer. Aquí he comentado la entrada DNS y coloqué mi dns[Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
cancelar el enlace simbólico real a
/etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo service systemd-resolved restart
sudo systemctl restart networking
Y ahora, si busca un nombre proporcionado por su dns adicional, debería ver resuelto el registro
dig nexus.default.svc.cluster.mydomain
El último paso es actualizar el orden de resolución
/etc/nsswitch.conf
, colocando el dns antes del mdns4_minimalfuente
Creé un script que soluciona el problema de que Netplan no admite actualmente la capacidad de reemplazar los servidores DNS y el orden de búsqueda de dominio proporcionados por DHCP. Crea el archivo Netplan yaml y configura systemd-resolve para que funcione como se espera.
fuente
La solución que funcionó para mí está publicada aquí en mi blog
Use nano editor para editar estos 2 archivos
Agregue los servidores DNS que desea usar
Luego reinicie el servicio
Revision final:
Hacer nslookup
Acabo de usar esto y solucionó el problema en mi computadora portátil en casa, pero en algún momento en el futuro cuando esté fuera de mi red doméstica puedo ver que causará problemas, porque el servidor DNS primario y secundario seguirá siendo mi hogar servidores con sus direcciones lan.
fuente
/etc/resolv.conf
no funciona ya que el archivo se sobrescribirá durante elsystemd-resolved
reinicio. Solo edita/etc/systemd/resolved.conf
. Vea mi respuesta aquí: askubuntu.com/questions/977243/ubuntu-17-10-disable-netplan/…Tu
/etc/resolv.conf
no es el problema.systemd-resolved
solo está predeterminado en no configurado, por lo que falla en todas las búsquedas. Siéntase libre de despotricar sobre Unconfigured vs A Razonable Default.Agregar manualmente servidores de nombres a
systemd-resolved
. (edición según el comentario de Olorin a continuación para agregarmkdir
, ruta correcta/etc
no/lib
, para sobrevivir a las actualizaciones del sistema)Añadir:
Luego...
systemd-resolved
es inteligente, pero no está configurado como es, por parte de los mantenedores de paquetes, simplemente se ve estúpido porque los mantenedores de paquetes no creen en un incumplimiento razonable. Podemos poner 13 servidores raíz de Internet allí también conocidos como "djb way", o 10 servidores opennic: https://pastebin.com/JBfYVVtG o los tres servidores opennic más rápidos, medidos por namebench. Más servidores de nombres ISP, claro. Además de Google, claro.systemd-resolved
No es el problema. Yo soy el problemafuente
/usr/lib
, es probable que se sobrescriban en la actualización del paquete. Creo que un archivo correspondiente en algún lugar/etc/systemd
es el camino a seguir (ya debería estar/etc/systemd/resolved.conf
listo para ser editado por los administradores).En mi sistema encontré un mal enlace simbólico:
/etc/resolv.conf
era un enlace simbólico que apunta a/run/systemd/resolve/stub-resolv.conf
Este archivo contiene solo una línea:
Como resultado, a menudo faltaba la búsqueda de DNS de la red local.
Entonces, en cambio, cambié
/etc/reolv.conf
para señalar/run/systemd/resolve/resolv.conf
y ahora funciona correctamente
fuente
Es extraño, pero la única solución que funcionó para mí en Ubuntu 18.04 fue la que encontré aquí :
Primero, cambie
/etc/resolv.conf
configurando el servidor de nombres deseado :Establecer, por ejemplo,
Y luego hacer
Esto protege el
/etc/resolv.conf
archivo para que nadie pueda modificarlo, incluido el usuario root.fuente
Tengo el mismo problema. Cada reinicio, nada se resolverá. Ya desinstalé todo y lo reinstalé unas 50 veces. Simplemente está roto.
así que la solución es ... "solo aplique algunas configuraciones cada vez que inicie su PC, lo que permite que se resuelva el 90% de los nombres de host, pero las actualizaciones y actualizaciones de wget y apt-get fallarán aleatoriamente sin ninguna razón"
cat /etc/systemd/resolved.conf
Cuando use Ubuntu 17.10 Desktop, debe editar el archivo que dice NO EDITE ESTE ARCHIVO BLAH BLAH BLAH
bueno, esa es la ÚNICA forma en que funciona ~!
Por lo tanto, elimine la IP 127.0.0.53 como servidor de nombres e ingrese otra, por ejemplo, google. Parece que mi dirección IP DNS real tampoco resuelve los nombres de host (a pesar de que funciona en otras 10 máquinas y dispositivos en la casa), pero Google funciona bien.
fuente