¿Por qué mi teléfono usa Google Public DNS?

Tenía curiosidad por saber qué servidor DNS usaba mi teléfono. Así que lancé un emulador de terminal e ingresé:

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

Como puede ver, mi teléfono usa 8.8.8.8 y 8.8.4.4 como servidores DNS (servidores DNS públicos de Google ).

En casa (Wifi), mi enrutador está configurado para dar servidores OpenDNS a través de DHCP. Pero, en mi teléfono, cat /etc/resolv.confdevuelve el mismo resultado. Lo mismo con 3G. E incluso si deshabilito Wifi y 3G, y luego reinicio el teléfono, todavía usa los servidores DNS públicos de Google.

No recuerdo haber cambiado resolv.confni instalado ninguna aplicación para cambiarlo.

Mi teléfono es un HTC Desire con CyanogenMod 7.2.0.1 (Android 2.3.7).

¿Alguien puede explicarme por qué mi teléfono usa el DNS público de Google? ¿Es una configuración común para cualquier dispositivo Android o ROM CyanogenMod?

Respuestas (1)

Según Steve Kondik , este es esencialmente un código antiguo que queda de versiones anteriores de CyanogenMod:

Esto solo estaba aquí para aplicaciones que estaban vinculadas estáticamente contra uclibc en versiones antiguas de CM. Es probable que simplemente se pueda eliminar.

Sin embargo, también continúa señalando :

Además, este archivo NO se escribe cuando se conecta a una red ya que /system es de solo lectura. Los servidores DNS reales se leen de las propiedades del sistema.

También acabo de verificar que los servidores suministrados por DHCP realmente se están utilizando, por lo que este problema no es válido a menos que alguien demuestre lo contrario.

Entonces, los valores en /etc/resolv.confrealidad no reflejan su configuración de DNS. Lo que puede hacer en su lugar es utilizar getproppara encontrar sus valores de DNS. Puede reducirlo bastante bien si combina la salida de esta manera:

getprop | grep dns

También vale la pena señalar: el /etc/resolv.confarchivo parece haber sido eliminado por completo en versiones posteriores de CyanogenMod. No tengo ninguno en CM10, pero getpropmuestra correctamente mi configuración de DNS.

Gran respuesta, gracias. Sin embargo, getprop | grep dnsno devuelve nada. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'(buscando la dirección IPv4) no devuelve un resultado relevante. Las propiedades devueltas son ro.baseband, ro.build.descriptiony . ¿Alguna idea? ro.modversiongsm.version.baseband
@Morgan: Supongo que podría haber algún tipo de diferencia entre CM7 (que está ejecutando) y CM10 (en lo que probé). ¿Qué sucede si no grep la salida en absoluto? ¿Ves algo relevante? (es posible que desee canalizarlo moreo algo similar, ya que podría ser largo)
Ahora, tengo resultados relevantes: [dhcp.eth0.dns1]: [], [dhcp.eth0.dns2]: [], [dhcp.eth0.dns3]: [], [dhcp.eth0.dns4]: [], [net.dns1]: [192.168.10.110], [net.dns2]: [], [net.rmnet0.dns1]: [192.168.10.110], [net.rmnet0.dns2]: [0.0.0.0], [net.dns1.3837]: []. Tal vez mi conexión a Internet todavía estaba deshabilitada cuando ejecuté el comando. ¿Sabes cuál se usa? ¿Recomiendas una aplicación o un método para cambiarlo?
@Morgan: No tengo un dispositivo Gingerbread a mano para probar, pero debería haber una manera de hacerlo en la configuración inalámbrica estándar si configura una IP estática (no creo que pueda hacerlo de esta manera si usa DHCP, desafortunadamente). En JB, presiono prolongadamente la red a la que estoy conectado y selecciono "Modificar" para acceder a ella. Sin embargo, puede estar en "Configuración avanzada" (botón de menú cuando está en la lista de redes wifi). También puede usar setprop, pero no persistirá en los reinicios/desconexiones. Por ejemplo. setprop net.rmnet0.dns1 <your DNS IP>debe cambiar el valor de la net.rmnet0.dns1propiedad.
Y creo que el adaptador usaría el más específico ( net.rmnet0.dns1en su caso), aunque puede estar heredando ese valor de la net.dns1propiedad más genérica.
¿Cómo puedo hacerlo para no tener que especificar un DNS en la configuración de IP estática? Google me obliga a usar el suyo, pero no necesito usar ninguno.
@Rhyuk: No lo sé. setproppodría ser una solución temporal si le dio valores en blanco, pero tendría que ejecutarlo en cada arranque (y no estoy seguro de si eso realmente funcionaría).
Lo intenté pero setprop requiere un valor, el espacio en blanco no funcionará :(