¿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. Difgrep 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
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 servicionetwork
, 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 usarhead
- 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
/etc/resolv.conf
apuntará a tu máquina, condnsmasq
resolviendo nombres según la configuración de NetworkManager .network-manager
.