DNS configurado en systemd's 127.0.0.53: ¿cómo cambiar permanentemente?


38

Recientemente he actualizado a 17.10. Cuando intento navegar a un sitio web o hacer ping a un dominio, falla y dice que el sitio no se puede resolver.

network-adminmuestra el contenido de /etc/resolv.confsernameserver: 127.0.0.53

Si cambio eso a 8.8.8.8 o 208.67.222.222, entonces todo funciona. Hasta que reinicie.

Al reiniciar o reanudar, el servidor de nombres se restablece a 127.0.0.53.

¿Cómo configuro permanentemente el servidor de nombres en algo que funcione?


Para los fanáticos de systemd, si corro systemd-resolve --statusme sale

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Si sigo el consejo de esta pregunta, DNS se reinicia después de reiniciar. Ubuntu 17.10 - DNS aún no se resuelve.


systemctl stop systemd-resolvedy systemctl mask systemd-resolveddebería hacer el truco :)
Shayan

Respuestas:


28

Puede instalar un paquete resolvconf, que modificará la forma en que /etc/resolv.confse construye en el arranque del sistema.

sudo apt install resolvconf

Luego puede crear o modificar un archivo /etc/resolvconf/resolv.conf.d/tail. Si coloca en este archivo una línea nameserver 8.8.8.8, esta línea se agregará al final del /run/resolvconf/resolv.confinicio. /etc/resolv.confahora será un enlace simbólico a este archivo.


44
Esto funciona, ¡gracias! ¿Sabes si hay alguna forma de hacer que 127.0.0.53 funcione solo?
Terence Eden

1
Soy bastante nuevo en este asunto. Solo he estado tratando de deshacerme de los problemas de dns al encender / apagar vpn en las últimas semanas. Podrías intentarlo sudo dpkg-reconfigure resolvconf. Intenté esto últimamente, borré el archivo de cola, y al principio parece funcionar.
oscar1919

@TerenceEden si está buscando hacer que 127.0.0.53 funcione solo (como debería), eche un vistazo a mi respuesta: askubuntu.com/a/1083843/281191
intelfx

10

La solución correcta sería arreglar el sistema resuelto en lugar de tratar de curar la migraña con una guillotina.

Es una buena herramienta, realmente, si se usa correctamente.

A juzgar por su systemd-resolve --statussalida ...

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

... su herramienta de administrador de red no pasa la configuración de DNS por interfaz a systemd-resolve

Las versiones recientes de NetworkManager, por ejemplo, harían esto automáticamente si /etc/resolv.confun enlace simbólico apunta hacia adentro /run/systemd/resolveo hacia/usr/lib/systemd/resolv.conf . Alternativamente, las versiones recientes de systemd-resolve intentan ser compatibles con la interfaz resolvconf histórica instalando un resolvconfbinario que habla con systemd-resolve.

Si bien es preferible utilizar cualquiera de estas dos soluciones, si está buscando una solución rápida y sucia, puede configurar systemd-resolve para usar sus servidores DNS a nivel mundial:

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

Luego reinicie systemd-resolved.serviceo reinicie.


Al menos para mí, esta respuesta no funciona, usando ubuntu 18.04, después de cambiar la entrada "DNS", mantiene el 127.0.0.53
André M. Faria

1
@ AndréM.Faria aprende cómo funciona resuelto. 127.0.0.53es la dirección del solucionador de código auxiliar de almacenamiento en caché local. Reenvía las solicitudes DNS a los servidores DNS ascendentes que especifique.
intelfx

A veces sabes algo y simplemente lo ignoras, sí, tienes razón.
André M. Faria

1
También es bueno tener en cuenta aquí, que por defecto systemd-resolvedalmacena en caché las respuestas DNS. Si bien esto puede ser útil a veces, puede causar problemas en algunas situaciones. Descomente la cache=yeslínea en el archivo de configuración en la respuesta y configúrela en no.
Quentin Skousen

¿Qué hace que /etc/resolve.conf(o realmente, a lo /run/resolvconf/resolv.confque apunta el primero) se actualice? Sería bueno saberlo para las pruebas, sin que se requiera un supuesto reinicio. todo lo que puedo decir es que reiniciar systemd-resolved.serviceno parecía hacer el truco
bbarker

8

Yo uso Lubuntu y Kubuntu 18.04. Pude superar el problema de DNS en 2 pasos:

Primer paso: instalar unboundy configurar para reemplazar systemd-resolvedcomo Grégoire C se muestra aquí .

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound

reiniciar

Abrir como root el archivo /etc/NetworkManager/NetworkManager.conf

( sudo leafpad /etc/NetworkManager/NetworkManager.confen Lubuntu 18.04 o en Kubuntu 18.04 SUDO_EDITOR=kate sudoedit /etc/NetworkManager/NetworkManager.conf)

y debajo [main]pon esta línea:

dns=unbound

reiniciar de nuevo

Segundo paso: si después del reinicio el problema aún no se resuelve, como sucedió en mi caso, inicie el administrador de archivos como root, vaya a /etc, elimine resolv.confy cree uno nuevo resolv.conf. Déjelo vacío y reinicie el sistema operativo. En mi caso después de este reinicio, el problema desapareció.

En Kubuntu 18.04 no puede iniciar Dolphin como root, por lo que primero puede ir /etcy abrir el terminal desde allí, luego escribir sudo suy presionar Enter para usarlo como root y luego eliminar resolv.confcon el comando rm resolv.conf. Luego puede crear un nuevo archivo vacío en su escritorio, asignarle un nombre resolv.confy abrir un terminal desde allí. Use el sudo sucomando para ingresar al modo raíz del terminal y luego copie el nuevo resolv.confde su escritorio /etccon el comando cp resolv.conf /etc.

Tengo que agregar que no intenté hacer el segundo paso antes de instalar unbound, así que la próxima vez lo haré, solo para ver si será suficiente o no.


¿Por qué no solo editarlo como root y eliminar los contenidos?
Ballie

@Ballie He intentado esto al principio, pero no ayudó. También el original resolv.confde /etcse mostró como una especie de atajo, lo cual no es normal, creo. Es por eso que decidí eliminarlo y recrearlo creando un nuevo archivo vacío y nombrándolo resolv.conf. Y funcionó. Por esta razón, escribí anteriormente que la próxima vez que tenga que reinstalar el sistema operativo, intentaré hacerlo primero, sin hacer el "primer paso", para ver si sería suficiente. Pero el original resolv.confde /etclas necesidades a eliminar y crear de todos modos - sobre esto estoy seguro.
Калоян Грънчаров

Acabo de deshabilitar systemd-resolve.service y eliminé el enlace de resolv.conf y creé uno manualmente, ¡y funcionó!
André M. Faria

8

trabajando dentro del systemdparadigma agregue un DNS a un enlace / dispositivo

usando ubuntu 17.10+ agregue un *.networkarchivo:

sudo nano /lib/systemd/network/100-somecustom.network:

100-somecustom.network (100 puede ser cualquier número de prioridad, y requiere la .networkextensión del archivo):

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.222

Luego reinicie:

sudo service systemd-networkd restart

También mira en:

netplan apply

Entonces revisa:

systemd-resolve --status wlo1

Desde la página de información info systemd.network:

Además /etc/systemd/network, se pueden colocar directorios ".d" en los directorios / lib / systemd / network o / run / systemd / network . Los archivos incorporados en / etc tienen prioridad sobre aquellos en / run que a su vez tienen prioridad sobre aquellos en / lib. Los archivos desplegables en cualquiera de estos directorios tienen prioridad sobre el archivo netdev principal donde sea que se encuentre. (Por supuesto, dado que / run es temporal y / usr / lib es para proveedores, es poco probable que se usen drop-ins en cualquiera de esos lugares).

Otro enfoque deshabilita el DNSStubListeneruso con dnsmasq:

sudo nano /etc/systemd/resolved.conf:

#
DNSStubListener=false

relacionado:


Es extraño que haya declarado que DNSStubListener = false, pero que la configuración real comentada es DNSStubListener = yes, generalmente el inverso del valor "yes" es "no" y no "false", quien en caso de "false" generalmente era " cierto".
André M. Faria

Su respuesta para crear un archivo con extensión .network no funcionó.
André M. Faria

2

Así es como cambio mi registro dns en la configuración de la interfaz.

$ vi /etc/netplan/50-cloud-init.yaml

Cambie las direcciones del servidor de nombres, anteriormente era .4 y luego lo cambié a .3:

...
            nameservers:
                addresses:
                - 192.168.1.3
...

Guarde la configuración y luego aplique la configuración:

$ sudo netplan apply

Después de eso, reinicie el servicio resolvectl.

$ sudo systemctl restart systemd-resolved.service

Para notas: reinicié el servidor y los cambios que hice todavía están intactos. Yo uso el resolvctl dnscomando para verificar el registro dns.


Esta es realmente la respuesta correcta. Me sorprende que no sea el aceptado.
Toumal

0

Tuve algunos problemas con NordVPN, así que decidí agregar a esto.

Resultados:
NordVPN establece la /run/systemd/resolve/resolv.confconfiguración de DNS al conectarse.
NordVPN elimina todas las configuraciones de DNS /run/systemd/resolve/resolv.confcuando se desconecta.
Esto hace que el servidor DNS ya no funcione (ya que no hay un conjunto).

El sistema necesita un reinicio para volver a configurar cualquier cosa. Un reinicio estándar del servicio ( sudo systemctl restart systemd-resolved.service) no funciona.

La solución para solucionar esto:

sudo apt install resolvconf

Dirígete a /etc/resolvconf/resolv.conf.d/

cd /etc/resolvconf/resolv.conf.d/
sudo nano tail

Agregar servidores de nombres

nameserver 1.1.1.1
nameserver 1.0.0.1

Verifique los siguientes lugares para los servidores de nombres que podrían haberse configurado:

/run/resolvconf/interface/original.resolvconf
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
/etc/resolvconf/resolv.conf.d/head
/etc/systemd/resolved.conf
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

Pruebe con qué servidores DNS se están utilizando:

nslookup google.com

Server:         1.1.1.1
Address:        1.1.1.1#53

0

Tal vez un poco tarde, pero me encontré con este problema. Tengo que admitir que he estado configurando manualmente la configuración de mi red a través de cli antes y no a través del administrador de red incorporado. Ejecuto ubuntu 18.04.

Entonces, después de deshabilitar y luego volver a habilitar systemd.resolved.service, este comportamiento errático de perder aleatoriamente mi configuración de DNS se resolvió para mí.

systemctl disable systemd.resolved.service
reboot

después de reiniciar:

systemctl enable systemd.resolved.service
reboot

Soy un usuario de Linux relativamente nuevo, por lo que debe haber alguien que pueda explicarme cómo y por qué me habría funcionado, pero me pareció que valía la pena mencionar si puede ayudar a otros.


Intenta decepcionar, pero debe haber algo que hiciste en el medio que realmente solucionó el problema. Las operaciones que sugiere aquí solo pueden dejar el sistema como estaba.
Tishma

-1

Cuando se usa la resolución de nombres dhcp funciona como se esperaba en Ubuntu. Los problemas comienzan cuando quieres quedarte estático. cat /etc/resolv.confmostrará que tu dns es 127.0.0.53 y no las que tienes en el /etc/netplan/.yamlarchivo. Para solucionar esto, debe eliminar el /etc/resolve.confenlace y crear uno nuevo que apunte a/run/resolve/resolve.conf


Por favor, edite su respuesta y corrija el formato ...
Yufenyuy Veyeh Dider

-2

Esto requirió jugar un poco. Después de actualizar la configuración, reinicié. Utilizar:

ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

/etc/systemd/resolved.conf
DNS=8.8.8.8
Cache=no

System resolved failed
systemctl stop systemd-resolved
systemctl disable systemd-resolved

Cuando comente la "solicitud" de

# domain-name, domain-name-servers, domain-search, host-name,

Agregue esta línea a su /etc/dhcp/dhclient.conf:

 supersede domain-name "cwillenterprise.com";

Edite el archivo de configuración y agregue la entrada. Adicional no reemplazará.

Agregar entradas a /etc/resolvconf/resolv.conf.d/tail

nameserver 8.8.8.8
search "cwillenterprise.com"

Ejecutar para implementar cambios

resolvconf -u

1
Bienvenido a Ask Ubuntu ! Por favor, editar su respuesta al uso de formato de código para el código que se deben introducir en los archivos o terminal. No anteponga #a "comentarios" al código, significa encabezado en Markdown. Siempre verifique la vista previa de su publicación antes de enviarla.
Melebius
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.