1 votes

DNS spécifiques pour une application Android

J'utilise actuellement adguard DNS en utilisant le paramètre DNS privé dans mon appareil Android pour éviter les publicités. Mais cela augmente le temps de ping lorsque je suis dans un jeu multijoueur (comme PUBG Mobile). Est-ce qu'il est possible d'utiliser des DNS différents pour une application et un DNS commun pour tout le reste ?

Note : Je suis actuellement basé en Inde si la localisation a une importance pour votre réponse.

2voto

Irfan Latif Points 16863

La résolution DNS dans Android est gérée par Net Daemon ( netd ) qui s'exécute en arrière-plan en tant que init service. netd utilise le serveur DNS défini dans les paramètres Wi-Fi ou celui reçu par DHCP. Il peut également être défini via le CLI. Voir les détails dans Comment le système d'exploitation Android assure-t-il la résolution des noms DNS ? . Mais il n'y a aucun moyen de spécifier le serveur DNS pour chaque application.

En utilisant l'API VPNService d'Android, il est possible de contrôler le trafic réseau par UID (chaque application Android possède un UID UNIX unique). Ou avec un accès Root, la même chose peut être réalisée en utilisant iptables pour le trafic NAT allant sur le port 53 . Un exemple d'application open-source basée sur le VPN qui permet d'établir une liste blanche des applications et de configurer le serveur DNS est le suivant personalDNSfilter (Je n'ai aucune affiliation). Il est suffisamment configurable et supporte le mode Root, les DNS cryptés (DoH, DoT) et d'autres fonctionnalités.

Cependant, dans les deux cas (VPN ou iptables ), vous ne pourrez pas utiliser la fonction de DNS privé (DoT) d'Android. En effet, les requêtes DoT (DNS over TLS) ne sont pas des requêtes DNS simples (comme HTTP) mais cryptées (comme HTTPS), allant sur le port 853 . Ainsi, la seule entité qui peut recevoir les requêtes DNS cryptées et y répondre est le serveur DNS défini dans les paramètres DNS privés. Bien qu'il soit possible d'intercepter DoT (comme nous pouvons intercepter HTTPS), les tracas ne valent pas la peine d'être essayés.

Si vous ne voulez pas opter pour des solutions basées sur le VPN ou la racine, ou si vous ne voulez pas abandonner le DNS privé, une autre option consiste à configurer un transitaire DNS sur le réseau local, de préférence sur la passerelle par défaut si possible. Ou bien votre application doit elle-même avoir la capacité de faire des requêtes DNS, sans dépendre du résolveur d'Android.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X