Por que meu telefone usa o DNS público do Google?

10

Eu estava curioso para saber qual servidor DNS meu telefone usava. Então, lancei um emulador de terminal e digitei:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Como você pode ver, meu telefone usa 8.8.8.8 e 8.8.4.4 como servidores DNS ( servidores DNS públicos do Google ).

Em casa (Wifi), meu roteador está configurado para fornecer servidores do OpenDNS através do DHCP. Mas, no meu telefone, cat /etc/resolv.confretorna a mesma saída. A mesma coisa com o 3G. E, mesmo que eu desative o Wifi e o 3G e reinicie o telefone, ele ainda usa os servidores DNS públicos do Google.

Não me lembro de ter alterado resolv.confou instalado nenhum aplicativo para alterá-lo.

Meu telefone é um HTC Desire com CyanogenMod 7.2.0.1 (Android 2.3.7).

Alguém pode me explicar por que meu telefone usa o DNS público do Google? É uma configuração comum para qualquer dispositivo Android ou ROM CyanogenMod?

Morgan Courbet
fonte

Respostas:

11

De acordo com Steve Kondik , este é essencialmente um código antigo que resta das versões mais antigas do CyanogenMod:

Isso só estava aqui para aplicativos que estavam vinculados estaticamente ao uclibc em versões antigas do CM. Provavelmente, pode ser removido.

No entanto, ele também observa :

Além disso, esse arquivo NÃO é gravado ao conectar-se a uma rede, pois / system é somente leitura. Os servidores DNS reais são lidos nas propriedades do sistema.

Acabei de verificar que os servidores fornecidos pelo DHCP estão realmente sendo usados, portanto esse problema é inválido, a menos que alguém prove o contrário.

Portanto, os valores /etc/resolv.confrealmente não refletem suas configurações de DNS. O que você pode fazer é usar getproppara encontrar seus valores de DNS. Você pode reduzi-lo bastante bem se você grep a saída da seguinte maneira:

getprop | grep dns

Também vale a pena notar: o /etc/resolv.confarquivo parece ter sido removido completamente em versões posteriores do CyanogenMod. Não tenho nenhum no CM10, mas getpropmostra corretamente minhas configurações de DNS.

eldarerathis
fonte
Ótimo respondedor, obrigado. No entanto, getprop | grep dnsnão retorna nada. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'(procurando o endereço IPv4) não retorna resultado relevante. Propriedades são retornados ro.baseband, ro.build.description, ro.modversione gsm.version.baseband. Qualquer ideia?
Morgan Courbet
@ Morgan: Suponho que possa haver algum tipo de diferença entre o CM7 (você está executando) e o CM10 (o que eu testei). O que acontece se você não cumprimenta a saída? Você vê algo relevante? (pode querer canalizá-lo em moreou similar uma vez que poderia ser demorado)
eldarerathis
11
@ Morgan: Eu não tenho um dispositivo Gingerbread à mão para testar, mas deve haver uma maneira de fazê-lo nas configurações sem fio padrão se você configurar um IP estático (acho que não poderá fazê-lo dessa maneira, se você usar DHCP, infelizmente). No JB, pressione e segure a rede à qual estou conectado e selecione "Modificar" para acessar. No entanto, ele pode estar nas "Configurações avançadas" (botão de menu na lista de redes wifi). Você também pode usar, setpropmas ele não persistirá durante as reinicializações / desconexões. Por exemplo. setprop net.rmnet0.dns1 <your DNS IP>deve alterar o valor da net.rmnet0.dns1propriedade.
Eldarerathis 24/10/12
11
E acho que o mais específico seria usado pelo adaptador ( net.rmnet0.dns1no seu caso), embora possa estar herdando esse valor da net.dns1propriedade mais genérica .
Eldarerathis 24/10/12
11
@Rhyuk: Eu não sei. setproppode ser uma solução temporária se você der valores em branco, mas precisará executá-la em todas as inicializações (e não tenho certeza se isso realmente funcionaria).
eldarerathis