Línea de comando para enumerar los servidores DNS utilizados por mi sistema

252

¿Hay un comando para enumerar los servidores DNS utilizados por mi sistema?

Lo intenté

$ 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.0.1
$ cat /etc/network/interfaces 
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Pero no enumera ningún servidor, si voy a "Herramienta de interfaz gráfica de usuario de Network Manager", en la sección Inalámbrico enumera "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

¿Puedo obtener la misma información de la línea de comando?

Estoy usando Ubuntu 12.04 LTS

Anurag Uniyal
fuente
¿Qué intentas encontrar? Qué servidores DNS utiliza su sistema? o estás tratando de hacer una búsqueda de DNS?
Thomas Ward
El ex @LordofTime
ish
@LordofTime Servidores DNS utilizados por mi sistema
Anurag Uniyal
Estás utilizando 127.0.0.1. ¿Estás ejecutando un servidor DNS?
Skaperen
Consulte unix.stackexchange.com/q/28941/38647 para obtener una versión de esta pregunta que no sea Ubuntu
mwfearnley

Respuestas:

250

resolv.conf ya no se usa realmente, a menos que lo implemente usted mismo. El administrador de red lo hace ahora. Creé un alias para enumerar los servidores DNS en mi sistema, ya que a veces cambio de OpenDNS al DNS abierto de Google.

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

En mi caso, <interfacename>es eth0, que es común, pero no siempre es el caso.

Mira si esto es lo que quieres.

EDITAR:

Creo que resolv.conf en realidad se usa indirectamente, porque el administrador de red crea el servidor que escucha en 127.0.0.1, pero me dijeron que este es un detalle de implementación con el que no se debe contar. Creo que si ingresas direcciones DNS antes de esta entrada, podrían usarse, pero no estoy seguro de cómo funciona. Creo que es mejor usar el administrador de red en la mayoría de los casos, cuando sea posible.

Marty Fried
fuente
2
gracias, sí, eso parece estar funcionando, la red ubuntu parece ser confusa, por lo que puedo configurar los servidores dns en resolve.conf / base o en / etc / network / interfaces o en el administrador de red, ¿hay una guía definitiva para la red ubuntu?
Anurag Uniyal
Si usa la GUI, entonces el mejor lugar para configurarla es creando perfiles en el cuadro de diálogo Conexiones de red. Dupliqué el valor predeterminado, luego edité el duplicado para hacer los cambios que quería, manteniendo el valor predeterminado para asegurarme de que siempre tenía un perfil de trabajo. Entonces, es fácil cambiar de perfil. No sé cómo hacer esto sin la GUI, pero hay un usuario "James Henstridge" que conoce muy bien las redes de Ubuntu; puede intentar buscar askubuntu para obtener su información. Me habló de la orden que te di en esta publicación .
Marty Fried
1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04 es un buen artículo sobre la resolución de DNS en ubuntu 12.04
Anurag Uniyal
66
Estoy usando 15.04 y 'nmcli dev show | grep DNS' funciona para mí.
flickerfly
1
@vcardillo: la pregunta original decía: "Estoy usando Ubuntu 12.04 LTS". Han pasado 5 años desde que publiqué mi respuesta. Nada dura para siempre.
Marty Fried
85

Esto es válido para Ubuntu 13.10 y versiones anteriores. Para Ubuntu 14.04 y superior, vea la respuesta de Koala Yeung a: Cómo saber qué DNS estoy usando en Ubuntu desde 14.04 en adelante


Utilizar

nm-tool

Obtendrá una salida similar a

NetworkManager Tool

State: connected (global)

- Device: eth0  [Wired connection 1] -------------------------------------------
  Type:              Wired
  Driver:            e1000e
  State:             connected
  Default:           yes
  HW Address:        00:11:22:33:44:55

  Capabilities:
    Carrier Detect:  yes
    Speed:           1000 Mb/s

  Wired Properties
    Carrier:         on

  IPv4 Settings:
    Address:         10.21.6.13
    Prefix:          24 (255.255.255.0)
    Gateway:         10.21.6.1

    DNS:             10.22.5.133
    DNS:             10.22.5.3

O para ver solo el DNS hacer

nm-tool | grep DNS
tgm4883
fuente
1
solo quería agregar, ir al nm-appletmenú de información de conexión también funcionará :)
Samik
1
+1 esto también funciona, al igual que nm-cli como respondió @Marty Fried
Anurag Uniyal
2
funciona muy bien en lubuntu 14.04 también. gracias
jamescampbell
2
nm-tool no se encuentra en 15.10
laberinto
1
sí, esto ya no funciona ... no nm-toolen 16.x tampoco. nmcli(en la respuesta de Marty Fried) es el camino a seguir
Lambart
46

Las dos respuestas de mayor puntaje, nmcli dev list iface <interfacename> | grep IP4y nm-toolambas suponen que el administrador de red tiene el control. Cuál es - en máquinas de escritorio la mayoría de las veces al menos. Pero la respuesta más completa es que a veces el administrador de red no tiene el control. Por ejemplo, se vpncmete /etc/resolv.confdirectamente.

Entonces: Primero verifique si se usa 127.0.0.1/localhost. Esto podría hacerse con dig:

> dig something.unknown  | grep SERVER:
;; SERVER: 127.0.0.1#53(127.0.0.1)

Ahora usted sabe que nos estamos usando localhost. Adelante con una de las respuestas populares. Me gusta:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Pero si se 127.0.0.1/localhost no se utiliza, a continuación, nm-tool's, y nmcli' s de salida será engañosa:

> dig something.unknown  | grep SERVER:
;; SERVER: 172.22.216.251#53(172.22.216.251)
> nm-tool | grep DNS:
    DNS:             8.8.8.8

Aquí, diges correcta y nm-toolla información es engañosa. En realidad, las direcciones locales en el entorno en el que he creado VPN se resuelven correctamente. Todo lo que el DNS de Google 8.8.8.8 no conoce.

Esto se debe a que después de conectarse a una VPN con vpnc, pone una línea /etc/resolv.confpara que se vea así:

# 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 1.2.3.4
nameserver 127.0.0.1
search MyDomain
Peter V. Mørch
fuente
3
Esta es la respuesta más completa
Marinos An
Gracias. Algunos de nosotros aquí no usamos NM y eso es bueno para la comunidad.
Stephen Boston el
Solo para completar, la digutilidad se puede instalar fácilmente con apt install dnsutils.
Daniele Brugnara
32

cat /etc/resolv.conf debería mostrar sus servidores DNS.

No puede modificar el resolv.confdirectamente con Ubuntu 12.04. Sin embargo, si necesita cambiarlos, puede agregar nuevos servidores DNS en su /etc/network/interfacesarchivo agregando lo siguiente:

 dns-nameservers x.x.x.x x.x.x.x

¿Dónde xestán los servidores DNS que desea utilizar?

Si fuera usted, lo desinstalaría network-manager. En mi opinión, es un montón de basura.

Puede lograr todo lo que necesita hacer manualmente sin preocuparse por cambiar su configuración, especialmente si tiene varias NIC en la computadora.

ssc
fuente
2
¿Tengo que reiniciar nm después de hacer el cambio dns?
Bhargav Nanekalva
1
--Gracias. Esto es genial. Funciona incluso sin ese negocio de administrador de red.
Adam
"cat /etc/resolv.conf debería mostrar sus servidores DNS". No lo hace.
Marinos un
25

En Ubuntu 18.04 puedes usar systemd-resolve --status

PLA
fuente
NB si tu gato /etc/resolv.conf incluso dice esto
Rqomey
11

nmcli versión 0.9.10

Puede usar cualquiera de estos comandos:

nmcli -t -f IP4.DNS device show eth0
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8

nmcli -t -f IP4.DNS connection show conn-name
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8
iman
fuente
2

En Ubuntu 15.10 puedes obtener DNS

nmcli device show <interface name> 
Suleman Hasib
fuente
0

Parece ser administrado por el administrador de red. Echa un vistazo aquí http://manpages.ubuntu.com/manpages/precise/man5/NetworkManager.conf.5.html

para una gran explicación

O la versión corta para mirar

 /etc/NetworkManager/NetworkManager.conf

o

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
mbs
fuente
44
pero /etc/NetworkManager/NetworkManager.confno tiene ningún servidor DNS listado en él
Anurag Uniyal 18/06/12