Después de actualizar /etc/network/interfaces
con algo muy similar al siguiente, ¿cómo puedo /etc/resolv.conf
actualizar? Lo intenté (como root) resolver -u
, service networking restart
pero no funcionaron. También arreglé el enlace simbólico resolv.conf
e intenté resolver -u
nuevamente. 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 restart
No siempre es una forma confiable de actualizar todas las interfaces.El
resolvconf -u
comando solo se actualizaresolv.conf
desde 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
-a
o-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-nameservers
línea en/etc/network/interfaces
# ifdown eth01; ifup eth01
Tenga 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 otraethxx
conexión.fuente
service resolvconf restart
regenerará el/etc/resolv.conf
archivo sin mucho alboroto.fuente
Failed to restart resolvconf.service: Unit resolvconf.service not found.
/etc/resolv.conf
en 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/interfaces
no 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/interfaces
archivo y canalizar esas líneas en el comando.sudo resolvconf -a eth0
En 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/interfaces
archivo y escupe toda la información necesaria que necesita para ejecutar elsudo resolvconf -a eth0
comando:Tenga en cuenta que esto produciría la misma salida que el comando:
Siempre que el
/etc/network/interfaces
archivo esté configurado con esta información:fuente
/etc/network/interfaces
es una opción válida en ese caso. (Ubuntu 14.04)Respuesta simple:
Simplemente instale resolvconf.
apt install resolvconf
Después de eso,
ifup eth0
actualiza el dns enetc/resolv.conf
, de acuerdo con ladns-nameservers
lí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
resolvconf
instalado.No parece ser por defecto, y sin él algunos (!) Cambios
/etc/network/interfaces
se 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
networking
yresolvconf
no está instalado por defecto, he logrado regenerarresolv.conf
reiniciandonetwork-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/interfaces
utilizadns-nameservers
(observes
el final) mientras queresolvconf
utilizanameserver
. El comando no se ocupa de eso. E incluso si todo fuera correcto, la tuberíased | grep | sed
definitivamente no sería la forma más eficiente.