¿Qué servidores DNS estoy usando?


249

¿Cómo puedo verificar qué servidor DNS estoy usando (en Linux)? Estoy usando el administrador de red y una conexión por cable a la LAN de mi universidad. (Estoy tratando de averiguar por qué mi dominio no se resuelve)

Respuestas:


207

Debería poder obtener información razonable en:

$ cat /etc/resolv.conf 

26
Sin embargo, tenga en cuenta que (en Linuxen moderno) los contenidos /etc/nsswitch.confdictan qué servicios de nombres se utilizan (DNS, LDAP, etc.) y en qué orden. Decir fgrep hosts: /etc/nsswitch.conf. Si solo hace referencia a DNS, /etc/resolv.confes el lugar adecuado para buscar sus servidores de nombres. Pero es probable que también esté utilizando mDNS (también conocido como ZeroConf, también conocido como Avahi, también conocido como Bonjour, etc.), etc. En ese caso, las cosas dependen de lo que esté utilizando.
Alexios

27
Este archivo generalmente apunta a 127.0.1.1 en Ubuntu: es el servidor de caché de DNS local, no el flujo ascendente real.
Barry Kelly

2
@BarryKelly Verifique qué usa su enrutador, luego
Geremia

2
¿Y si tiene varios servidores ascendentes configurados? ¿Cómo saber cuál se usa actualmente?
Sylvain Leroux

44
Consulte las respuestas de @ G32RW o @Lonniebiz para obtener un enfoque más sólido en diversas circunstancias, por ejemplo, cuando obtiene una respuesta como127.0.0.53
nealmcb

194

Así es como lo hago:

nmcli dev show | grep DNS

Esto funcionó antes del camino anterior:

nm-tool | grep DNS

14
Este es útil si está utilizando VPN y NetworkManager . Apuntará /etc/resolv.confa su máquina, con la dnsmasqresolución de nombres configurados por NetworkManager .
Grzegorz:

66
En Debian esto requiere el network-managerpaquete.
TranslucentCloud

2
nm-tool no está disponible en linuxes más nuevos. por ejemplo, no está en el paquete 'network-manager' de debian 8.
don bright

2
He actualizado la respuesta para reflejar lo que me funciona en 2016.
Lonniebiz

3
esta es la mejor respuesta, resolve.conf no siempre muestra la verdad
blade

72

Creo que también puede consultar DNS y le mostrará qué servidor devolvió el resultado. Prueba esto:

dig yourserver.somedomain.xyz

Y la respuesta debería decirle qué servidor (es) devolvió el resultado. El resultado que le interesa se verá más o menos así:

;; Query time: 91 msec
;; SERVER: 172.xxx.xxx.xxx#53(172.xxx.xxx.xxx)
;; WHEN: Tue Apr 02 09:03:41 EDT 2019
;; MSG SIZE  rcvd: 207

También puede indicar digque consulte un servidor DNS específico utilizandodig @server_ip


8
En Debian esto requiere el dnsutilspaquete.
Faheem Mitha

66
Si utiliza algún servicio de enmascaramiento / almacenamiento en caché de DNS que se ejecuta en su máquina local, ocultará los servidores DNS reales.
karatedog

44
Ubuntu 18.04 solo muestra el caché dns local:SERVER: 127.0.0.53#53(127.0.0.53)
wisbucky

58

Solo haz un nslookup,. Parte de sus resultados incluyen el servidor que está utilizando.

En el siguiente ejemplo, muestra que el servidor DNS utilizado está en 8.8.8.8.

$ nslookup google.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.22.174

1
¿Puedes dar un ejemplo de qué ingresar en el aviso?
chovy

Ejemplo: $ nslookup www.google.com
Ren

77
En Debian esto requiere el dnsutilspaquete.
Gayan Weerakutti

66
En un Ubuntu reciente, esto nuevamente apunta al servidor de caché local 127.0.0.1 como ya se insinuó en este comentario
FriendFX

En CentOS 7 se cierra con error, pero es una máquina virtual, así que lo hice nslookup google.comen el host de Windows y encontré el servidor de nombres. Agréguelo /etc/resolv.confcomo: nameserver xx.xx.xx.xxy reinicie el servicio network, y todo está bien. Alabado seas
WesternGun

55

En sistemas que ejecutan systemd use:

systemd-resolve --status

3
systemd-resolve: opción no reconocida '--status'
Acumenus

Sistema @ABB? versión systemd?
G32RW

229-4ubuntu21.2
Acumenus

11
Esta es la nueva forma predeterminada de hacerlo en Ubuntu 18.04 Bionic Beaver: ¡acostúmbrese, todos!
AveryFreeman el

55
Esta es la única solución que funcionó para mí, ya que los otros regresaron 127.0.0.53
greuze

13

Con el nuevo network-managercomando nmcli, haga esto:

nmcli --fields ipv4.dns,ipv6.dns con show <connection_name>

En las versiones más recientes de network-manager (como en Ubuntu 16.04), los nombres de campo son ligeramente diferentes:

nmcli --fields ip4.dns,ip6.dns con show <connection_name>

Si no conoce el nombre de la conexión, use:

nmcli -t --fields NAME con show --active

Por ejemplo:

$ nmcli --fields ip4.dns,ip6.dns con show 'Wired connection 1'
IP4.DNS[1]:                             172.21.0.13
IP4.DNS[2]:                             172.21.0.4

Mis resultados: order «con» «show» is not valid.
Sopalajo de Arrierez

Me funciona bien con network-manager 1.0.4 en Ubuntu 15.10. Tal vez tienes una versión anterior?
Sameer

El formato tabular es bastante malo. Espero obtener una columna como formato similar a Powershell.
CMCDragonkai

1
DevolucionesError: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
FriendFX

simplemente nmcliera todo lo que necesitaba en ubuntu 19.04
John Mee

9

para obtener el primer SERVIDOR DNS (solo IP):

cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
  • cat dará salida a la configuración de DNS
  • grep filtra solo el servidor de nombres
  • head mantendrá solo la primera fila / instancia
  • cut tomar la parte ip de la fila (segunda columna con '' como separador)

Para poner la IP de DNS en una variable de entorno, puede usar lo siguiente:

export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2)

2
grep -m 1deja de coincidir después del primer partido para que no tengas que usarlohead
sshow

Para aligerar la tubería aún más, grupos de captura con Perl expresión regular es muy ordenado, y grep toma un argumento de archivo: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Acabo de escribir Grupos de captura con expresión regular grep perl
sshow

8

Si está utilizando el administrador de red, probablemente obtenga todos los parámetros de red de su servidor dhcp en su universidad.

Si no desea utilizar su shell para verificar la configuración de su dns (como lo describen hesse y Alexios), puede verlos desde el panel "Información de red".

Puede acceder a este panel presionando el botón derecho del mouse sobre el icono del administrador de red y seleccionando "Información de conexión" en el menú.


5

Utilizando resolvectl

$ resolvectl status | grep -1 'DNS Server'
    DNSSEC supported: no
  Current DNS Server: 1.1.1.1
         DNS Servers: 1.1.1.1
                      1.0.0.1

Por compatibilidad, systemd-resolvees un enlace simbólico resolvectlen muchas distribuciones como para Ubuntu 18.10:

$ type -a systemd-resolve
systemd-resolve is /usr/bin/systemd-resolve

$ ll /usr/bin/systemd-resolve
lrwxrwxrwx 1 root root 10 nov.  15 21:42 /usr/bin/systemd-resolve -> resolvectl

$ type -a resolvectl
resolvectl is /usr/bin/resolvectl

$ file /usr/bin/resolvectl
/usr/bin/resolvectl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=09e488e849e3b988dd2ac93b024bbba18bb71814, stripped

funciona perfecto en Ubuntu 18.10.
Georgе Stoyanov

3

El comando

 nmcli dev list iface <interfacename> | grep IP4

Reemplace "interfacename" con el suyo.

examen

 nmcli dev list iface eth0 | grep IP4

Esto mostrará una lista de todos los servidores DNS (si usa más de uno).


nmcli dev list iface [devicename]es el comando correcto
sebix

No he notado que <interface> está oculto desde que uso <>
Maythux

1
En debian obtengo un error --- $ nmcli dev list iface eth0 Error: 'dev' command 'list' no es válido.
Don brillante

nmcli es un comando específico de RH.
Rui F Ribeiro

Esta es la respuesta correcta!
VAdaihiep

3

Tengo Fedora 25 y también tuve una respuesta lenta similar en la línea de comandos a los comandos sudo.

nmcli dev show | grep DNS 

mostró que solo uno de mis 3 adaptadores (dos activos) tenía entradas DNS. Al agregar entradas DNS a la única tarjeta activa que no tenía una entrada, ¡listo! Todo está bien y el tiempo de respuesta es inmediato.


quizás alternativamente
Amos Folarin


0

Una vez que crees que has encontrado su DNS, puede consultar directamente con dig: dig @<dns ip> <host to lookup>. Si funciona, debería verlo después SERVERcon un estado de NOERROR.

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.