Atualização : Conforme revelado nos comentários abaixo da pergunta, o OP deseja conhecer o servidor DNS usado pelo roteador. Se você usar conexão automática, todas as respostas dadas aqui informarão o endereço do seu roteador, o que significa que as solicitações vão para o seu roteador primeiro. O roteador, por sua vez, possui suas próprias configurações, que encaminham qualquer solicitação de DNS enviada ao DNS do roteador.
Descobrir qual servidor DNS é usado em um roteador só é possível se você acessar as configurações do seu roteador, normalmente para roteadores residenciais através de 192.168.0.1
.
TL; DR : Versão 1 - verifique o syslog. Versão 2 - envie pacotes com nslookup
ou dig
e veja onde eles vão; resposta mais avançada e técnica, mas definitivamente mais divertido e na minha opinião é um pouco mais confiável.
As outras respostas postadas acima são ótimas e funcionam 99% do tempo. Nesta resposta, gostaria de fornecer uma solução um pouco mais alternativa e mais técnica com nslookup
. Outra solução mais simples é verificar /var/log/syslog
.
O método syslog
O método simples é pesquisar com a ferramenta grep
para using nameserver
string em /var/log/syslog/
:
$ sudo grep 'using nameserver' /var/log/syslog
Aug 6 02:25:34 ******** dnsmasq[1487]: using nameserver 208.67.220.220#53
O método tcpdump e nslookup
Aqui não é um método tão simples, mas talvez mais confiável. Uma vez que observar onde os pedidos de dns irão nos dirá qual é o verdadeiro servidor dns, podemos fazer exatamente isso. Existe uma ferramenta como tcpdump
. É usado para analisar os pacotes enviados pelos adaptadores de internet. Freqüentemente, essa ferramenta é usada no teste de caneta. Para nosso modesto propósito de determinar o dns, precisamos apenas fazer duas coisas - executar ao mesmo tempo tcpdump
e usar outra ferramenta nslookup
(o que realmente ajuda a procurar nomes de domínio usando o servidor dns do sistema). Especificamente, queremos procurar por pacotes que vão para .domain
destinos. Por exemplo, executo sudo tcpdump -c 50 -i wlan0 > tcpdump-result.txt
para capturar 50 pacotes do meu adaptador sem fio e, imediatamente, vou para outra guia do terminal e execute nslookup google.com
. Por conveniência eu também imprimo tcpdump
result para um arquivo tcpdump-result.txt
Agora, usando um pouco de conhecimento de ferramentas como grep
e awk
, eu filtro as informações desejadas sobre .domain
:
$ awk '/.domain/ {gsub("my-host-name","****");print}' tcpdump-result.txt
01:49:48.811363 IP ****.local.29258 > 192.168.0.1.domain: 11608+ PTR? 69.0.168.192.in-addr.arpa. (43)
01:49:49.095361 IP ****.local.44184 > google-public-dns.domain: 9560+ A? google.com. (28)
01:49:49.139361 IP google-public-dns.domain > ****.local.44184: 9560 1/0/0 A 216.58.217.46 (44)
Como você pode ver, minha solicitação vai para 192.168.0.1, que é meu roteador doméstico. Portanto, isso significa que você está usando o servidor DNS que o seu provedor de serviços de Internet atribuiu a você.
Agora, e se mudarmos o DNS e fizermos tudo de novo?
$ awk '/.domain/ {gsub("my-hostname","****");print}' tcpdump-result2.txt
02:05:35.885670 IP ****.local.51056 > resolver2.opendns.com.domain: 2511+ A? google.com. (28)
02:05:36.189665 IP ****.local.5503 > 192.168.0.1.domain: 63991+ PTR? 220.220.67.208.in-addr.arpa. (45)
02:05:36.237664 IP 192.168.0.1.domain > ****.local.5503: 63991 1/0/0 PTR resolver2.opendns.com. (80)
02:05:36.241664 IP ****.local.27776 > 192.168.0.1.domain: 58334+ PTR? 69.0.168.192.in-addr.arpa. (43)
Agora meus pedidos vão para o Open! Mas qual IP especificamente?
ping resolv2.opendns.com
PING resolver2.opendns.com (208.67.220.220) 56(84) bytes of data.
64 bytes from resolver2.opendns.com (208.67.220.220): icmp_seq=1 ttl=57 time=59.9 ms
64 bytes from resolver2.opendns.com (208.67.220.220): icmp_seq=2 ttl=57 time=55.9 ms
^C
--- resolver2.opendns.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 55.999/57.999/59.999/2.000 ms
Como você pode ver, vai para 208.67.220.220