Choisir ses serveurs DNS sous android

Android est le système d'exploitation pour appareil mobile le plus utilisé au monde. Performant, avec un store débordant d'applications en tout genre, il n'est pas moins limité sur certains points. Ces limitations sont souvent dues au fait que google aime bien garder le contrôle de ses poules aux œufs d'or. C'est le cas pour la gestion des serveurs DNS lorsque l'appareil est connecté sur un réseau que l'on ne maitrise pas, que ce soit la 3G-4G, mais aussi via wifi. Nous allons voir qu'il est possible de choisir ces serveurs DNS pour peu que l'appareil soit rooté.

Je suis accro à la neutralité du net. Et le contrôle du DNS, protocole qui permet à toute machine connectée à internet de convertir le nom de domaine en adresse IP pour qu'il puisse joindre le serveur, est un des rouages essentiels de cette neutralité des réseaux.

Sans entrer dans les détails, celui qui maîtrise un serveur DNS peut modifier ce que vous voyez des internets en choisissant où vous arriverez en entrant l'adresse d'un site, faire disparaitre des pans entiers de ces réseaux, ou simplement espionner votre navigation.

Lorsque votre appareil android se connecte à un réseau, qu'il soit mobile ou wifi, il effectue une requête à un appareil (serveur DHCP), pour obtenir une adresse IP afin de pouvoir communiqué avec les autres machines sur le réseau. En même temps que cette adresse IP lui est attribuée, on lui indique quelles sont les adresses IP des serveurs DNS qu'il pourra utiliser. Tout se passe automatiquement et est transparent pour l'utilisateur. Comme dit plus haut, si vous ne maitrisez pas le réseau auquel vous vous connectez, vous n'aurez pas le choix de ces serveurs. Typiquement, sur un réseau mobile c'est votre opérateur qui les choisit pour vous, avec les soucis qui peuvent en découler.

Il y a un peu plus d'un an, memo-linux a proposé un tuto permettant de modifier les serveurs DNS sur un appareil android rooté en lignes de commandes. Cette méthode est aussi valable que celle que je vous propose en dehors du fait que je vous évite de taper des lignes compliquées auxquelles vous ne comprendrez pas grand chose.

Première chose impérative, votre appareil doit être rooté. C'est à dire que vous pouvez lui lui donner des directives en mode super utilisateur, et non pas comme un utilisateur lambda. Rooter un androphone ou assimilé n'est pas à prendre à la légère. Soyez prudent car vous pouvez le rendre inutilisable, et sa garantie a de forte de chance d'être annulée. Chaque appareil étant différent, je vous laisse chercher comme faire pour votre modèle.

Autre étape à franchir, installer F-droid. C'est un appstore alternatif ne proposant que des applications libres souvent non disponibles sur le playstore et totalement indépendant de google.

Une fois F-droid installé, il vous suffit de faire une recherche pour DNSsetter et de l'installer. DNSsetter est une application permettant de modifier les serveur DNS utilisés sous android à la volée, sous licence GPL v3+ et dont le code est disponible sur Github.

dnssetter-f-droid

La suite est on ne peut plus simple. On lance l'application, et dès l'ouverture DNSsetter vous indique dans le bas quels sont les serveurs DNS utilisés.

2015-05-03 19.27.24

Dans mon cas, sur le screen ci-dessus, ce sont ceux fournis par Free mobile.

Il suffit ensuite d'entrer les adresses IP de serveurs DNS neutres comme ceux que FDN propose:

  • 80.67.169.12
  • 80.67.169.40

Appliquez les changements avec le bouton "Apply", et autorisez DNSsetter à utiliser les droits de super-utilisateur:

2015-05-05 11.25.32

Et voilà, vous avez un accès aux internets via votre adromachine plus propre !

2015-05-05 11.25.56

Attention toutefois, DSNsetter ne fait que modifier les paramètres lorsque vous appuyez sur le vous appliquez les changements. Si vous redémarrez votre appareil, réinitialisez votre connexion (en sortant du mode avion par exemple), ou que vous changez d'adresse IP en vous connectant à un réseau wifi, vous perdrez ces réglages.

Notez que dans mon cas DNSsetter conserve les adresses IP dans les champs de son interface après redémarrage. Il m'a suffit d'appuyer sur le bouton "Apply" pour les appliquer à nouveau.