administrador de red: cómo detener la actualización de nm /etc/resolv.conf


26

No quiero que el administrador de red agregue servidores DNS recibidos de DHCP a mi /etc/resolv.conf.

Al configurar desde GUI / Connections / IPV4 y elegir el método Automático (solo dirección), todavía agrega servidores DNS recibidos a través de DHCP.

¿Es posible hacerlo por conexión (ssid específico?)


Si elige el método "Solo direcciones automáticas (DHCP)", NetworkManager no cambiará o no debería cambiar resolv.conf al activar esa conexión. Si NetworkManager, de hecho, agrega direcciones a resolv.conf a pesar de la configuración de "solo direcciones", entonces hay un error en NetworkManager y usted debe informarlo con Launchpad. Para evitar que NetworkManager cambie resolv.conf, debe seleccionar "Solo direcciones automáticas (DHCP)" en todas las configuraciones de conexión que se activen en su sistema.
jdthood

1
Puede usar la GUI en la configuración de IPv4 en la conexión y elegir "solo direcciones" en el modo, o hacer lo que hace usted mismo editando el archivo de conexión correspondiente en / etc / NetworkManager / system-connections / y agregando ignore-auto -dns = línea verdadera a la sección [ipv4].
Sasha Pachev

Respuestas:


32

Una forma de evitar que Network Manager agregue servidores DNS al /etc/resolv.confarchivo es hacer esto:

Primero abra el archivo nm conf /etc/NetworkManager/NetworkManager.conf:

sudo vim /etc/NetworkManager/NetworkManager.conf

Y agregue esto a la [main]sección:

dns=none

Guardar y Salir.


La sección principal es [main], no[Main]
AB

/etc/resolv.confnormalmente es un enlace simbólico: ¿está seguro de que hacerlo inmutable hace que el objetivo del enlace también sea inmutable?
muru

55
Esto no funciona para mí en Debian
Jessie

55
Esto no funciona en Ubuntu 18.04
LuizAngioletti

1
Tenía que hacerlo sudo service network-manager restartantes de que el cambio en el archivo .conf entrara en vigencia.
Chris Moore el

3

Mi favorito personal es el uso de la línea supersede domain-name-serversen /etc/dhcp/dhclient.conf. No importa lo que proporcione el punto de acceso dns, su ubuntu siempre usará esos dns especificadosdhclient.conf

Muestra de mi archivo

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;

crear una línea como se describe (usando el servidor 8.8.8.8) no funciona en Ubuntu 18.04.
LuizAngioletti

3
@LuizAngioletti 18.04 está utilizando un tipo diferente de aplicación de administrador de red, llamada netplan. Esta respuesta fue escrita para versiones anteriores a 18.04. Sin embargo, puedo actualizarlo más tarde.
Sergiy Kolodyazhnyy

2

/etc/resolv.confestá vinculado a /run/resolvconf/resolv.conf. NetworkManager no actualiza /etc/resolv.conf directamente (solo actualiza /run/resolvconf/resolv.conf). Asi que:

  • eliminar enlace simbólico ( rm /etc/resolv.conf)
  • escribe tu propia versión de /etc/resolv.conf

1
Sé que este es un foro de ubuntu, pero mientras busqué en Google centos, este fue mi primer resultado en Google, por lo que publiqué comentarios para futuros google centos. Esto no resolvió mi problema en centos. Parece que el administrador de red de centos está trabajando directamente en /etc/resolv.conf.
Tommy

Esto no es cierto para Debian Stretch sin duda. Elimina su archivo y lo reemplaza con otro enlace simbólico. Muy molesto.
HörmannHH

Aquí hay uno para Fedora 25 (virtualizado) usando nmcli: En lo /etc/sysconfig/network-scripts/ifcfg-ens3que vemos, lo que PEERDNS=yessignifica (en este caso, incorrecto) la información DNS es obtenida por DHCP, y termina en /etc/resolv.conf. Solo quiero 127.0.0.1 como servidor de nombres. nmcli con mod ens3 ipf4.ignore-auto.dns yesResultado de ejecución PEERDNS=noen el archivo de configuración de la interfaz. Sin embargo, /etc/resolv.conftodavía tiene namseserverentrada extraviada , por lo que si tiene que reiniciar la conexión nmcli con down ens3; nmcli con up ens3. Ver también: certdepot.net/rhel7-configure-ipv4-addresses
David Tonhofer

En Ubuntu 18.04, reiniciar 'service network-manager restart' hará que NM sobrescriba /etc/resolv.conf incluso si es un archivo duro y no un enlace simbólico.
LuizAngioletti

0

Lo que hice en Debian Stretch:

  • rm /etc/resolv.conf ### (el enlace simbólico)
  • toque /etc/resolv.conf
  • echo "servidor de nombres xxxx" >> /etc/resolv.conf

Donde "xxxx" es su dirección IP de servidor DNS preferida, ya sea de OpenDNS, Google o Cloudflare, por ejemplo.

Gracias por la idea Taha Jahangir! Puedo confirmar que su sugerencia funcionó para mi distribución Debian Stretch

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.