Linha de comando para listar servidores DNS usados pelo meu sistema

Existe um comando para listar servidores dns usados pelo meu sistema?

Eu tentei

$ 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 OVERWRITTENnameserver 127.0.0.1$ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback

Mas não Lista nenhum servidor, Se eu for para "Network Manager GUI Tool", na seção Sem Fio ele lista "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

Posso obter as mesmas informações da linha de comando?

Estou usando o Ubuntu 12.04 LTS

resolv.conf não é mais usado, a menos que você mesmo o implemente. O gerente de rede faz isso agora. Criei um alias para listar os servidores DNS no meu sistema, pois às vezes mudo do OpenDNS para o DNS aberto do Google.

>Ubuntu = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

No meu caso, <interfacename> e eth0, o que é comum, mas nem sempre é o caso.

Veja se é isso que você quer.

EDITAR:

Acho que resolv.conf é realmente usado indiretamente, porque o Gerenciador de rede cria o servidor que escuta em 127.0.0.1, mas me disseram que este é um detalhe de implementação que não deve ser contado. Acho que se você inserir endereços DNS antes dessa entrada, eles podem ser usados, mas não tenho certeza exatamente como isso funciona. Eu acho que é melhor usar o Gerenciador de rede na maioria dos casos, quando possível.

No Ubuntu 18.04 e 20.04 você pode usar systemd-resolve --status

Isso é válido para o Ubuntu 13.10 e anteriores. Para Ubuntu 14.04 e superior, consulte Resposta de Koala Yeung para: Como saber qual DNS estou usando no Ubuntu a partir de 14.04


Usar

nm-tool

Você obterá uma saída semelhante a

NetworkManager ToolState: 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

Ou para ver apenas o DNS fazer

nm-tool | grep DNS

As duas respostas com melhor pontuação, nmcli dev list iface <interfacename> | grep IP4 e nm-tool ambos assumem que o network-manager está no controle. O que é - em máquinas desktop na maioria das vezes, pelo menos. Mas a resposta mais completa é que às vezes o network-manager não está no controle. Por exemplo. vpnc mexe com /etc/resolv.conf directamente.

Então: Primeiro verifique se 127.0.0.1 / localhost é usado. Isso poderia ser feito com dig:

> dig something.unknown  | grep SERVER:;; SERVER: 127.0.0.1#53(127.0.0.1)

Agora você sabe que nós sao usando localhost. Vá em frente com uma das respostas populares. Eu gosto:

> nm-tool | grep DNS:    DNS:             8.8.8.8

Mas se 127.0.0.1 / localhost for nao usado, então nm-toolde e nmclia saída será enganosa:

> dig something.unknown  | grep SERVER:;; SERVER: 172.22.216.251#53(172.22.216.251)> nm-tool | grep DNS:    DNS:             8.8.8.8

Aqui, dig está correto e nm-toola informação é enganosa. Na realidade, os endereços locais para o ambiente em que fiz a VPN são resolvidos corretamente. Todos os quais o DNS do Google 8.8.8.8 nao conhecer.

Isso ocorre porque depois de se conectar a uma VPN com vpnc, coloca uma linha em /etc/resolv.conf então parece que:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 1.2.3.4nameserver 127.0.0.1search MyDomain

cat /etc/resolv.conf deve mostrar seus servidores DNS.

Você não pode modificar o resolv.conf diretamente com o Ubuntu 12.04. Se você precisar alterá-los, poderá adicionar novos servidores DNS ao seu /etc/network/interfaces arquivo adicionando o seguinte:

 dns-nameservers x.x.x.x x.x.x.x

onde x são os servidores DNS que você deseja usar.

Se eu fosse você, eu desinstalaria network-manager. Na minha opinião, é uma pilha de porcaria.

Você pode realizar tudo o que precisa fazer manualmente sem se preocupar em Alterar suas configurações, especialmente se tiver várias NICs no computador.

nmcli versão 0.9.10

Você pode usar qualquer um desses comandos:

nmcli -t -f IP4.DNS device show eth0IP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8nmcli -t -f IP4.DNS connection show conn-nameIP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8

No Ubuntu 15.10 você pode obter DNS

nmcli device show <interface name> 

Incrível quantas maneiras existem para fazer isso. Em um servidor Ubuntu 18.04, se você não quiser instalar nada extra como nm-tool, entao systemd-resolve --status vai funcionar fora da caixa para informações de DNS.

Se você estiver interessado em obter não apenas seus servidores DNS, mas também gateway padrão, endereço IP, máscara de rede, etc, então netplan ip leases eth0 lhe dará todas essas informações de uma forma fácil de ler (supondo que você esteja interessado no eth0 interface).

Em sistemas onde systemd-resolved não está instalado :

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

Em sistemas onde NetworkManager está em execução :

$ ( 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

No Ubuntu 20.04

systemd-resolve --status | grep -B 9 -A 6 "Current DNS Server"

me deu um resultado claro sobre qual DNS estava em uso para cada adaptador usando DNS.

Para reconfigurar o DNS

man systemd-resolved

revela que os servidores DNS contatados são determinados por configurações globais em /etc/systemd/resolved.conf.

Sudo editar esse arquivo e descomentar e definir DNS= e FallbackDNS= para os servidores DNS IPv4 que você deseja.Por exemplo, DNS=8.8.8.8 e FallbackDNS=8.8.4.4 usaria DNS público do Google.Reinicie a máquina para aplicar a alteração.

@ PLA, obrigado por isso resposta o que me levou por esse caminho.

O que estás a tentar encontrar? os servidores DNS que estão sendo usados pelo seu sistema? ou você está tentando fazer uma pesquisa de DNS?

O antigo @ LordofTime

Servidores DNS @LordofTime sendo usados pelo meu sistema

você está usando 127.0.0.1. você está * executando * um servidor DNS?

Ver networking - What DNS servers am I using? - Unix & Linux Stack Exchange para uma versão não Ubuntu desta questão