Linha de comando para listar servidores DNS usados ​​pelo meu sistema

254

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

Mas ele não lista nenhum servidor; se eu for em "Network Manager GUI Tool", na seção Wireless, ele lista "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

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

Estou usando o Ubuntu 12.04 LTS

Anurag Uniyal
fonte
O que você está tentando encontrar? os servidores DNS sendo usados ​​pelo seu sistema? ou você está tentando fazer uma pesquisa de DNS?
Thomas Ward
O primeiro @LordofTime
ish
@LordofTime servidores DNS sendo usado por meu sistema
Anurag Uniyal
você está usando 127.0.0.1. você está executando um servidor DNS?
Skaperen
Veja unix.stackexchange.com/q/28941/38647 para uma versão não Ubuntu desta questão
mwfearnley

Respostas:

250

O resolv.conf não é mais usado, a menos que você o implemente. O gerenciador de rede faz isso agora. Criei um alias para listar os servidores DNS no meu sistema, pois às vezes alterno 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>é eth0, o que é comum, mas nem sempre é o caso.

Veja se é isso que você deseja.

EDITAR:

Eu acho que resolv.conf é realmente usado indiretamente, porque o gerenciador de rede cria o servidor que escuta 127.0.0.1, mas me disseram que esse é um detalhe de implementação que não deve ser contado. Eu acho que se você digitar endereços DNS antes desta entrada, eles poderão 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.

Marty Fried
fonte
2
obrigado, sim, que parece estar funcionando, a rede ubuntu parece confusa, para que eu possa configurar servidores dns em resolve.conf / base ou em / etc / network / interfaces ou no gerenciador de rede, existe um guia definitivo para a rede ubuntu?
Anurag Uniyal
Se você usar a GUI, o melhor local para configurá-la é criar perfis no Diálogo de Conexões de Rede. Dupliquei o padrão e editei o duplicado para fazer as alterações desejadas, mantendo o padrão para garantir que eu sempre tivesse um perfil de trabalho. Então, é fácil alternar perfis. Não sei como fazer isso sem a GUI, mas há um usuário "James Henstridge" que conhece muito bem as redes do Ubuntu; você pode tentar procurar informações no askubuntu. Ele me contou sobre o comando que lhe dei neste post .
Marty Fried
1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04 é um belo artigo abount resolução de DNS no Ubuntu 12.04
Anurag Uniyal
6
Estou usando o 15.04 e o 'nmcli dev show | grep DNS' funciona para mim.
Flickerfly
1
@vcardillo: a pergunta original dizia: "Estou usando o Ubuntu 12.04 LTS". Faz 5 anos desde que publiquei minha resposta. Nada dura para sempre.
Marty Fried
85

Isso é válido para o Ubuntu 13.10 e versões anteriores. Para o Ubuntu 14.04 e superior, consulte a resposta de Koala Yeung para: Como saber qual DNS eu estou usando no Ubuntu a partir do 14.04 em diante


Usar

nm-tool

Você obterá uma saída semelhante a

NetworkManager Tool

State: 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
tgm4883
fonte
1
só queria acrescentar-se, indo para nm-applet's menu de informações de conexão também irá trabalhar :)
Samik
1
+1 isto também funciona, assim como o nm-cli, respondido por @Marty Fried
Anurag Uniyal
2
funciona muito bem no lubuntu 14.04 também. graças
jamescampbell
2
nm-tool não foi encontrado em 15.10
labyrinth
1
Sim, isso não funciona mais ... não nm-toolno 16.x também. nmcli(na resposta de Marty Fried) é o caminho a percorrer
Lambart 15/02
46

As duas respostas com maior pontuação, nmcli dev list iface <interfacename> | grep IP4e nm-toolambas assumem que o gerenciador de rede está no controle. Qual é - nas máquinas de mesa, na maioria das vezes, pelo menos. Mas a resposta mais completa é que às vezes o gerenciador de rede não está no controle. Por exemplo, vpncmexe /etc/resolv.confdiretamente.

Portanto: verifique primeiro se 127.0.0.1/localhost está sendo usado. Isso pode ser feito com dig:

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

Agora você sabe que está 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 não for usado, a saída de nm-tools e nmcliserá 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, digestá correto e nm-toolas informações são enganosas. Na realidade, os endereços locais para o ambiente em que eu tenho VPN são resolvidos corretamente. Tudo sobre o qual o DNS do Google 8.8.8.8 não conhece.

Isso ocorre porque, após conectar-se a uma VPN vpnc, ela coloca uma linha /etc/resolv.confpara que se pareça com:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 1.2.3.4
nameserver 127.0.0.1
search MyDomain
Peter V. Mørch
fonte
3
Esta é a resposta mais completa
Marinos An
Obrigado. Alguns de nós aqui não usam NM e isso é bom para a comunidade.
Stephen Boston
Apenas para conclusão, o digutilitário pode ser facilmente instalado com apt install dnsutils.
Daniele Brugnara
32

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

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

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

onde xestã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 você tiver várias NICs no computador.

ssc
fonte
2
Preciso reiniciar o nm depois de fazer a alteração do DNS?
Bhargav Nanekalva 25/03
1
--Obrigado. Isso é ótimo. Funciona mesmo sem esse negócio de gerente de rede.
Adam
"cat /etc/resolv.conf deve mostrar seus servidores DNS". Não faz.
Marinos An
25

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

PLA
fonte
Nota: se você
digitar o arquivo
11

nmcli versão 0.9.10

Você pode usar um destes comandos:

nmcli -t -f IP4.DNS device show eth0
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8

nmcli -t -f IP4.DNS connection show conn-name
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8
iman
fonte
2

No Ubuntu 15.10 você pode obter o DNS

nmcli device show <interface name> 
Suleman Hasib
fonte
0

Parece ser gerenciado pelo gerente de rede. Dê uma olhada aqui http://manpages.ubuntu.com/manpages/precise/man5/NetworkManager.conf.5.html

para uma grande explicação.

Ou a versão curta para procurar

 /etc/NetworkManager/NetworkManager.conf

ou

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
mbs
fonte
4
mas /etc/NetworkManager/NetworkManager.confnão tem nenhum servidor DNS listado nela
Anurag Uniyal