La mayoría de la información que veo en línea dice que se edite /etc/resolv.conf
, pero cualquier cambio que haga allí se anula.
$ cat /etc/resolv.conf
# 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
nameserver 127.0.1.1
Parece que 127.0.1.1 es una instancia local de dnsmasq
. Los dnsmasq
documentos dicen editar /etc/resolv.conf
. Intenté poner servidores de nombres personalizados /etc/resolv.conf.d/base
, pero los cambios no aparecieron /etc/resolv.conf
después de la ejecución sudo resolvconf -u
.
Para su información, no quiero cambiar el DNS por conexión, quiero establecer la configuración predeterminada de DNS para usar en todas las conexiones cuando no se especifique lo contrario.
ACTUALIZAR:
Yo mismo respondí esta pregunta: https://unix.stackexchange.com/a/163506/67024
Creo que es la mejor solución ya que:
- Funciona.
- Requiere la menor cantidad de cambios y
- Todavía funciona junto con el caché DNS de dnsmasq, en lugar de omitirlo.
dns=none
en/etc/NetworkManager/NetworkManager.conf
(ver detalles en mi respuesta a continuación).Respuestas:
Creo que si desea anular el servidor de nombres DNS, simplemente agregue una línea similar a esta en su
base
archivo debajoresolv.conf.d
.Ejemplo
Luego ponga su lista de servidores de nombres de esta manera:
Finalmente actualizar
resolvconf
:Si echa un vistazo a la página del manual,
resolvconf
se describen los diferentes archivos que se encuentran debajo/etc/resolvconf/resolv.conf.d/
.Aunque hay una advertencia en la parte superior del
head
archivo:esta advertencia está ahí para que, cuando se construyan estos archivos, la advertencia finalmente llegue al
resolv.conf
archivo resultante que se utilizarán para crear estos archivos. Por lo tanto, también podría haber agregadonameserver
albase
archivo las líneas que se describen anteriormente para el archivohead
.Referencias
fuente
base
yresolvconf -u
los ejecuté, los servidores de nombres no se pusieron en resolv.conf - cuando puse los servidores de nombreshead
, fueron/run/resolvconf/interface/NetworkManager
nslookup google.com
y la primera IP en la lista debería ser su nuevo servidor de nombres, si no, lo hizo mal/etc/resolvconf/resolv.conf.d/head
solo se agregaba , no conbase
. Confirmó connslookup google.com
.resolvconf
instalado. Puedes instalarlo haciendosudo apt-get install resolvconf
.También estoy interesado en esta pregunta y probé la solución propuesta @sim.
Para probarlo, pongo
en
/etc/resolvconf/resolv.conf.d/base
yen
/etc/resolvconf/resolv.conf.d/head
Luego reinicié la red con
El resultado es que
/etc/resolv.conf
parecey
nm-tool
afirma que el servidor dns soncuáles son las proporcionadas por mi enrutador. Por otro lado, cavar una dirección dice que
Si tengo razón, concluyo de todo esto que
En general, funciona, pero no creo que sea el resultado deseado solicitado. Una solución más cercana, creo, es la siguiente. Editar
Luego añade
El resultado es el siguiente: resolv.conf contiene solo 127.0.0.1, lo que significa que se invoca dnsmasq cache y nm-tool dice
lo que significa que si el nombre buscado no está en la memoria caché, se solicita en 8.8.8.8 y no en el servidor proporcionado por dhcp.
Otra opción (quizás mejor) es usar "anteponer" en lugar de "reemplazar": de esta manera, si el nombre no se resuelve en 8.8.8.8, la solicitud recae en el otro servidor. De hecho, nm-tool dice
fuente
Descubrí que puede cambiar los servidores de nombres que
dnsmasq
usa agregando las siguientes líneas a/etc/dnsmasq.conf
:Sin embargo, no tenía un
/etc/dnsmasq.conf
archivo, ya que está instalado por el paquete dnsmasq, pero Ubuntu solo viene con dnsmasq-base. Corrísudo apt-get install dnsmasq
, luego edité/etc/dnsmasq.conf
, luegosudo service dnsmasq restart
ysudo service network-manager restart
.Corrí
sudo tail -n 200 /var/log/syslog
para verificar mi syslog y verificar quednsmasq
estaba usando los servidores de nombres que especifiqué:fuente
sudo service network-manager restart
)Para situaciones de IP estática, la Guía del servidor de Ubuntu dice que cambie el archivo / etc / network / interfaces, que puede verse así:
Cambia las IP 192.168.3.45 192.168.8.10 por las que desea, como 8.8.8.8
https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Página 38
fuente
ifdown eth0; ifup eth0
.Abrelo
Luego seleccione WiFi o Ethernet, o lo que sea que esté usando, y haga clic en editar. Obtendrás esto:
Seleccione ipv4 en pestañas
Ingrese su nombre DNS a continuación y guárdelo
Ya terminaste
fuente
sudo service network-manager restart
, esperar un poco, verificar connmcli d list | grep 'DNS\|IP-IFACE'
. Y haga ping a su cliente interno por su nombre.Una solución rápida y sucia que aún no se mencionó es establecer el indicador inmutable en el
resolv.conf
archivo justo después de editarlo.Agregue esto y guarde:
Entonces:
Eso debería hacer el truco. También hago esto en mi sistema.
fuente
Configuración de DNS en Linux
El uso de DNS en Linux se realiza a través de un conjunto de rutinas en la biblioteca C que proporcionan acceso al Sistema de nombres de dominio de Internet (DNS). El archivo de configuración de resolución (
resolv.conf
) contiene información que las rutinas de resolución leen la primera vez que un proceso las invoca. En resumen, cada proceso que solicite DNS se leerá/etc/resolv.conf
en la biblioteca. El NSS se superpone en capas y está configurado por/etc/nsswitch.conf
.La configuración de DNS de Linux se encuentra en el archivo
/etc/resolv.conf
PERO hay una serie de programas / servicios que desean administrar y manejar automáticamente el archivo de configuración de DNS en/etc/resolv.conf
. En algunas situaciones, es posible que desee administrar este archivo usted mismo. Cada programa / servicio que administra DNS tiene sus propios archivos de configuración como/etc/dnsmasq.conf
(para el servicio dnsmasq) y agrega la configuración de DNS en el cambio de conexión y / o en otros eventos ... una solución rápida es bloquear el archivo de configuración de DNSchattr +i /etc/resolv.conf
pero esto no es recomendable en cierto caso, una mejor solución es configurar correctamente todos los programas / servicios usando el DNS como (dnsmasq / network-manager / resolvconf / etc.)Recuperando el control de DNS
Aquí hay una lista exhaustiva de configuraciones para recuperar el control de resolv.conf y evitar que se sobrescriba ( cómo deshabilitar / configurar DNS desde otra ubicación que no sea resolv.conf ) tenga en cuenta que resolvconf es un programa independiente de resolv.conf, también dependiendo de su sistema / configuración, es posible que no tenga uno o muchos de los programas enumerados aquí.
1. Resolvconf:
Archivos de configuración
Actualiza la configuración
Deshabilitar resolvconf
2. Servicio Dnsmasq:
Archivos de configuración
Actualiza la configuración
3. Administrador de red:
Archivos de configuración
Deshabilitar DNS
Habilitar DNS
Usar servicio resuelto
Use resolvconf
Actualiza la configuración
4. Interfaces de red:
Archivos de configuración
Actualizar la configuración
5. Cliente DHCP:
Archivos de configuración
Actualizar la configuración
6. Servicio de Rdnssd:
Deshabilitar rdnssd
7. Servicio resuelto:
Deshabilitar resuelto
8. Netconfig:
Archivos de configuración
Deshabilitar netconfig
Actualizar la configuración
Configuración del servidor DNS
Ejemplo de una
/etc/resolv.conf
configuraciónfuente
Mi problema era un poco diferente, quería anular los servidores DNS de mis enrutadores. Encontré este enlace de Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers
Dice: si desea anular la configuración de DNS que le proporcionó un servidor DHCP, abra
y agregue la siguiente línea:
reemplazando
<dns_ip_address*>
artículos con el contenido apropiado.fuente
dhcp3
carpeta? Tengo Xubuntu 17.10, ¿se ha movido a/etc/dhcp
simplemente?Tal vez me falta algo, pero de acuerdo con las instrucciones de configuración en https://help.ubuntu.com/14.04/serverguide/network-configuration.html, todo lo que debe hacer es actualizar lo siguiente. No estoy ejecutando un proxy, solo una máquina detrás de un firewall y DNS local (el ejemplo muestra Google, pero configúrelo en lo que necesite).
Defecto:
ACTUALIZADO:
Reinicia, si puedes.
fuente
Intenta agregar
dns-nameservers XXX.XXX.XXX.X
a tu/etc/networking/interfaces
archivo.fuente
Algunas de las respuestas aquí funcionan bien. Sin embargo, yo no estaba contento con el hecho de que tengo que ir manualmente a través de archivos de configuración sólo para establecer la "adecuada"
DNS
, que yo ya estoy recibiendo másDHCP
conNetworkManager
.Investigué un poco y noté que el
/etc/resolv.conf
archivo es en realidad un enlace y está apuntando/run/systemd/resolve/stub-resolv.conf
. Después de experimentar un poco, parece que el/run/systemd/resolve/
directorio contiene otro archivo llamadoresolv.conf
que ya contiene la configuración que recibió a través deDHCP
. Entonces, en lugar de tener que sobrescribir / crear manualmente los archivos de configuración/etc/
, simplemente puede volver a vincular/etc/resolv.conf
para apuntar al/run/systemd/resolve/resolv.conf
archivo y todo debería estar bien:Ahora debería poder editar la configuración incluso desde Network Manager en Gnome. :)
No estoy seguro de si esto funcionará en ubuntu anteriores, pero lo hace en Ubuntu 17.10.
fuente
systemd-resolve --flush-cache
el archivo original vinculado aparentemente seEDITAR MAYO 6,2016
He escrito un script para actualizar todas las configuraciones para las conexiones del sistema en el
/etc/Network-Manager/system-connections/
directorio. La GUI que usa para editar conexiones individuales edita un archivo en particular en ese directorio. El script actualiza todos los archivos, solo busca a aquellos que no tienen dns configurado con grep y lo configura con awk.Dado que el acceso a esos archivos requiere
sudo
acceso, ejecute este script consudo
y luego, reinicie el administrador de redGuión en acción:
POST ORIGINAL Algunos usuarios aquí señalaron que DNS está controlado de alguna manera por
dnsmasq
. Eso es de hecho cierto. Me he enfrentado a un problema algo menor, donde no importa cómo cambiéhead
obody
en qué lugar/etc/resolvconf/resolv.conf.d
, mi computadora en realidad no podía acceder internado por nombre de dominio, solo funcionaba con direcciones IP.Lo que hice fue editar el
/etc/NetworkManager/NetworkManager.conf
archivo. Originalmente, se dijodns=dnsmasq
pero lo cambió a:dns=208.67.222.222
. Aunque de esta manera,nm-tool
no menciona 208.67.222.222, todavía pude usar nombres de dominio, no solo direcciones IP.Así
NetworkManager.conf
es como se ve mi archivo ahora:NOTA: Para obtener más detalles sobre mi problema y esta solución, consulte mi publicación en askubuntu.com .
ACTUALIZACIÓN # 1
Al regresar a casa desde la universidad hoy, descubrí que no podía conectarme a la red WiFi de mi casa. He leído un poco
man NetworkManager.conf
y resulta quedns=
en[main]
realidad es una línea para complementos, por lo que la línea endns=dnsmasq
realidad está agregando el complemento dnsmasq al NetworkManager, aparentemente.Entonces mi solución aún funcionó, solo que no como esperaba. Aquí hay un extracto de la página del manual:
Entonces, al configurar
dns=208.67.222.222
, es posible que, básicamente, haya evitado que NetworkManager use ese complemento, que de lo contrario usaría el servidor DNS local (que aparentemente no funciona).fuente
Hay dos métodos
Método 1
El servidor DNS a utilizar se puede cambiar actualizando el
head
archivo enresolv.conf.d
y luego correr
Lo anterior generará un
resolv.conf
archivo genérico en el/etc
directorio. Todas sus solicitudes de resolución se enviarán al servidor de nombres mencionado anteriormente. ResueltoSin embargo, hay implicaciones para esto. Cuando se utiliza
resolvconf
para consultar directamente1.1.1.1
las resoluciones de dirección, el poder de almacenamiento en caché proporcionado por dnsmasq se ha ido. Cada solicitud irá a1.1.1.1
Método 2
Si no desea que suceda lo anterior y use dnsmasq para resoluciones DNS, consulte esta respuesta. La respuesta se describe simplemente aquí.
Agregue el siguiente contenido en el
/etc/dnsmasq.conf
archivo.Luego reinicie el servicio dnsmasq
Las cosas funcionarán bien. Resuelto
fuente
La forma fácil de cambiar DNS:
Si surgen problemas, instale
nano
:luego ..
dns-nameservers
dns-nameservers 199.85.126.10 199.85.127.10
Espero que esta sea la mejor manera, por cierto lo hice así en un VPS.
fuente
en la raíz:
dns=dnsmasq
sobre/etc/NetworkManager/NetworkManager.conf
supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;
al final de/etc/dhcp/dhclient.conf
sudo service network-manager restart
A continuación se realizan los cambios que se muestran arriba:
Espere 7/10 segundos para finalizar el proceso de reinicio, verifique su configuración con "nslookup nist.gov". Funciona bien en Ubuntu LTS 14.04.
fuente
NB: Como la mayoría de las respuestas, esta supone el uso de NetworkManager. Sin embargo, a diferencia de la mayoría de las otras respuestas, no asume el uso de
resolvconf
,dhclient
ni nada más, tenga cuidado de que puedan hacerse cargo, sin embargo (ver actualización).Dado el número de puntos de vista de esta pregunta, es bastante increíble que esta solución de 8 caracteres aún no se haya publicado: según
man NetworkManager.conf
,Por lo tanto, agregue
en la
[main]
sección de/etc/NetworkManager/NetworkManager.conf
luego reinicie NetworkManager y ya no se modificará/etc/resolv.conf
.Tenga en cuenta que la configuración
rc-manager=unmanaged
debe ser equivalente adns=none
, y esa configuraciónrc-manager=symlink
junto con tener/etc/resolv.conf
como enlace simbólico puede ser una mejor idea (lea la página de manual mencionada anteriormente).Actualización:
Después de que NetworkManager dejó de sobrescribir
/etc/resolv.conf
, pensé quedhcpcd
ya estaba reemplazando/etc/resolv.conf
por un archivo vacío inútil en el arranque. La página de manual dedhcpcd.conf
ayuda, es suficiente para agregaren tu
dhcpcd.conf
(el mío está adentro/etc/dhcpcd.conf
).fuente
En mi servidor Linux centos7, la mejor manera de cambiar esta opción era usar
comando que no se sugiere en ninguna respuesta aquí. Puede editar servidores de nombres en esta herramienta y cuando cambie las opciones de networkmanager desde esta utilidad, se aplicarán automáticamentenmtui
/etc/resolv.conf
después del reinicio. Aquí puedes encontrar más información .fuente