Comment changer les DNS de Connections mobiles sur Android Kitkat? -- 4.4-kitkat domaine et dns domain android en relation problème

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



24
vote

problème

français

Je veux éviter la censure de mon ISP mobile local (il bloque Imgur, par exemple pour une raison inconnue.

Capture d'écran
Capture d'écran (Cliquez sur l'image pour une variante plus grande)

Je suis assez certain que je peux contourner cela en changeant mon DNS en Google DNS ou Opendns, mais je ne sais pas vraiment comment accomplir cela sur Kitkat.

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

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 
     

Liste de réponses

18
 
vote

OK, tout d'abord Divulgation complète : Je suis l'auteur d'une application qui est maintenant sur Google Play Store et qui vous permet de modifier DNS pour une connexion mobile sur Android 4.4. L'application nécessite une racine coûte un couple de dollars et s'appelle remplacer DNS . On m'a dit que sur une réponse désormais supprimée, c'est juste de lier à mon application tant que je l'expose clairement.

Le problème que j'ai trouvé avec cette version d'Android (4.4) est que, apparemment pour des raisons de mise en cache, le comportement du système a été modifié pour rediriger toutes les requêtes DNS vers un démon système appelé netd (voici un lien à une présentation liée à Android Networking avant 4.4 qui couvre toutefois une partie de ces sujets).

Le 9988777661 9988777662 Méthode ne fonctionne plus. Ces valeurs, lorsqu'elles sont modifiées, obtenez simplement ignorées par le 9988777663 Démon.

Il est nécessaire de communiquer directement au démon via la prise 9988777664 . Dans Android, il est maintenant présent un outil appelé ndc qui fait exactement ce travail.

La syntaxe pour le matériel connexe DNS est ceci:

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

the app devine automatiquement le nom du périphérique réseau et applique ces commandes chaque fois qu'un réseau mobile est activé.

 

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 "Résolu" Ce problème en utilisant une règle d'IPTABLES pour transférer tous les connexions du port 53 à un serveur DNS prévu; Mon expérience sur Android 4.4.2, avec tentative de modification des paramètres DNS lorsqu'il est connecté à 3G, a été exactement comme leo décrit; Ignorance des valeurs dans getprop | grep DNS [0-9] ]: et dhcpd.conf.

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

La raison est comme décrit ici: http: //forum.xda-developers. com / showpost.php? p = 44722857 & amp; postcount = 6 Toutes les applications DO Les recherches DNS via NETD via une prise NETD via A / dev / socket / DNSProxyd Unix Socket. Ce fil décrit également pourquoi les propriétés du système sont ignorées.

Pour annuler cela, faites

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

, recherchez le numéro de ligne correspondant à UDP DPT: 53 à: xxx.xxx.xxx.xxx: 53 et faire

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

Malheureusement, il peut être impossible de faire à l'heure actuelle, cependant, il est possible d'essayer DNS Changer . Cela peut fonctionner si vous êtes enraciné, mais il n'y a pas de garantie.

Un bon service DNS à utiliser serait le service DNS public de Google. Il a tendance à travailler très bien pour ces types de problèmes ici.

Si rien de cela ne fonctionne, continuez à chercher des réponses. Un bon site pour des choses comme ceci est développeurs XDA . Ils ont tendance à avoir beaucoup de réponses sur les choses pour 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

Je suis sur Kitkat CyanogenMod 11, ce qui signifie que je suis enraciné par défaut. Malgré cela, je ne peux que signaler l'échec:

1ère méthode:

Quand j'essaie le adb shell avec

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

et ensuite test sur lequel IP HJFDKHFJKYUIWNWETBYEBVTWGQWDI.TK Résolve ... Je reçois une réponse nxdomaine, ce qui signifie qu'il n'est pas venu du serveur de noms Opendns que j'ai défini (qui retournerait une réponse avec une adresse IP alternative, pour vous servir ajoute).

Lorsque vous faites

getprop | grep dns

Je ne verrais que ce que j'ai configuré. Toutefois, lorsque vous passez du wifi vers mobile (3G ou 4G / LTE), je vois que je reconnais que je reconnais comme étant attribué à mon opérateur mobile. Les applications telles que "DnSwitch" ou "DNS Changer" peuvent réaffecter ces résolveurs automatiquement au changement de réseau. Cependant, quel getprop rapporte-moi, n'est toujours pas ce qui fait vraiment la résolution.

2ème méthode [a]:

Une autre façon que j'ai essayé, est Modifieng /system/etc/dhcpcd/dhcpcd-hooks/20-dns.conf Un ensemble de choses fixées (mais soyez conscient des noms de réseau et le nombre de résolveurs peut différer). Sans succès.

2ème méthode [b]:

et dans /system/etc/dhcpcd/dhcpcd.conf J'ai supprimé le paramètre pour accepter des résolveurs à la négociation DHCP. Pas de succès non plus.

3ème méthode:

Jusqu'à présent, la seule chose qui fonctionnerait un peu consiste à utiliser un "VPN de l'homme pauvre", à l'aide de l'application "tunnel SSH", à l'aide de SOCKS4, mais en utilisant cela, je n'ai pas vraiment eu un bon résultat.

CV:

On dirait que l'un ou l'autre DNS set ailleurs ou tous sont transférés (détournés) dès que le réseau est mobile.

Alors, comment va? Est-ce un autre moyen sale de fournir des transporteurs avec un outil pour démolir la neutralité du réseau?

Dans votre cas, votre question était à cause de cela. Avez-vous SSH pour essayer si Sshtunnel est une solution alternative pour contourner vos transporteurs?

 

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

J'ai rencontré le même problème aujourd'hui et, grâce à la transfusion. J'ai essayé de développer une application " DNS Transfert r" pour le calculer. Il ne modifie pas le serveur DNS sur le système, mais renvoie les requêtes DNS sur un autre serveur. Cette solution de contournement fonctionne bien pour moi sur Kitkat (Nexus 5 / 4.4.3 et Moto RAZR / CM11). J'espère que cela peut aider les autres aussi.

 

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

Actuellement, je ne pense pas qu'il y ait un moyen de modifier votre DNS sur vos données mobiles. Mais si votre téléphone est enraciné, vous pouvez utiliser des applications telles que Set 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.

 
 
         
         

Questions connexes

8  Android WiFi dit "Connecté, pas d'Internet" mais Internet fonctionne simplement bien  ( Android wifi says connected no internet but internet works just fine ) 
C'est une chose étrange qui a commencé à se produire avec le réseau WiFi à mon travail. Les périphériques Android connectés au réseau disent «connecté, pas In...

28  Comment atteindre l'ordinateur local via un nom de machine au lieu de la propriété intellectuelle?  ( How to reach local computer via machine name instead of ip ) 
développeur ici prototypage d'une application mobile, un peu nouveau sur mobile: J'ai un simple service http exécuté (actuellement) sur mon ordinateur port...

1  Comment bloquer l'accès aux domaines avec DNS66?  ( How to block access to domains with dns66 ) 
J'utilise le Open Source Android App DNS66 bloquer les annonces sur mon smartphone. Est-il possible de bloquer des domaines entiers (comme facebook.com, twi...

5  Comment définir le serveur DNS sur Nexus One?  ( How to set the dns server on nexus one ) 
L'ISP que j'ai utilisé sur ma N1 ne me permet pas d'ouvrir Facebook. À l'aide d'un PC, je peux utiliser Google DNS Server (8.8.8.8) pour les transmettre, mais...

7  Je veux un téléphone intelligent que je puisse verrouiller dans les paramètres DNS. Est Android "celui"  ( I want a smart phone that i can lock in dns settings is android the one ) 
Il s'agit d'être le Boss d'Internet . Je veux être capable de verrouiller ou de protéger les paramètres DNS sur Opendns, je peux donc avoir un smartphone sûr...

6  Puis-je remplacer les paramètres DNS par défaut sur un HTC Evo sans accès root?  ( Can i override the default dns settings on an htc evo without root access ) 
Y a-t-il un moyen de remplacer le (s) serveur (s) Sprint DNS) utilisé par défaut sur la connexion 3G d'un HTC Evo exécutant Froyo sans accès root? La raison...

24  Comment changer les DNS de Connections mobiles sur Android Kitkat?  ( How to change mobile connectionss dns on android kitkat ) 
Je veux éviter la censure de mon ISP mobile local (il bloque Imgur, par exemple pour une raison inconnue. Capture d'écran (Cliquez sur l'image pour une v...

6  Gingerbread Phone Seulement des requêtes pour les archives AAAA?  ( Gingerbread phone only queries for aaaa records ) 
Depuis hier, j'ai (en plus de l'IPv4 ordinaire) IPv6 dans mon réseau local à la maison (Native IPv6 est fourni par mon fournisseur de services Internet). J'...

0  Le pilote Android réinitialise DNS sur mon hôte Win7  ( Android driver resets dns on my win7 host ) 
Il y a quelques jours, j'ai branché mon téléphone Android (HTC1) à ma machine Win7 qui n'a jamais eu de problèmes de réseau. Quand je me suis connecté, j'ai...

2  Problème accédant à Internet dans 4.0 ICS  ( Problem accessing internet in 4 0 ics ) 
Pour une raison étrange, ma tablette Android 4.0 ICS n'est plus en mesure d'accéder à Internet. Tout d'abord, via WiFi, il pourrait se connecter à deux réseau...




© 2022 www.demandez.top All Rights Reserved. Questions et réponses Accueil Tous les droits sont réservés