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


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.


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

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

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.


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


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

2

No Ubuntu 15.10 você pode obter o DNS

nmcli device show <interface name> 

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.