Después de actualizar /etc/network/interfacescon algo muy similar al siguiente, ¿cómo puedo /etc/resolv.confactualizar? Lo intenté (como root) resolver -u, service networking restartpero no funcionaron. También arreglé el enlace simbólico resolv.confe intenté resolver -unuevamente. Finalmente, frustrado, reinicié, lo que solucionó el problema mediante la reconstrucción /etc/resolv.conf.
Ubuntu 12.04, servidor de 64 bits, todos los últimos parches instalados.
Ejemplo /etc/network/interfaces:
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10
server
dns
resolv.conf
nslntmnx
fuente
fuente

Respuestas:
service networking restartNo siempre es una forma confiable de actualizar todas las interfaces.El
resolvconf -ucomando solo se actualizaresolv.confdesde la propia base de datos de resolvconf. Necesita actualizar la base de datos.Para actualizar la base de datos, debe llamar a resolvconf con la opción
-ao-d. Eso sucede detrás de escena cuando ejecutas ifup o ifdown. Entonces, normalmente, como con cualquier otro cambio a/etc/network/interfaces, para activar los cambios en las opciones dns- *, debe desactivar la interfaz en cuestión y volver a activarla. O puedes reiniciar.Si desea realizar cambios en una interfaz sin desactivarla (tal vez porque está administrando la máquina de forma remota y está conectado a través de esa interfaz, natch), puede obtener el mismo resultado ejecutando resolvconf directamente desde la línea de comandos. Esto requiere un poco más de conocimiento de la semántica de resolvconf. Suponga que la estrofa / e / n / i relevante es
donde FFFF es una familia de direcciones ("inet" o "inet6").
Para activar estas opciones dns- *, ejecute resolvconf de la siguiente manera (sí, con nuevas líneas en la cadena canalizadas a resolvconf).
Para la estrofa dada en la pregunta, esto sería lo siguiente.
Consulte la página del manual resolvconf (8) y el archivo README del paquete resolvconf (/usr/share/doc/resolvconf/README.gz) para obtener más información.
fuente
resolvconf:)/etc/network/interfaces, puede hacer esoifdown eth0 && ifup eth0:; funciona incluso en una sesión ssh remota.Aunque la página de manual no está instalada por defecto, está documentada a través de la opción de scripts de actualización, solo ejecute:
fuente
Para aquellos de ustedes que administran sus servidores de forma remota, pueden:
dns-nameserverslínea en/etc/network/interfaces# ifdown eth01; ifup eth01Tenga en cuenta que esto tiene que estar en una línea dividida con; (el separador de línea de comando de Linux). Ni siquiera deberías perder tu conexión actual. La excepción es hacer un error tipográfico en el archivo de interfaces. Si esto sucede
ifup, fallará y tendrá que tener acceso físico u otraethxxconexión.fuente
service resolvconf restartregenerará el/etc/resolv.confarchivo sin mucho alboroto.fuente
Failed to restart resolvconf.service: Unit resolvconf.service not found./etc/resolv.confen el servidor ubuntu 14.04Esta respuesta es similar a la anterior pero usa la configuración de ejemplo de preguntas para responder la pregunta. Además, esto explica por qué ambos comandos son necesarios.
Editar
/etc/network/interfaces:Estos cambios no tendrán lugar a menos que reinicie o vuelva a cargar el archivo de configuración:
Para actualizar el archivo de interfaces en vivo, es necesario ejecutar el siguiente comando:
Esto permite una actualización de la interfaz sin necesidad de reiniciar o volver a cargar.
Sin embargo, los cambios de comando anteriores se perderán después de un reinicio si
/etc/network/interfacesno se realizan los cambios en el .Por cierto, la última respuesta de BDenis en esta lista realmente funciona en lugar del último comando al analizar el
/etc/network/interfacesarchivo y canalizar esas líneas en el comando.sudo resolvconf -a eth0En realidad, es la mitad de la respuesta y un muy buen ejemplo de análisis de sed en línea. Si desea ver cómo lo hace, simplemente ejecute la primera parte del comando y observe cómo analiza el/etc/network/interfacesarchivo y escupe toda la información necesaria que necesita para ejecutar elsudo resolvconf -a eth0comando:Tenga en cuenta que esto produciría la misma salida que el comando:
Siempre que el
/etc/network/interfacesarchivo esté configurado con esta información:fuente
/etc/network/interfaceses una opción válida en ese caso. (Ubuntu 14.04)Respuesta simple:
Simplemente instale resolvconf.
apt install resolvconfDespués de eso,
ifup eth0actualiza el dns enetc/resolv.conf, de acuerdo con ladns-nameserverslínea en/etc/network/interfaces.fuente
En 18.04, lo siguiente funciona de manera confiable (ejecutarse como root):
Importante: asegúrese de tener el paquete
resolvconfinstalado.No parece ser por defecto, y sin él algunos (!) Cambios
/etc/network/interfacesse ignoran silenciosamente (por ejemplodns-*).fuente
Esto funcionó para mí:
Ajustar en consecuencia.
fuente
En la versión de escritorio de Ubuntu 18.04, donde no hay servicio
networkingyresolvconfno está instalado por defecto, he logrado regenerarresolv.confreiniciandonetwork-manager:fuente
También puedes probar este comando:
fuente
dns-nameserver IP1 IP2. La línea debe repetirseresolv.conf, pero no lo es./etc/network/interfacesutilizadns-nameservers(observesel final) mientras queresolvconfutilizanameserver. El comando no se ocupa de eso. E incluso si todo fuera correcto, la tuberíased | grep | seddefinitivamente no sería la forma más eficiente.