Como saber qual DNS estou usando no Ubuntu a partir de 14.04


14

(Acompanhamento de uma pergunta semelhante para 12.04 .)

Antes do Ubuntu 12.04, você pode ver o DNS ativo em /etc/resolv.conf. No Ubuntu 12.04, o NetworkManager não funciona mais com o arquivo. Você precisa consultar diretamente a ferramenta de linha de comando nm-tool.

Curiosamente, nm-toolnão é mais instalado por padrão no 14.04 e posterior. Embora você ainda possa instalar apt-get install, você não pode assumir que todo o Ubuntu tenha isso pronto.

Portanto, a questão permanece. Como você sabe, por instalação padrão, o DNS que você está usando por linha de comando?

Respostas:


30

Resposta rápida

Uma nova ferramenta NetworkManager nmcliestá instalada por padrão agora. A ferramenta de linha de comando é muito poderosa, mas um pouco mais difícil de aprender. Atenha-se à nossa pergunta, a resposta curta é:

nmcli dev show | grep DNS

ou, para ter uma saída mais limpa

nmcli dev show | grep DNS | sed 's/\s\s*/\t/g' | cut -f 2


Explicar

Se você tiver tempo, eu posso explicar o jumbo-mumble acima:

  1. nmcli dev show

    Funciona um pouco como o nm-toolcomando antigo . Elabora as informações atuais da rede.

    Você também pode aprender a configuração de uma determinada interface adicionando o nome da interface. Por exemplo, para aprender as informações de eth0, você pode usar nmcli dev show eth0.

  2. grep DNS

    Obviamente grep apenas as linhas com o texto "DNS" nele.

  3. sed 's/\s\s*/\t/g' | cut -f 2

    Isso é apenas para limpar a saída. O cutpode selecionar a saída por coluna, mas leva apenas 1 caractere como separador (enquanto nmcliusa MANY SPACE). O sedtransforma os espaços, na produção original, em TAB.


7
+1. No entanto, não sabia sobre esse utilitário, eu executo o Ubuntu 14.04, e meu comando é nmcli d list. Fora isso, ótimas coisas aqui!
Terrance

1
sed tem o sinalizador -E para regex extendido, permitindo em r+vez derr*
Squidly 18/06/2015

1
Em que versão esta resposta se baseia? Na versão nmcli do meu Trusty, são exibidas 0.9.8.8 nmcli dev showgrandes mensagens de erro.
Oli

5
@Oli nmcli dev showpertence a nmcli em 15.04. Por alguma razão, o velho nmcli foi considerado instável, então. . . agora eles usam as nmclimesmas bandeiras do Fedora. Provavelmente isso se deve à mudança para systemd. E porque esta resposta se encaixa para 15,04, mas não 14.04, estou fortemente tentado a downvote-lo
Sergiy Kolodyazhnyy

1
Gostaria de repetir os comentários acima, isso pode estar correto para 15.04, mas não está correto para 14.04, que é a questão.
Alex

4

A análise de pacotes seria um método alternativo que funcione independentemente do NetworkManager ou de outra ferramenta de conexão de rede usada. A idéia básica é enviar uma consulta DNS com nslookupe em um segundo terminal, verificar para onde os pacotes vão.

Para isso, precisamos conectar-nos à rede pela primeira vez, para que não haja nada atrapalhando as conexões e execute o seguinte comando:

sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com  

Na execução alternativa do terminal:

nslookup google.com 

Depois de obter a lista de pacotes no tcpdump, verifique para onde eles vão do seu endereço IP.

Por exemplo,

$ sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com                            
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    eagle.29862 > b.resolvers.Level3.net.domain: [udp sum ok] 64057+ [1au] A? google.com. ar: . OPT UDPsize=4096 (39)
    b.resolvers.Level3.net.domain > eagle.29862: [udp sum ok] 64057 q: A? google.com. 11/0/0 google.com. A 173.194.115.64, google.com. A 173.194.115.65, google.com. A 173.194.115.72, google.com. A 173.194.115.66, google.com. A 173.194.115.69, google.com. A 173.194.115.78, google.com. A 173.194.115.70, google.com. A 173.194.115.71, google.com. A 173.194.115.68, google.com. A 173.194.115.67, google.com. A 173.194.115.73 (204)
    eagle.16429 > b.resolvers.Level3.net.domain: [udp sum ok] 38822+ A? google.com. (28)

Como você pode ver, meu laptop eagle, envia pacotes para o DNS da minha universidade b.resolvers.Level3.net.domain,. Se você deseja ver o endereço IP, pode usar o -nsinalizador com tcpdump.

Por exemplo:

$ sudo tcpdump -n -vv -i wlan0 -W 1200 | grep google.com                         
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    10.10.87.145.56474 > 4.2.2.2.53: [udp sum ok] 15606+ A? google.com. (28)

2

verifique suas conexões de rede:

ls /etc/NetworkManager/system-connections/

e escolha a conexão que você deseja configurar.

 sudo cat /etc/NetworkManager/system-connections/Internet | grep dns

Substitua "Internet" sem o nome da sua conexão


O uso ainda pode usar nm-tool:

nm-tool | grep DNS

Instale-o para o U14.04 e posterior usando

sudo apt-get install nm-tool

exemplo:

nm-tool | grep DNS
    DNS:             192.168.1.1
    DNS:             192.168.10.1
    DNS:             192.168.11.1

1

Ele ainda está disponível por padrão na versão 14.04, pois é fornecido com o gerenciador de rede. Desde então, ele foi retirado do gerenciador de rede (versão 15.04 e posterior) e nem está disponível no apt-get.

Por enquanto, na versão 15.04, você pode baixar e extrair o nm-tool do pacote antigo manualmente. Execute os seguintes comandos.

Primeiro, crie um diretório temporário para trabalhar:

cd
mkdir APTGET;cd APTGET

Em seguida, baixe a versão antiga e extraia os arquivos:

wget 'http://us.archive.ubuntu.com/ubuntu/pool/main/n/network-manager/network-manager_0.9.8.8-0ubuntu7.1_amd64.deb'
ar xvf *
tar xvf dat*

Crie um novo diretório:

mkdir ~/bin

(se for o caso file already exists, ignore a mensagem e continue).

Copie o arquivo para o novo diretório:

cp ./usr/bin/nm-tool ~/bin

Retorne ao diretório inicial e exclua o diretório temporário:

cd ..
rm -R APTGET

Agora, defina um alias para nm-tool:

cp ~/.bashrc ~/.bashback
echo 'alias nm-tool="~/bin/nm-tool"' | tee -a ~/.bashrc;. ~/.bashrc

O usuário atual deve agora ser capaz de executar a ferramenta nm a partir do terminal.


Além disso, isso ainda pode não fornecer com precisão todos os resolvedores DNS reais que você está usando.

Você pode acessar o DNSleaktest.com para obter um relatório completo. Clique em Teste estendido para obter um relatório completo.


1

Na verdade, o NetworkManager usa /etc/resolv.conf. No entanto, nas configurações padrão, o servidor DNS listado resolv.confé 127.0.0.1, porque o NetworkManager usa seu próprio serviço DNS interno por alguns motivos técnicos obscuros que não são relevantes para muitas pessoas. É por isso que você precisa usar nmclipara ver quais servidores DNS o NetworkManager está usando internamente.

No entanto, também é possível desativar esse comportamento e voltar ao antigo em que o servidor DNS real em uso está listado resolv.conf. Para fazer isso, basta comentar a linha dns=dnsmasqem /etc/NetworkManager/NetworkManager.conf, e reinicie. Para a maioria das pessoas, isso não deve fazer diferença além do fato de que o servidor DNS real agora será mostrado resolv.conf. Se você estiver entre os casos de canto para os quais a alteração foi introduzida, isso deverá se tornar aparente rapidamente e você poderá reverter para o comportamento padrão descomentando a linha novamente.


1

lista de dev nmcli | DNS grep

produzirá algo como;
IP4.DNS[1]: 8.8.8.8 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4

O comando acima funciona antes do Ubuntu 16.04.
Para Ubuntu 16.04, use:
nmcli dev show | grep DNS


Você provavelmente quer dizer nmcli dev show, não nmcli dev list?
holmb

Eu fiz algumas escavações, parece que eles mudaram a CLI entre o Ubuntu 14.04 e 16.04. Aparentemente, nmcli dev listfunciona em 14.04, mas não em 16.04.
holmb

1

Se alguém tiver a mesma pergunta que eu para o Ubuntu 18.04LTS:

Liste todos os dispositivos de rede gerenciados pelo gerenciador de rede:

networkctl list

Mostrar configuração de dispositivo específico:

networkctl status eth0

Em vez de eth0, você deve digitar o nome do seu dispositivo de rede mostrado na lista antes. Se não houver entrada DNS, seu cartão não terá servidor de nomes configurado

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.