¿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

16  ¿Terminal de Android no es capaz de NSLOKUP?  ( Android terminal not able to nslookup ) 
Cada vez que trato de Telnet a un dominio en mi LG Ally que falla, pero funciona si uso una dirección IP. Así que traté de usar nslookup telehack.com y devu...

0  Uso del servidor DNS local (privado) en Lollipop  ( Using local private dns server on lollipop ) 
Tengo un sitio web alojado en un servidor IIS en mi red. El DNS para este sitio web solo es válido desde la red. El DNS no se puede resolver fuera de esta red...

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...

2  Dnscrypt en Android  ( Dnscrypt on android ) 
Me gustaría instalar Dnscrypt en Android. Lo he instalado en Windows 8, Linux Mint y Kali Linux. Pero soy muy nuevo en Linux, tratando así a Android como una ...

1  Hotspot Red Mobile Tethering y DNS  ( Hotspot mobile network tethering and dns ) 
I y probablemente otros saben, si enciende el punto de acceso móvil y habilite la conexión WiFi, podemos usar nuestro teléfono Android para obtener acceso a I...

5  ¿Es posible realizar la resolución DNS basada en la conexión?  ( Is it possible to do dns resolution based on connection ) 
En mi teléfono Galaxy Note 2 (Android, por supuesto), es posible editar el archivo ABCDEFGHIJKLMNABCDEFGHIJKLMN0 para que resuelva example.com a una IP pú...

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...

3  Cambie DNS pero permanezca en DHCP  ( Change dns but stay on dhcp ) 
Tengo una caja de TV Android "Minix Neo X8-H Plus", ejecutando Android 4.4 (Kitkat). Quiero cambiar los servidores DNS en la conexión WiFi, pero para hacerl...

1  CyanogenMod 7 OpenVPN DNS no funciona  ( Cyanogenmod 7 openvpn dns not working ) 
Quiero enrutar todo el tráfico de Internet de mi teléfono a través de mi VPN. Estoy configurado OpenVPN en mi deseo HTC con CyanogenMod 7.2.0.1-Bravo a trav...

2  No puedo cambiar DNS en S3 Mini  ( Cant change dns on s3 mini ) 
Estoy tratando de usar OpenDNS en mi teléfono. He intentado usar setdns , cambiador DNS , y DNSET . Al menos dos de esos afirman que permiten cambiar el DN...

16  ¿Por qué Android se niega a resolver los registros DNS que señalan direcciones IP internas?  ( Why is android refusing to resolve dns records pointing to internal ip addresses ) 
Tengo un comportamiento muy extraño en un dispositivo Android (Nexus 7) al intentar acceder a las aplicaciones de red locales. En lugar de obtener la IP real ...

27  ¿Cómo puedo enjuagar el caché DNS?  ( How can i flush the dns cache ) 
¿Cómo puedo borrar mi caché DNS en mi teléfono Android? (Droid3, pan de jengibre, arraigado para ser específico) Idealmente, estoy buscando un comando para ...

0  Cambio de la configuración de DNS en Android - No funciona  ( Changing dns settings on android not working ) 
Cuando configuré mi DNS en mi dispositivo Android e vaya a prueba de fugas DNS no es El DNS que establecí en la configuración de DNS. Es el DNS establecido ...

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...

2  ¿Cómo navegar a un NAS en Android?  ( How to browse to a nas in android ) 
Tengo una NAS adjunta a mi enrutador de casa, y el NAS está ejecutando un servidor web. Me gustaría ejecutar el navegador en mi tableta Android, ingrese la UR...

1  Establecer DNS abiertos en Android 5.0.1  ( Set open dns in android 5 0 1 ) 
Acabo de actualizar mi OnePlus uno a Android 5.0.1, y no puedo cambiar el DNS cuando selecciono la opción "IP estática" en la configuración de Wi-Fi. Básicame...

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...

3  ¿Por qué mi teléfono MOTO X soporta MDNS pero mi tableta de Samsung no?  ( Why does my moto x phone support mdns but my samsung tablet does not ) 
Tengo un dispositivo que está transmitiendo MDNS, estoy usando esta aplicación para verla en el navegador de Bonjour: https://play.google.com/store /apps/det...

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...

3  ¿Qué servidores DNS se utilizan cuando están conectados a datos inalámbricos?  ( What dns servers are used when connected to wireless data ) 
¿Qué servidores DNS se utilizan cuando están conectados a datos inalámbricos (no wifi)? ¿Hay una manera dentro de Android Kitkat para decir? ...

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...

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...

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...

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 ...

Relacionados problema

16  ¿Terminal de Android no es capaz de NSLOKUP? 
0  Uso del servidor DNS local (privado) en Lollipop 
24  ¿Cómo cambiar el DNS de las conexiones móviles en Android Kitkat? 
2  Dnscrypt en Android 
1  Hotspot Red Mobile Tethering y DNS 
5  ¿Es posible realizar la resolución DNS basada en la conexión? 
2  Problema Acceso a Internet en 4.0 ICS 
3  Cambie DNS pero permanezca en DHCP 
1  CyanogenMod 7 OpenVPN DNS no funciona 
2  No puedo cambiar DNS en S3 Mini 
16  ¿Por qué Android se niega a resolver los registros DNS que señalan direcciones IP internas? 
27  ¿Cómo puedo enjuagar el caché DNS? 
0  Cambio de la configuración de DNS en Android - No funciona 
8  WiFi de Android dice "conectado, no internet", pero Internet funciona bien bien 
2  ¿Cómo navegar a un NAS en Android? 
1  Establecer DNS abiertos en Android 5.0.1 
5  ¿Cómo configurar el servidor DNS en NEXUS ONE? 
28  ¿Cómo llegar a la computadora local a través del nombre de la máquina en lugar de IP? 
3  ¿Por qué mi teléfono MOTO X soporta MDNS pero mi tableta de Samsung no? 
7  Quiero un teléfono inteligente que pueda bloquear la configuración de DNS. Es Android "el uno" 
3  ¿Qué servidores DNS se utilizan cuando están conectados a datos inalámbricos? 
1  ¿Cómo bloquear el acceso a los dominios con DNS66? 
6  ¿Teléfono de pan de jengibre solo consultas para los registros de AAAA? 
0  Driver Android restablece DNS en mi host de Win7 
6  ¿Puedo anular la configuración de DNS predeterminada en un HTC EVO sin acceso a la raíz? 



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