¿Cómo puedo comprobar 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)

Respuesta

Debería poder obtener información razonable en:

$ cat /etc/resolv.conf 

Comentarios

  • Sin embargo, tenga en cuenta que (en Linuxen moderno) el contenido de /etc/nsswitch.conf dicta los servicios de nombres que se utilizan (DNS, LDAP, etc.) y en qué orden. Di fgrep hosts: /etc/nsswitch.conf. Si solo hace referencia a DNS, /etc/resolv.conf es el lugar correcto para buscar sus servidores de nombres. Pero es probable que ‘ también esté utilizando mDNS (también conocido como ZeroConf, Avahi, Bonjour, etc.), etc. En ese caso, las cosas dependen de lo que ‘ está usando.
  • Este archivo normalmente apunta a 127.0.1.1 en Ubuntu – es ‘ el servidor de caché DNS local, no el upstream.
  • @BarryKelly Verifique lo que usa su enrutador, luego
  • ¿Y si tiene varios servidores upstream configurados? ¿Cómo saber cuál se utiliza actualmente?
  • Consulte las respuestas de @ G32RW o @Lonniebiz para obtener un enfoque más sólido en diversas circunstancias, p. Ej. cuando obtiene una respuesta como 127.0.0.53

Responder

Aquí «Así es como lo hago:

( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS 

Este funcionó antes de la forma anterior:

nm-tool | grep DNS 

En Debian, debe tener el paquete network-manager instalado.

Comentarios

  • Este es útil si está utilizando VPN y NetworkManager . Tu /etc/resolv.conf apuntará a tu máquina, con dnsmasq resolviendo nombres según la configuración de NetworkManager .
  • En Debian, esto requiere el paquete network-manager.
  • nm-tool no está disponible en los Linux más nuevos. Por ejemplo, no en el paquete ‘ network-manager ‘ de Debian 8.
  • I ‘ hemos actualizado la respuesta para reflejar lo está trabajando para mí en 2016.
  • esta es la mejor respuesta, resolve.conf no siempre muestra la verdad

Respuesta

En sistemas que ejecutan systemd, use:

systemd-resolve --status 

Comentarios

  • systemd-resolve: opción no reconocida ‘ –status ‘
  • Dice Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
  • Esta es la nueva forma predeterminada de hacerlo en Ubuntu 18.04 Bionic Beaver – ¡acostúmbrese, todos!
  • Esta es la única solución que funcionó para mí, ya que los otros devolvieron 127.0.0.53
  • ¿Qué estoy leyendo? Solo veo registros DNSSEC.

Respuesta

Creo que también puedes consultar DNS y te mostrará lo que servidor devolvió el resultado. Pruebe esto:

dig yourserver.somedomain.xyz 

Y la respuesta debería indicarle qué servidor (es) devolvió el resultado. La salida que le interesa se verá 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 decirle a dig que consulte un servidor DNS específico utilizando dig @server_ip

Comentarios

  • En Debian, esto requiere dnsutils paquete.
  • Si utiliza cualquier servicio de enmascaramiento / almacenamiento en caché de DNS que se ejecute en su máquina local, ocultará los servidores DNS reales.
  • Ubuntu 18.04 solo muestra la caché de DNS local: SERVER: 127.0.0.53#53(127.0.0.53)

Respuesta

Simplemente, nslookup . Parte de sus resultados incluyen el servidor que está usando.

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 

Comentarios

  • ¿Puede dar un ejemplo de lo que debe ingresar en el mensaje?
  • Ejemplo: $ nslookup www.google.com
  • En Debian, esto requiere el paquete dnsutils.
  • En un Ubuntu reciente, esto nuevamente apunta al servidor de caché local 127.0.0.1 como ya se indicó en este comentario
  • En CentOS 7 se cierra con error, pero es una máquina virtual, así que hice nslookup google.com en el host de Windows y encontré el servidor de nombres. Agréguelo en /etc/resolv.conf como: nameserver xx.xx.xx.xx y reinicie el servicio network, y todo está bien. Alabado seas

Responde

Con el nuevo network-manager comando nmcli, haga esto:

nmcli --fields ipv4.dns,ipv6.dns con show [connection_name] 

En 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, utilice:

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

Por ejemplo, en versiones antiguas de nmcli:

$ 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 

Comentarios

  • Mis resultados : order «con» «show» is not valid.
  • Me funciona bien con network-manager 1.0.4 en Ubuntu 15.10. ¿Quizás tienes una versión anterior?
  • El formato tabular es bastante malo. Espero obtener un formato de columna similar a Powershell.
  • Devuelve Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
  • simplemente nmcli era todo lo que necesitaba en ubuntu 19.04

Responder

para obtener el primer SERVIDOR DNS (solo IP):

  • cat generará la configuración de DNS
  • grep solo filtros servidor de nombres
  • head mantendrá solo la primera fila / instancia
  • cut tomar la ip parte 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) 

Comentarios

  • grep -m 1 deja de coincidir después de la primera coincidencia, por lo que no ‘ t tiene que usar head
  • Para aligerar aún más la canalización, la captura de grupos con Perl regexp es muy ordenada, y grep toma un archivo argumento: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Acabo de escribir Capturar grupos con expresión regular grep perl
  • Hay ‘ s IPv4 y Servidores DNS IPv6. Además, los servidores secundarios existen por una razón. ¿Cuál devuelve este comando? ¿Se recomienda tomar el primero y simplemente ignorar los demás?

Responder

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

Si no quiere usar su shell para verificar la configuración de su dns (como lo describen Hesse y Alexios), puede verlos desde el panel «Información de la red».

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

Respuesta

Usando 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-resolve es un enlace simbólico a resolvectl en 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 

Comentarios

  • funciona perfectamente en Ubuntu 18.10.

Responder

He alimentado ora 25 y también tuvo 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 de DNS. Añadiendo entradas DNS a la tarjeta activa que no tenía una entrada, ¡listo! Todo está bien y el tiempo de respuesta es inmediato.

Comentarios

  • quizás alternativamente

Responder

En Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS 

Reemplaza <interfacename> con el tuyo.

En Ubuntu < = 14

El comando

 nmcli dev list iface <interfacename> | grep IP4 

Reemplaza <interfacename> con el tuyo.

Ejemplos

 nmcli device show eth0 | grep IP4.DNS 

O

 nmcli dev list iface eth0 | grep IP4 

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

Comentarios

  • nmcli dev list iface [devicename] es el comando correcto
  • I haven ‘ t notó que la < interfaz > está oculta desde que uso < >
  • En Debian obtengo un error — $ nmcli dev li st iface eth0 Error: ‘ dev ‘ comando ‘ list ‘ no es válido.
  • nmcli es un comando específico de RH.
  • ¡Esta es la respuesta correcta!

Responder

En un Fedora 33 reciente, puede usar

# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic): 

Para comprobar si systemd-resolved está activo, haz cat /etc/resolv.conf Te dirá quién está controlando el archivo.

Si quieres más detalles, puede usar resolvectl status resolvectl statistics, también puede vaciar cachés …

Para solucionar problemas, puede utilizar journalctl -u systemd-resolved -f -o cat | grep Looking después de configurar el nivel en DEBUG: sudo resolvectl log-level debug

Respuesta

En CentOS, puede usar:

/usr/sbin/named -v 

Respuesta

En sistemas donde systemd-resolved NO está instalado:

 $ host -v something.unknown | awk -F "[ #]" "/Received /{print$5}" | uniq 192.168.1.1  

En sistemas donde NetworkManager se está ejecutando:

$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk "/DNS/{print$NF}" 192.168.1.1 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *