¿Cómo cambiar el DNS de las conexiones móviles en Android Kitkat? -- 4.4-kitkat campo con dns camp android Relacionados El problema

How to change mobile connections's DNS on Android KitKat?


24
vote

problema

Español

Quiero evitar la censura de mi ISP móvil local (bloquea Imgur, por ejemplo, por alguna razón desconocida.

captura de pantalla
captura de pantalla (haga clic en la imagen para una variante más grande)

Estoy bastante seguro de que puedo evitar esto cambiando mi DNS a Google DNS u OpenDNS, pero no estoy realmente seguro de cómo lograr esto en Kitkat.

  Info: Device: Nexus 5 Android version: 4.4.2 Device status: rooted   
Original en ingles

I want to avoid censorship from my local mobile ISP (it blocks imgur, for example, for some unknown reason.

Screenshot
Screenshot (click image for larger variant)

I'm pretty certain that I can circumvent this by changing my DNS to Google DNS or OpenDNS, but I'm not really sure how to accomplish this on KitKat.

Info: Device: Nexus 5 Android version: 4.4.2 Device status: rooted 
     

Lista de respuestas

18
 
vote

OK, en primer lugar Divulgación completa : soy el autor de una aplicación que ahora está en la tienda de Google Play y que hace que pueda cambiar DNS para cualquier conexión móvil en Android 4.4. La aplicación requiere raíz , cuesta un par de dólares y se llama anular DNS . Me dijeron, en una respuesta ahora eliminada, eso es justo enlazar con mi aplicación siempre y cuando la exponga claramente.

El problema que encontré con esta versión de Android (4.4) es que, aparentemente para razones de almacenamiento en caché, el comportamiento del sistema se ha cambiado para redirigir todas las consultas DNS a un demonio del sistema llamado netd (Aquí hay un enlace a una presentación relacionada a la red de Android antes de 4.4, que, sin embargo, cubre parte de estos temas).

El ABCDEFGHIJKLMNABCDEFGHIJKLMN1 / ABCDEFGHIJKLMNABCDEFGHIJKLMN2 MÉTODO DE NO FORMA Esos valores, cuando se modifican, simplemente se ignoran con el demonio netd/defghijklmn3.

Es necesario comunicarse directamente al demonio a través del socket /dev/socket/netdDefghijklmn4Defghijklmn4. En Android, ahora está presente una herramienta llamada ndc que hace exactamente este trabajo.

La sintaxis para las cosas relacionadas con DNS es esta:

  # ndc resolver flushif <iface> # ndc resolver flushdefaultif # ndc resolver setifdns <iface> <domains> <dns1> <dns2> # ndc resolver setdefaultif <iface>   

The aplicación Adivina automáticamente el nombre del dispositivo de red y aplica estos comandos cada vez que se activa una red móvil.

 

Ok, first of all full disclosure: I'm the author of an app which is now on the Google Play Store and which makes you able to change DNS for any mobile connection on Android 4.4. The app requires root, costs a couple of bucks and is called Override DNS. I was told, on a now deleted answer, that is fair to link to my app as long as I expose it clearly.

The problem I found with this release of Android (4.4) is that, apparently for caching reasons, the system behaviour has been changed to redirect all DNS queries to a system daemon called netd (here's a link to a presentation related to Android networking before 4.4 which, however, covers part of these topics).

The getprop/setprop method does not work anymore. Those values, when changed, get simply ignored by the netd daemon.

It's necessary to communicate directly to the daemon via the /dev/socket/netd socket. In Android it's now present a tool called ndc which does exactly this job.

The syntax for the DNS related stuff is this:

# ndc resolver flushif <iface> # ndc resolver flushdefaultif # ndc resolver setifdns <iface> <domains> <dns1> <dns2> # ndc resolver setdefaultif <iface> 

The app automatically guesses the network device name and applies these commands each time a mobile network gets activated.

 
 
   
   
13
 
vote

i "Resolvió" este problema utilizando una regla IPTables para reenviar todas las conexiones de puerto 53 a un servidor DNS previsto; Mi experiencia en Android 4.4.2 con intento de modificar la configuración de DNS mientras está conectada a 3G ha sido exactamente como se describe LEO; ignorancia de los valores en GetProp | GREP DNS [0-9] ]: y DHCPD.CONF.

  iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 8.8.8.8:53   

La razón es la descrita aquí: http: //forum.xda-developers. com / showpost.php? p = 44722857 & amp; postcount = 6 Todas las aplicaciones hacen las buscaplas DNS a través de NETD a través de una toma de A / Dev / Socket / DNSProxyd Unix Socket. Este hilo también describe por qué las propiedades del sistema se están ignorando.

para deshacer esto, do

  iptables -t nat -L OUTPUT -n -v --line-numbers   

, encuentra el número de línea que corresponde a UDP DPT: 53 a: xxx.xxx.xxx.xxx: 53 y hacer

  iptables -t nat -D OUTPUT *linenumber*   
 

I "solved" this problem by using an iptables rule to forward all port 53 connections to an intended DNS server; my experience on Android 4.4.2 with attempting to modify DNS settings while connected to 3G has been exactly as Leo described; ignorance of values in getprop |grep dns[0-9]\]: and dhcpd.conf.

iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 8.8.8.8:53 

The reason is as described here: http://forum.xda-developers.com/showpost.php?p=44722857&postcount=6 All apps do DNS lookups through netd via a /dev/socket/dnsproxyd unix socket. This thread also describes why system properties are being ignored.

To undo this, do

iptables -t nat -L OUTPUT -n -v --line-numbers 

, find the line number that corresponds to udp dpt:53 to:xxx.xxx.xxx.xxx:53 and do

iptables -t nat -D OUTPUT *linenumber* 
 
 
 
 
1
 
vote

Lamentablemente, puede ser imposible hacerlo a partir de ahora, sin embargo, es posible intentarlo Cambiador de DNS . Esto puede funcionar si está arraigado, pero no hay garantías.

Un buen servicio DNS para usar sería el servicio DNS público de Google. Tiende a funcionar muy bien para este tipo de temas aquí.

Si nada de esto funciona, sigue buscando respuestas. Un buen sitio para cosas como esta es Desarrolladores XDA . Tienden a tener muchas respuestas sobre las cosas para Android.

 

Sadly, it may be impossible to do as of right now, however, it is possible to try DNS Changer. This may work if you are rooted, but there are no guarantees.

A good DNS service to use would be Google's public DNS service. It tends to work out very well for these type of issues right here.

If none of this works, keep looking for answers. A good site for things like this is XDA Developers. They tend to have many answers on things for Android.

 
 
1
 
vote

Estoy en Kitkat CyanogenMod 11, lo que significa que estoy arraigado por defecto. A pesar de que solo puedo reportar un fallo:

1er método:

Cuando intento el adb shell con

  setprop net.rmnet0.dns1 208.67.222.222 setprop net.rmnet0.dns2 208.67.222.222 setprop net.rmnet1.dns1 208.67.222.222 setprop net.rmnet1.dns2 208.67.222.222 setprop net.rmnet2.dns1 208.67.222.222 setprop net.rmnet2.dns2 208.67.222.222 setprop net.dns1 208.67.222.222 setprop net.dns1 208.67.222.222   

y luego prueba a la cual IP hjfdkhfjkyuiwnwetbyebvtwgqwetbyebvtwwgqwdi.tk resolve's ... Recibo una respuesta de NxDomain, lo que significa que no vino del servidor de nombres de OpenDNS que he establecido (lo que devolvería una respuesta con una IP alternativa, para servirle a agregar).

al hacer

  ABCDEFGHIJKLMNABCDEFGHIJKLMN5   

Solo vería lo que he configurado. Sin embargo, cuando se cambia de WiFi a Mobile (3G o 4G / LTE), veo IP's que reconozco como asignado a mi portador móvil. Las aplicaciones como "DNSWITCH" o "DNS CHANTER" pueden volver a configurar esos resoluciones automáticamente en el cambio de red. Sin embargo, lo que me informa que abcdefghijklmngetprop no es lo que realmente está haciendo la resolución.

2nd método [A]:

Otra forma en que lo intenté, es Modifieng /system/etc/dhcpcd/dhcpcd-hooks/20-dns.conf Un conjunto de cosas fijas en allí (pero tenga en cuenta los nombres de la red y el número de resolores pueden diferir). Sin éxito.

2nd método [B]:

y en /system/etc/dhcpcd/dhcpcd.conf He eliminado el parámetro para aceptar resolores en la negociación DHCP. Tampoco éxito.

3º Método:

Hasta ahora lo único que funcionaría un poco es usar un "pobre hombre VPN", utilizando la aplicación "SSH TUNEL", usando Socks4, pero usando eso no tenía un buen resultado.

curriculum vitae:

Parece que se establece DNS en otro lugar, o todos se reenvían (secuestrados) tan pronto, la red es móvil.

Entonces, ¿cómo es así? ¿Es otra forma sucia de proporcionar a los transportistas una herramienta para demoler la neutralidad de la red?

En su caso, su pregunta fue debido a eso. ¿Tiene SSH para intentarlo si SSHTUNNEL es una solución alternativa para moverse en la censura de sus compañías?

 

I'm on KitKat Cyanogenmod 11, meaning I'm rooted by default. Despite that I can only report failure:

1st method:

When I try the adb shell with

setprop net.rmnet0.dns1 208.67.222.222 setprop net.rmnet0.dns2 208.67.222.222 setprop net.rmnet1.dns1 208.67.222.222 setprop net.rmnet1.dns2 208.67.222.222 setprop net.rmnet2.dns1 208.67.222.222 setprop net.rmnet2.dns2 208.67.222.222 setprop net.dns1 208.67.222.222 setprop net.dns1 208.67.222.222 

and then test to which IP hjfdkhfjkyuiwnwetbyebvtwgqwdi.tk resolve's... I get an NXDOMAIN response, meaning it didn't came from the OpenDNS nameserver I've set (which would return an answer with an alternative IP, to serve you adds).

When doing

getprop | grep dns 

I would only see what I've configured. However when switching from WiFi to mobile (3G or 4G/LTE) I see IP's that I recognize as being assigned to my mobile carrier. Apps like "DNSwitch" or "DNS Changer" can re-set those resolvers automaticly at network change. However what getprop reports me, is still not what's truly doing the resolving.

2nd method [a]:

Another way I tried, is modifieng /system/etc/dhcpcd/dhcpcd-hooks/20-dns.conf an set things fixed in there (but be aware network names and number of resolvers can differ). Without success.

2nd method [b]:

And in /system/etc/dhcpcd/dhcpcd.conf I removed the parameter to accept resolvers at DHCP negociation. No success either.

3th method:

So far the only thing that would work a little is using a "poor man VPN", using the app "SSH Tunnel", using SOCKS4, but using that I did not exactly got a good result.

Resume:

It seems like either DNS set elsewhere, or all are forwarded (hijacked) as soon the network is mobile.

So, how come? Is it another dirty way to provide carriers with a tool to demolish network neutrality?

In your case your question was because of that. Do you have SSH to try if SSHTunnel is a alternative solution to get around your carriers censoring?

 
 
 
 
1
 
vote

Hoy encontré el mismo problema, y ​​gracias a la transfusión. Intenté desarrollar una aplicación " dns hacia adelante r" para resolverlo. No cambia el servidor DNS en el sistema, sino que reenvía las consultas DNS a otro servidor. Esta solución funciona bien para mí en Kitkat (Nexus 5 / 4.4.3 y Moto Razr / CM11). Espero que pueda ayudar a otros también.

 

I encountered the same problem today, and thanks to Transfusion. I tried to develop an app "DNS forwarder" to work it out. It does not change dns server on system, but forward dns queries to another server. This workaround works fine for me on Kitkat (Nexus 5/4.4.3 and Moto Razr/CM11). Hope it can help other as well.

 
 
 
 
0
 
vote

Actualmente no creo que haya ninguna manera de cambiar su DNS en sus datos móviles. Pero si su teléfono está arraigado, puede usar aplicaciones como Establecer DNS .

 

Currently I don't think there's any way to change your DNS on your mobile data. But if your phone is rooted you can use apps like Set DNS.

 
 
         
         

Relacionados problema

1  ¿Cómo bloquear el acceso a los dominios con DNS66?  ( How to block access to domains with dns66 ) 
Estoy usando el Aplicación de Android Open Source DNS66 para bloquear anuncios en mi teléfono inteligente. ¿Es posible bloquear dominios enteros (como Faceb...

7  Quiero un teléfono inteligente que pueda bloquear la configuración de DNS. Es Android "el uno"  ( I want a smart phone that i can lock in dns settings is android the one ) 
Se trata de ser el jefe de Internet . Quiero poder bloquear o proteger la contraseña para proteger la configuración de DNS a OpenDNS, para que pueda tener un...

24  ¿Cómo cambiar el DNS de las conexiones móviles en Android Kitkat?  ( How to change mobile connectionss dns on android kitkat ) 
Quiero evitar la censura de mi ISP móvil local (bloquea Imgur, por ejemplo, por alguna razón desconocida. captura de pantalla (haga clic en la imagen par...

0  Driver Android restablece DNS en mi host de Win7  ( Android driver resets dns on my win7 host ) 
Hace unos días, conecté mi teléfono Android (HTC1) a mi máquina WIN7 que nunca tuvo problemas de red. Cuando estoy conectado, también hice el siguiente camb...

5  ¿Cómo configurar el servidor DNS en NEXUS ONE?  ( How to set the dns server on nexus one ) 
El ISP que uso en mi N1 no me permite abrir Facebook. Usando una PC, puedo usar el servidor DNS de Google (8.8.8.8) para pasarlos, pero en N1, no puedo encont...

28  ¿Cómo llegar a la computadora local a través del nombre de la máquina en lugar de IP?  ( How to reach local computer via machine name instead of ip ) 
Desarrollador aquí prototipando una aplicación móvil, algo nuevo en Mobile: Tengo un servicio HTTP simple que se ejecuta (actualmente) en mi computadora po...

8  WiFi de Android dice "conectado, no internet", pero Internet funciona bien bien  ( Android wifi says connected no internet but internet works just fine ) 
Esto es algo extraño que comenzó a suceder con la red WiFi en mi trabajo. Los dispositivos Android conectados a la red dicen "conectados, no hay internet", si...

6  ¿Teléfono de pan de jengibre solo consultas para los registros de AAAA?  ( Gingerbread phone only queries for aaaa records ) 
Desde ayer, tengo (además del IPv4 regular) IPv6 en mi LAN en casa (My ISP proporciona IPv6 nativo). Tengo escritorio de Windows XP, Windows 7 y Linux y una...

6  ¿Puedo anular la configuración de DNS predeterminada en un HTC EVO sin acceso a la raíz?  ( Can i override the default dns settings on an htc evo without root access ) 
¿Hay alguna forma de anular el (los) servidor (s) de Sprint DNS utilizado de forma predeterminada en la conexión 3G de un HTC EVO en funcionamiento Froyo sin ...

2  Problema Acceso a Internet en 4.0 ICS  ( Problem accessing internet in 4 0 ics ) 
Por alguna extraña razón, mi tableta Android 4.0 ICS ya no puede acceder a Internet. Primero, a través de WiFi, podría conectarse a dos redes distintas. Luego...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos