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

Grzenio
fuente

Respuestas:

207

Debería poder obtener información razonable en:

$ cat /etc/resolv.conf 

fuente
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
Lonniebiz
fuente
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

Freiheit
fuente
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
Sam
fuente
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
G32RW
fuente
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
Sameer
fuente
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)
boly38
fuente
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ú.

Tombolinux
fuente
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
olibre
fuente
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).

Maythux
fuente
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.

CRTLBREAK
fuente
quizás alternativamente
Amos Folarin
0

En CentOS, puede usar:

/usr/sbin/named -v
Miloud Eloumri
fuente
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.

ohlemacher
fuente