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


¿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.


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

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

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.


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


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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.