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?

Koala Yeung
fonte

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.

Koala Yeung
fonte
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)
Sergiy Kolodyazhnyy
fonte
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
Maythux
fonte
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.

mchid
fonte
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.

Fkraiem
fonte
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

Komu
fonte
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

Ronny Kaufmann
fonte