Como saber o DNS que estou usando no Ubuntu a partir de 14.04?

12

(Uma continuação para 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-tool não é mais instalado por padrão no 14.04 e posterior. Embora você ainda possa instalar através de apt-get install , você não pode presumir que todo o Ubuntu tenha isso pronto para uso.

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

    
por Koala Yeung 18.06.2015 / 07:11

6 respostas

24

Resposta rápida

Uma nova ferramenta do NetworkManager nmcli é 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


Explique

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

  1. nmcli dev show

    Funciona um pouco como o antigo comando nm-tool . 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 cut pode selecionar a saída por coluna, mas leva apenas 1 caractere como separador (enquanto nmcli usa MUITOS ESPAÇOS). O sed transforma os espaços, na saída original, em TAB.

por Koala Yeung 18.06.2015 / 07:11
3

A análise de pacotes seria um método alternativo que funciona independentemente do NetworkManager ou outra ferramenta de conexão de rede que você usa. A idéia básica é enviar uma consulta de DNS com nslookup e em uma segunda verificação de terminal para onde os pacotes vão.

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

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

Na execução do terminal alternativo:

nslookup google.com 

Depois de obter a listagem de pacotes do 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ê quiser ver o endereço IP, use o sinal -n 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)
    
por Sergiy Kolodyazhnyy 26.09.2015 / 20:40
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 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
    
por Maythux 18.06.2015 / 07:50
1

Ele ainda está disponível por padrão na versão 14.04, já que é fornecido com o network-manager. Desde então, ele foi removido do gerenciador de rede (versão 15.04 e posterior) e nem está disponível através do apt-get.

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

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

cd
mkdir APTGET;cd APTGET

Em seguida, faça o download da 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 diz file already exists , apenas ignore a mensagem e prossiga).

Copie o arquivo para o novo diretório:

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

Retorne ao diretório inicial e exclua o diretório temp:

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 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 DNSleaktest.com para obter um relatório completo. Clique em Teste estendido para obter um relatório completo.

    
por mchid 26.09.2015 / 19:39
1

nmcli dev list | grep DNS

ele 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 o uso do Ubuntu 16.04:
nmcli dev show | grep DNS

    
por Komu 15.04.2016 / 11:33
0

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

No entanto, também é possível desabilitar esse comportamento e voltar para o antigo, em que o servidor DNS real em uso está listado em resolv.conf . Para fazer isso, simplesmente comente a linha dns=dnsmasq em /etc/NetworkManager/NetworkManager.conf e reinicie. Para a maioria das pessoas, isso não deve fazer nenhuma diferença além do fato de que o servidor DNS real será mostrado em resolv.conf . Se você estiver entre os casos-chave para os quais a alteração foi introduzida, isso deve se tornar aparente rapidamente e você pode reverter para o comportamento padrão removendo o comentário da linha novamente.

    
por fkraiem 15.04.2016 / 11:58