Exécution d'un serveur DNS sur un ancien téléphone Android

Un rédacteur de XDA a sorti un téléphone Snapdragon 845 du tiroir, installé Debian dans Termux et s’est retrouvé avec un serveur DNS qui servait mieux toute la maison que le Raspberry Pi qu’il remplaçait. Le matériel était déjà excessif: 6 Go de RAM, stockage UFS, Wi-Fi intégré et une batterie qui continue de répondre aux requêtes même en cas de panne de courant. Coût total, zéro.

Le matériel est la partie facile. Choisir le logiciel est le point où la plupart des gens sont bloqués, car presque toutes les applications DNS sur Android sont conçues pour protéger un téléphone, et non pour répondre aux questions de toute la maison. Nous avons parcouru les applications Android qui peuvent réellement placer un résolveur sur votre réseau, vérifié ce que chacun sert réellement et classé les meilleures applications pour exécuter un serveur DNS sur un ancien téléphone Android ci-dessous.

Une note de portée avant la liste. Ceci n’est pas une comparaison des fournisseurs DNS, et ce n’est pas un autre tour des clients de changement DNS. Si vous les voulez, nous avons AdGuard DNS vs NextDNS vs ControlD vs Quad9 et le tour des alternatives Pi-hole. Tout ce qui suit est jugé sur une question: le téléphone lui-même peut-il répondre DNS pour votre TV, votre ordinateur portable et la tablette de votre colocataire?

Ce qu'il faut rechercher dans une application serveur DNS Android

Six choses séparent un vrai résolveur réseau d’une application qui filtre simplement le téléphone sur lequel il s’exécute.

Les deux premiers sont beaucoup plus importants que ne l’indiquent les listes de fonctionnalités. La plupart des applications de confidentialité Android occupent la fente VPN, enveloppent le trafic du téléphone et n’ont aucune notion d’un second appareil. C’est bien pour un chauffeur quotidien et inutile pour un serveur.

Les limites que personne ne met dans la boîte

Le port 53 est le mur sur lequel la plupart des projets frappent. Sous Android, les ports inférieurs à 1024 sont privilégiés, et proot (la couche de compatibilité que Termux utilise pour exécuter un userland Debian) ne peut pas du tout les lier, il remapte donc silencieusement les ports privilégiés vers le haut. Sans root, vous finissez par servir DNS sur quelque chose comme le port 5353, et la plupart des routeurs de consommateurs vous permettent seulement de taper une adresse IP pour DNS, sans champ de port. Root, ce qui signifie un chargeur de démarrage déverrouillé et Magisk, est ce qui vous donne le port 53 et un résolveur que le routeur acceptera. Cela annule également la garantie sur la plupart des téléphones, casse Play Integrity et casse les applications bancaires et de portefeuille, utilisez donc un téléphone auquel vous avez renoncé plutôt qu’un qui est encore en service.

Le reste de la plomberie est banal mais facile à oublier. Donnez au téléphone une réservation DHCP ou une IP LAN statique, car un serveur dont l’adresse se déplace est une panne de maison entière en attente. Exemptez le résolveur de l’optimisation de la batterie et maintenez un verrou d’éveil, ou Android le suspendra après quelques minutes d’inactivité. Et ne laissez pas le téléphone charger à 100% pour toujours si vous pouvez l’éviter, car une cellule de poche chaude maintenue à charge complète pendant des mois est la façon dont ces builds se terminent. Beaucoup de ROM et de peaux OEM exposent une limite de charge; si la vôtre ne le fait pas, faire fonctionner le téléphone à l’écart du chargeur occasionnellement est mieux que rien.

Comparaison rapide

Application Idéal pour Sert Besoin de root Prix
Termux Un vrai Pi-hole ou AdGuard Home sur le téléphone LAN complet Pour le port 53 Gratuit
personalDNSfilter DNS réseau sans terminal LAN complet Pour le port 53 Gratuit
Servers Ultimate Configuration basée sur des formulaires, sans shell LAN complet Pour le port 53 Essai, puis payant
RethinkDNS Le téléphone lui-même, et pointant les clients vers votre serveur Un appareil Non Gratuit
InviZible Pro Appareils via le point d’accès du téléphone Clients de point d’accès Pour les bonnes parties Version gratuite disponible
Nebulo Chiffrement en amont léger Un appareil Non Gratuit
AdAway Blocage sur le téléphone serveur sans emplacement VPN Un appareil Oui pour le mode hosts Gratuit
Termux:Boot Survie aux redémarrages Rôle de soutien Non Gratuit

Les applications

1. Termux, mieux pour un vrai résolveur réseau

Termux est la seule option de cette liste qui vous donne le même logiciel qu’un Raspberry Pi exécuterait. Installez proot-distro, entrez dans un userland Debian, et AdGuard Home, Pi-hole, Unbound ou dnsmasq s’installent comme ils le font ailleurs. AdGuard Home est le plus doux des deux grands: un seul binaire, tableau de bord web sur le port 3000, listes de blocage et règles par client incluses. Pi-hole fonctionne également, bien que FTL doive être lancé au premier plan avec pihole-FTL -f à l’intérieur d’une session tmux, car proot tue les processus qui se daemon et se détachent.

Où il est insuffisant: port 53, comme discuté ci-dessus. Sans root vous servez sur un port élevé que la plupart des routeurs n’accepteront pas, ce qui transforme un résolveur réseau en un par appareil. La version de Google Play est également une branche maintenue séparément avec des modifications annulées à partir des versions récentes, donc pour un serveur vous voulez la version F-Droid ou GitHub.

Prix: Gratuit et open source (GPLv3).

Plates-formes: Android.

Télécharger: Termux sur Google Play · F-Droid · GitHub

Conclusion: Prenez cet itinéraire si vous voulez des règles de blocage par client et un tableau de bord, et vous avez un téléphone rooté plus une soirée à passer.

2. personalDNSfilter, meilleur serveur DNS réseau sans terminal

personalDNSfilter est un petit serveur proxy DNS Java qui s’accroche à la résolution de noms et renvoie une adresse de loopback pour tout ce qui se trouve sur sa liste de blocage. Ce qui le rend inhabituel, c’est qu’il a été conçu pour fonctionner soit localement sur un appareil, soit centralement en tant que serveur DNS d’un réseau, ce qu’aucune autre application DNS Android ne peut guère dire. Le filtrage se fait entièrement sur le téléphone, il fonctionne avec n’importe quel résolveur en amont que vous indiquez, et le mode local fonctionne sans root.

Où il est insuffisant: la configuration ressemble à l’édition d’un fichier de configuration plutôt qu’à l’appui sur des commutateurs, et l’interface est une liste de paramètres plus une fenêtre de journal. Revendiquer le port 53 est toujours une question de root, donc sur un téléphone standard vous êtes de retour sur un port élevé.

Prix: Gratuit et open source.

Plates-formes: Android.

Télécharger: personalDNSfilter sur Google Play · F-Droid

Conclusion: Le meilleur choix si vous voulez que le téléphone serve DNS au réseau mais n’êtes pas intéressé par l’apprentissage de Termux.

3. Servers Ultimate, meilleure configuration serveur ponctuelle

Servers Ultimate exécute plus de 60 types de serveurs sur Android, et un serveur DNS et un serveur dnsmasq en font partie. Tout est configuré via des formulaires, il n’y a pas de shell, pas de gestionnaire de paquets et pas de couche proot entre vous et le service. Pour un téléphone de tiroir qui va également exécuter un partage de fichiers ou un point final FTP, une application couvre tout.

Où il est insuffisant: la version gratuite vous limite à deux serveurs et cesse de fonctionner après un essai de sept jours, donc un déblocage payant est requis pour tout ce qui est permanent. C’est fermé, et les écrans de paramètres emballent beaucoup de champs dans très peu d’espace. Le port 53 reste un privilège root uniquement ici aussi.

Prix: Essai gratuit (deux serveurs, sept jours), puis déblocage payant unique.

Plates-formes: Android.

Télécharger: Servers Ultimate sur Google Play

Conclusion: Vaut la peine de payer si la ligne de commande est ce qui vous arrête, et à sauter si vous alliez installer Termux de toute façon.

4. RethinkDNS, meilleur résolveur pour le téléphone et les clients autour

RethinkDNS est l’application DNS et firewall à exécuter sur le téléphone lui-même, et elle joue un deuxième rôle qu’il est facile de manquer: elle supporte un type de résolveur proxy DNS simple où vous tapez une adresse IP et un port. C’est exactement comment vous pointez un autre appareil Android vers le téléphone serveur, y compris lorsque votre serveur est bloqué sur un port élevé que le routeur refuse de remettre. Il fait également DoH, DoT, DNSCrypt et ODoH en amont, expédie plus de 190 listes de blocage sur l’appareil et inclut un pare-feu par application avec un suivi des connexions.

Où il est insuffisant: il ne répond pas aux requêtes d’autres appareils. Rethink protège le téléphone sur lequel il s’exécute, et il le fait par la fente VPN, ce qui signifie que le téléphone serveur ne peut pas utiliser cet emplacement pour autre chose en même temps.

Prix: Gratuit et open source, pas de publicités.

Plates-formes: Android 6 et plus récent.

Télécharger: Rethink sur Google Play · F-Droid · GitHub

Conclusion: Installez-le sur les téléphones auxquels vous voulez pointer vers votre nouveau résolveur, pas sur le résolveur lui-même.

5. InviZible Pro, mieux pour servir les appareils sur le point d’accès du téléphone

InviZible Pro regroupe DNSCrypt, Tor et I2P, et c’est l’une des rares applications Android avec vrai support de tethering: allumez les options de tethering, lancez DNSCrypt, et les appareils connectés au point d’accès du téléphone se résolvent via lui. En mode root avec l’option Fix TTL activée, il affichera également un journal de requêtes DNS en direct pour les clients tethered, ce qui est vraiment utile pour attraper une Smart TV qui signale à domicile toutes les trente secondes.

Où il est insuffisant: les clients de point d’accès ne sont pas la même chose que votre réseau Wi-Fi existant, donc cela couvre les appareils que vous connectez délibérément au téléphone plutôt que tout ce qui est déjà sur le routeur. Root déverrouille la plupart de ce qui le rend intéressant, et exécuter un point d’accès plus Tor garde le téléphone chaud et la batterie occupée.

Prix: Open source, avec une version gratuite sur F-Droid.

Plates-formes: Android.

Télécharger: F-Droid · GitHub

Conclusion: La bonne réponse lorsque le “réseau” que vous voulez couvrir est quelques appareils que vous pouvez connecter directement au téléphone, comme une configuration de voyage ou une chambre d’hôtes.

6. Nebulo, meilleur chiffrement en amont léger

Nebulo est un client DoH, DoT et DoH3 de Frostnerd sans publicités, sans suivi et avec la réputation de rester hors des statistiques de batterie. Sa pertinence ici est un mode sans VPN expérimental qui exécute un serveur DNS local au lieu du VPN factice habituel, ce qui laisse la fente VPN libre sur un téléphone déjà occupé par d’autres tâches.

Où il est insuffisant: le mode sans VPN est expérimental, et il s’attend à ce qu’une application tierce transfère les requêtes vers lui plutôt que de les capturer pour vous. Nebulo n’est pas non plus dans le référentiel principal de F-Droid, donc installer en dehors de Google Play signifie ajouter le propre repo du développeur.

Prix: Gratuit.

Plates-formes: Android 6 et plus récent.

Télécharger: Nebulo sur Google Play · Miroir GitHub

Conclusion: Un bon amont chiffré pour les téléphones clients de la maison, et une option de niche sur le téléphone serveur quand la fente VPN a déjà parlé.

7. AdAway, meilleur bloqueur pour le téléphone serveur lui-même

AdAway prend un itinéraire différent au même résultat: en mode root, il réécrit le fichier des hôtes du système, de sorte que le blocage s’applique à l’échelle du système sans occuper la fente VPN. Sur un téléphone qui exécute Termux, un point d’accès ou quelque chose d’autre qui veut cet emplacement, cette différence est le tout. Un mode VPN sans root est également disponible, et l’application a été maintenue sur F-Droid pendant plus d’une décennie.

Où il est insuffisant: le blocage des fichiers d’hôtes ne couvre que le téléphone sur lequel il s’exécute, il ne contribue donc à rien du côté réseau du projet. Le mode root signifie un chargeur de démarrage déverrouillé, et sur la plupart des téléphones, cela signifie la fin de la garantie, casse Play Integrity dans les applications bancaires et de portefeuille, et remet les mises à jour de sécurité des fournisseurs entre vos mains plutôt que celles du fabricant. AdAway n’est pas non plus sur Google Play.

Prix: Gratuit et open source.

Plates-formes: Android 8 et plus récent.

Télécharger: F-Droid · GitHub

Conclusion: Ajoutez-le une fois que le téléphone est déjà rooté, de sorte que le serveur se maintient propre sans voler la fente VPN de rien d’autre.

8. Termux:Boot, la différence entre un serveur et une démo de fin de semaine

Termux:Boot est un petit add-on qui exécute des scripts à partir de ~/.termux/boot/ au démarrage du téléphone. C’est tout ce qu’il fait, et c’est la raison pour laquelle la version XDA a continué à fonctionner: après une panne de courant, un redémarrage OTA ou un crash, le résolveur revient seul au lieu d’attendre que vous remarquiez qu’Internet est cassé et SSH. Associez-le à la notification de verrou d’éveil de Termux et à une exemption d’optimisation de batterie pour Termux.

Où il est insuffisant: il gère seulement le démarrage. Si Android décide de tuer le processus deux heures plus tard, le verrou d’éveil et l’exemption d’optimisation sont ce qui vous sauve, pas ceci. Les skins OEM agressifs de Xiaomi, Samsung et Oppo veulent également que leur propre permission de démarrage automatique soit accordée avant que les scripts de démarrage ne s’exécutent de manière fiable.

Prix: Gratuit et open source.

Plates-formes: Android, ainsi qu’une installation de Termux de la même source.

Télécharger: F-Droid · GitHub

Conclusion: Installez-le dans les dix premières minutes, pas après la troisième fois que la maison perd DNS.

Comment choisir le bon

Si vous voulez l’expérience complète, des règles par client, un tableau de bord, des graphiques de requêtes et la possibilité de permuter Unbound plus tard, utilisez Termux avec AdGuard Home à l’intérieur d’un proot Debian, et rootez le téléphone pour qu’il puisse contenir le port 53.

Si le terminal est le facteur décisif mais que vous voulez toujours que le réseau complet soit couvert, utilisez personalDNSfilter. C’est la seule application sans shell ici qui a été réellement conçue pour répondre à d’autres appareils.

Si vous préférez payer quelques euros plutôt que de configurer quelque chose à la main, Servers Ultimate obtient un serveur DNS ou dnsmasq s’exécutant à partir d’un formulaire, et il exécutera également vos autres odds and ends de serveur domestique.

Si le téléphone va être un routeur de voyage ou une boîte de chambre d’hôtes, InviZible Pro sur le point d’accès est plus simple que n’importe lequel des éléments ci-dessus et ne nécessite aucune modification du routeur du tout.

Si vous avez essayé l’itinéraire Termux et avez abandonné au port 53, installez RethinkDNS sur vos téléphones et pointez son type de résolveur proxy DNS vers l’IP du serveur et le port élevé. Le routeur n’a jamais besoin de le savoir.

Et quel que soit le serveur sur lequel vous atterrissez, ajoutez Termux:Boot, une réservation DHCP et une exemption d’optimisation de batterie avant d’appeler le projet fini.

FAQ

Un ancien téléphone Android peut-il réellement remplacer un Raspberry Pi comme serveur DNS?

Pour DNS, oui. Un téléphone de 2018 a plus de RAM et un stockage plus rapide que la plupart des modèles Pi, plus Wi-Fi et une batterie intégrée qui agit comme un petit UPS pendant les pannes de courant. Le compromis est l’effort de configuration: Android n’est pas conçu pour être un serveur, il faut donc plus de temps pour faire fonctionner correctement les scripts de démarrage, la liaison de port et l’exécution en arrière-plan que de flasher une carte SD.

Avez-vous besoin de root pour exécuter un serveur DNS sur un téléphone Android?

Non pour en exécuter un, mais effectivement oui pour faire en sorte que votre routeur l’utilise. Android réserve les ports inférieur à 1024, et proot ne peut pas du tout les lier, donc un téléphone non rooté sert DNS sur un port élevé que la plupart des routeurs de consommateurs ne peuvent pas être instruits d’utiliser. Root vous donne le port 53, au prix de la garantie, Play Integrity et les mises à jour de sécurité des fournisseurs.

Quelle application permet à un téléphone Android de servir DNS à d’autres appareils?

Termux (exécutant AdGuard Home, Pi-hole, Unbound ou dnsmasq), personalDNSfilter en son mode réseau, et Servers Ultimate répondent tous aux requêtes d’autres machines. InviZible Pro couvre les appareils connectés au point d’accès du téléphone. Rethink, Nebulo et AdAway protègent uniquement le téléphone sur lequel ils s’exécutent.

L’optimisation de la batterie Android tuera-t-elle le serveur DNS?

Il le fera si vous le permettez. Exemptez l’application de l’optimisation de la batterie dans les paramètres Android, maintenez le verrou d’éveil de Termux à partir de sa notification, et accordez toute permission de démarrage automatique supplémentaire que demande votre peau OEM. Sans cela, le résolveur devient silencieux pendant Doze et chaque appareil de la maison perd la résolution de nom à la fois.

Pouvez-vous exécuter Pi-hole sur Android?

Vous pouvez, via Termux et proot-distro avec un conteneur Debian. L’unique étape non évidente est de lancer FTL au premier plan avec pihole-FTL -f à l’intérieur de tmux, car proot termine les processus qui se daemon et se détachent du shell.

Est-il sûr de laisser le téléphone branché en permanence?

C’est une pratique courante, mais la chaleur et une batterie maintenue à pleine charge pendant des mois gonflera finalement la cellule de poche. Utilisez une fonctionnalité de ROM ou OEM qui limite la charge en dessous de 100% si disponible, gardez le téléphone dans un endroit ventilé et hors d’un tiroir, et vérifiez le panneau arrière tous les quelques mois pour tout signe de gonflement.