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

197

¿Hay algún 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 "Network Manager GUI Tool", en la sección Wireless aparece "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

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

Estoy usando Ubuntu 12.04 LTS

    
pregunta Anurag Uniyal 18.06.2012 - 16:36

7 respuestas

197

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 a DNS abierto de Google.

Ubuntu & gt; = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu & lt; = 14

nmcli dev list iface <interfacename> | grep IP4

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

Vea si esto es lo que quiere.

EDITAR:

Creo que resolv.conf se usa de manera indirecta, porque el administrador de la red crea el servidor que escucha en 127.0.0.1, pero me dijeron que este es un detalle de implementación que no se debe tener en cuenta. Creo que si ingresas las direcciones DNS antes de esta entrada, es posible que se acostumbren, pero no estoy seguro de cómo funciona esto. Creo que es mejor usar el administrador de red en la mayoría de los casos, cuando sea posible.

    
respondido por el Marty Fried 18.06.2012 - 17:20
82

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

Usar

nm-tool

Obtendrás un resultado 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
    
respondido por el tgm4883 18.06.2012 - 17:22
31

Las dos respuestas más destacadas, nmcli dev list iface <interfacename> | grep IP4 y nm-tool , ambas suponen que el administrador de red tiene el control. Cuál es - en máquinas de escritorio la mayor parte del tiempo al menos. Pero la respuesta más completa es que a veces el administrador de red no tiene el control. P.ej. vpnc messes con /etc/resolv.conf directamente.

Entonces: primero compruebe 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 sabes que estamos usando localhost. Continúa con una de las respuestas populares. Me gusta:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Pero si 127.0.0.1/localhost no está utilizado , los resultados de nm-tool 's y nmcli serán engañosos:

> 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í, dig es correcto y la información de nm-tool es engañosa. En realidad, las direcciones locales al entorno en el que me he conectado VPN se resuelven correctamente. Todo lo cual el DNS de Google 8.8.8.8 no sabe .

Esto se debe a que después de conectarse a una VPN con vpnc , pone una línea en /etc/resolv.conf por lo que se ve 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
    
respondido por el Peter V. Mørch 28.05.2015 - 21:19
28

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

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

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

donde x son los servidores DNS que desea usar.

Si fuera usted, 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.

    
respondido por el ssc 03.05.2013 - 17:27
8

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
    
respondido por el iman 19.08.2015 - 12:03
2

En Ubuntu 15.10 puede obtener DNS

nmcli device show <interface name> 
    
respondido por el Suleman 02.03.2016 - 19:09
0

Parece ser administrado por el administrador de red. Eche un vistazo aquí enlace

para una gran explicación.

O la versión corta para buscar en

 /etc/NetworkManager/NetworkManager.conf

o

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
    
respondido por el mbs 18.06.2012 - 16:46

Lea otras preguntas en las etiquetas