Aller au contenu principal

Recherche DNS sur Mac, iPhone et iPad, sans terminal

A, AAAA, MX, CNAME, NS et TXT en une seule requête sur macOS ; ces six-là plus SOA sur iPhone et iPad. Gratuit partout, sans pub ni compte.

Par Lucas Russo, développeur de SSHive · Mis à jour le

L'enregistrement A a été modifié il y a vingt minutes et le site pointe toujours vers l'ancienne adresse. Les mails ne sont plus délivrés et personne ne sait si l'enregistrement MX a survécu à la dernière migration de registrar. Un prestataire jure que son enregistrement TXT de vérification est publié, votre script de provisioning affirme le contraire. Depuis un Mac avec un terminal, ce sont trois questions à cinq secondes : dig, host, nslookup. Loin de ce Mac, elles deviennent nettement moins simples. macOS n'aide plus beaucoup. L'onglet Lookup de l'Utilitaire de réseau a été déprécié avec Big Sur, ne fonctionnait plus sous Monterey, et l'application a purement et simplement disparu des versions actuelles de macOS. Sur iPhone et iPad, il n'y a aucun terminal : toute question DNS passe forcément par une app. Le DNS Lookup de SSHive répond directement. Vous saisissez un nom d'hôte, vous obtenez les enregistrements dans un tableau. Une seule recherche déclenche six résolutions en parallèle sur macOS : A, AAAA, CNAME, MX, TXT et NS. Chacune est indépendante, donc un domaine dépourvu d'un type renvoie quand même tout le reste au lieu d'échouer. Sur iPhone et iPad, le même écran lance ces six-là plus SOA, via le résolveur du système. Cette différence est annoncée franchement, parce qu'elle joue à l'inverse de ce qu'on attend : le téléphone renvoie un type d'enregistrement de plus que le Mac, pas de moins, et il affiche la durée de vie de chaque réponse. Et rien de tout cela n'est derrière un paywall : la suite d'outils réseau, DNS Lookup compris, est gratuite sur Mac, iPhone et iPad. Pro couvre SSH, SFTP, RDP et VNC, pas le diagnostic. Reste le plus important : savoir lire la réponse. C'est l'objet de la suite de cette page.

Ce que fait SSHive

Six types d'enregistrements, une requête

Sur macOS, une seule recherche déclenche six résolutions en parallèle : A, AAAA, MX, CNAME, NS et TXT. Chacune est traitée séparément : un domaine sans CNAME ou sans IPv6 renvoie quand même tout le reste plutôt que de tomber en erreur. Le résultat s'affiche dans un tableau Type/Valeur, dans un ordre fixe et prévisible.

Sept types d'enregistrements sur iPhone et iPad

Sur mobile, la résolution passe par le résolveur BSD et renvoie A, AAAA, CNAME, MX, TXT, NS et SOA, dédoublonnés, regroupés par type avec un badge coloré, la durée de vie de l'enregistrement et un bouton de copie sur chaque valeur. Les sept requêtes partent en série plutôt qu'en parallèle. L'outil MX Lookup dédié reste disponible à côté pour le routage mail.

Fonctionne aussi en version Mac App Store

DNS Lookup fonctionne à l'identique dans la version Mac App Store, sur iPhone et sur iPad. Une requête DNS est du trafic client sortant ordinaire : aucun garde-fou de bac à sable, aucun mode dégradé nulle part, aucun entitlement à discuter, et aucune plateforme où l'outil répond moins que les autres.

Votre résolveur, pas l'API d'un tiers

Les requêtes partent vers les serveurs DNS que votre appareil utilise déjà. La version desktop leur parle directement le protocole DNS ; le mobile emprunte le chemin de résolution du système. Rien ne transite par un service web tiers : aucun intermédiaire ne voit les domaines que vous interrogez, et la réponse reflète ce que cette machine résoudra réellement.

Diagnostiquer, puis corriger, dans la même app

DNS Lookup se trouve dans la même fenêtre que vos sessions SSH. Vous confirmez que l'enregistrement A est faux, puis vous ouvrez un shell sur le serveur de noms et corrigez la zone, sans changer d'application ni ressaisir le nom d'hôte. Depuis un iPhone à 3 h du matin, c'est la différence entre constater une alerte et pouvoir la traiter.

Gratuit sur toutes les plateformes

Les six outils réseau (recherche DNS, ping, traceroute, whois, recherche MX et vérification DNSBL) sont gratuits sur Mac, iPhone et iPad, sans publicité ni compte. Pro se paie une seule fois (environ 14,99 €, achat universel pour Mac, iPhone et iPad) ; il lève les limites de la version gratuite et débloque RDP et VNC. Il ne verrouille aucun outil de diagnostic.

Comment faire, étape par étape

  1. 1

    Ouvrir les outils réseau sur macOS

    Cliquez sur l'icône réseau dans la barre latérale (son infobulle indique Outils réseau), ou sur la pastille Outils réseau de l'écran d'accueil. L'une comme l'autre ouvre un onglet dédié contenant le panneau de diagnostic complet.

  2. 2

    Ou ouvrir les Outils sur iPhone et iPad

    Sur iPhone, touchez Outils dans la barre d'onglets en bas. Sur iPad, sélectionnez Outils réseau dans la barre latérale. Dans la section Diagnostic, touchez la deuxième ligne, DNS Lookup, sous-titrée « Résoudre un nom de domaine ».

  3. 3

    Saisir le nom d'hôte

    Sur Mac, Recherche DNS est la première carte de la section Résolution et réputation. Saisissez le domaine seul : exemple.fr, et non https://exemple.fr/chemin. L'app Mac valide le nom d'hôte avant de le transmettre au résolveur : une URL collée est rejetée plutôt que tronquée en silence.

  4. 4

    Lancer la résolution

    Cliquez sur Rechercher. Le bouton passe à « En cours… » pendant que les six requêtes partent en parallèle ; les réponses partielles ne sont pas jetées, si bien qu'un résultat s'affiche même quand plusieurs types n'existent pas pour ce domaine. Sur iPhone et iPad, lancez la résolution de la même façon : les enregistrements reviennent regroupés en sections par type.

  5. 5

    Lire et copier les enregistrements

    Le tableau desktop affiche Type et Valeur dans un ordre fixe : A, AAAA, MX (priorité puis serveur d'échange), CNAME, NS, puis TXT avec ses segments recollés. Sur mobile, chaque type d'enregistrement a sa section, avec un bouton de copie sur chaque valeur qui se transforme en coche verte une fois la copie effectuée.

  6. 6

    Recouper les enregistrements mail si nécessaire

    Si vous traquez un problème de messagerie, enchaînez sur la recherche MX. Sur macOS, il résout chaque serveur d'échange en adresses IPv4, ajoute le nom en reverse DNS pour chacune et teste la première adresse sur huit zones DNSBL, la vue reverse DNS que DNS Lookup ne fournit pas lui-même.

Lire la réponse, et ce qu'elle ne dit pas

A et AAAA sont les enregistrements d'adresse. Deux enregistrements A ne signalent pas une anomalie : c'est en général du round-robin ou une flotte anycast, et c'est le client qui tranche. Un AAAA publié alors que le chemin IPv6 est cassé est la cause classique du « lent pour certains utilisateurs » : Happy Eyeballs masque le problème jusqu'au jour où il ne le masque plus. Un CNAME est un renommage, pas une redirection. Un nom porteur d'un CNAME n'a le droit de porter aucun autre type d'enregistrement, mais voir ici un CNAME à côté de lignes MX ou TXT ne prouve pas une zone cassée : SSHive interroge chaque type séparément et le résolveur suit le CNAME, ces enregistrements appartiennent donc en général à la cible canonique, pas au nom que vous avez saisi. Et un CNAME à l'apex (exemple.fr lui-même) est invalide : les hébergeurs qui semblent le proposer font en réalité de l'aplatissement ALIAS/ANAME côté serveur. La priorité MX est une préférence, pas un classement de qualité. Le plus petit nombre gagne. L'émetteur tente d'abord la valeur la plus basse et bascule en cas d'échec ; à priorité égale, la charge se répartit. Un « MX de secours » à priorité élevée qui ne connaît pas la liste de vos boîtes ne produit pas de résilience, il produit du backscatter. C'est dans les TXT que se jouent les questions mail. SPF à l'apex (v=spf1 …), DMARC sur _dmarc.domaine, DKIM sur selecteur._domainkey.domaine. Deux enregistrements v=spf1 à l'apex constituent une erreur permanente (permerror) et suffisent à faire rejeter vos messages. Les valeurs TXT longues circulent en segments de 255 octets ; SSHive les recolle avec des espaces, donc une clé publique DKIM copiée depuis le tableau doit être débarrassée de ses espaces avant comparaison. Le TTL est une durée de cache, pas un compte à rebours de propagation. La propagation n'existe pas : les serveurs faisant autorité changent instantanément. Ce que vous attendez, c'est l'expiration de l'ancienne réponse dans chaque résolveur récursif qui l'a mise en cache. Si l'ancien enregistrement avait un TTL de 24 heures, c'est votre pire cas, et baisser le TTL après la modification ne sert à rien. Il faut le baisser 24 heures avant. Le tableau du Mac n'affiche pas le TTL ; l'iPhone et l'iPad affichent celui de chaque enregistrement. Pour un travail au TTL près sur Mac, dig dans un terminal reste l'instrument correct. Le reverse DNS (PTR) répond à une autre question et dépend du propriétaire du bloc d'adresses, pas du titulaire du domaine. SSHive l'expose dans les résultats de la recherche MX, là où il est utile : une IP émettrice dont le PTR ne se reconfirme pas vers le même hôte est l'un des moyens les plus fiables de faire rejeter son courrier. Un autre est l'inscription de cette IP sur une liste noire, que la vérification DNSBL interroge zone par zone.

Questions fréquentes

Peut-on faire une résolution DNS sur iPhone sans terminal ?+
Oui, et une app est la seule option : iOS n'embarque aucun terminal, ni dig ni nslookup accessibles. Dans SSHive, touchez Outils dans la barre d'onglets, puis DNS Lookup dans la section Diagnostic, et saisissez le nom d'hôte. Sur iPhone et iPad, le résultat couvre A, AAAA, CNAME, MX, TXT, NS et SOA, dédoublonnés et regroupés par type, chacun avec sa durée de vie et un bouton de copie. C'est gratuit, sans publicité ni compte.
Quels types d'enregistrements SSHive renvoie-t-il selon la plateforme ?+
Sur macOS : A, AAAA, MX, CNAME, NS et TXT, les six en une requête. Sur iPhone et iPad : ces six-là plus SOA, avec la durée de vie de chaque réponse. Les versions iOS antérieures ne renvoyaient que les adresses, car l'API de résolution de haut niveau rend des adresses de socket et non des enregistrements DNS ; l'app interroge désormais le résolveur BSD directement et analyse elle-même la section de réponse. SRV et CAA ne sont gérés sur aucune plateforme.
DNS Lookup fonctionne-t-il dans la version Mac App Store ?+
Oui, sans rien en moins : les six types d'enregistrements que le Mac interroge. Les requêtes DNS sont du trafic client sortant ordinaire, autorisé par le bac à sable : aucun garde-fou, aucune fonctionnalité en moins. C'est désormais vrai aussi du ping et du traceroute, que l'on croit souvent hors de portée d'une application en bac à sable : ils reposent sur un socket ICMP datagramme, qui n'exige pas les privilèges root et que le bac à sable autorise. Il n'y a pas de version au rabais dans cette suite.
Peut-on vérifier la propagation DNS ou interroger un serveur précis comme 8.8.8.8 ?+
Non. SSHive ne propose de champ serveur de noms personnalisé sur aucune plateforme. Chaque résolution part vers les résolveurs déjà configurés sur votre appareil, ce qui répond parfaitement à « que voit cette machine maintenant », mais pas à un balayage mondial. Pour obtenir un autre point de vue, changez les serveurs DNS de l'appareil, ou basculez entre Wi-Fi et données mobiles, ce qui change généralement de résolveur. Pour un relevé multi-résolveurs, un vérificateur web reste plus adapté.
SSHive affiche-t-il les TTL ?+
Sur iPhone et iPad, oui : chaque enregistrement porte son TTL, car l'app interroge directement le résolveur BSD et lit les enregistrements plutôt que de passer par getaddrinfo, qui rend des adresses de socket et écarte les métadonnées de cache. Le tableau desktop n'affiche que Type et Valeur. Si vous chronométrez une bascule depuis un Mac et avez besoin des durées de cache restantes, dig dans un terminal est l'outil correct ; la carte desktop répond à la question plus rapide de l'état actuel des enregistrements.
Peut-on faire une résolution inverse (PTR) ?+
Pas en tant qu'outil autonome : DNS Lookup attend un nom d'hôte, pas une adresse IP, et aucune carte PTR n'existe dans le panneau. En revanche, là où le reverse DNS compte vraiment, SSHive l'affiche : les résultats de MX Lookup sur macOS comportent une colonne rDNS qui résout l'adresse IPv4 de chaque serveur d'échange en nom. C'est la vue utile pour contrôler le reverse DNS confirmé d'un hôte émetteur.
DNS Lookup est-il gratuit ou faut-il Pro ?+
Gratuit, sur Mac, iPhone et iPad, sans publicité, sans compte et sans limite d'utilisation. Toute la suite d'outils réseau (recherche DNS, ping, traceroute, whois, recherche MX et vérification DNSBL) est hors du périmètre Pro sur chaque plateforme. Pro est un paiement unique d'environ 14,99 €, en achat universel pour Mac, iPhone et iPad, qui lève les limites de la version gratuite et débloque RDP et VNC. Il n'y a aucun abonnement.

Ce qui se passe réellement, plateforme par plateforme

Sur macOS, SSHive n'appelle pas la fonction de résolution POSIX du système. Il utilise la bibliothèque résolveur embarquée dans le runtime desktop, qui construit et analyse elle-même les messages DNS et parle directement le protocole aux serveurs déclarés dans la configuration réseau de la machine. C'est précisément ce choix qui rend accessibles les types autres que les adresses : l'API POSIX getaddrinfo ne sait répondre qu'à une seule question, « donne-moi les adresses de socket de ce nom », et n'a aucun moyen d'exprimer « donne-moi l'ensemble MX ». Six requêtes (A, AAAA, MX, CNAME, NS, TXT) partent en parallèle, chacune avec sa propre gestion d'erreur, si bien qu'un domaine sans AAAA ni CNAME renvoie quand même ses lignes A et MX au lieu de transformer toute la résolution en échec. Le nom d'hôte saisi est validé par un motif strict avant d'atteindre le résolveur. Cette implémentation traverse le bac à sable Mac App Store sans restriction. Une requête DNS est du trafic client sortant ordinaire, couvert par l'entitlement client réseau : il n'y a rien à contourner. iOS a mis plus longtemps à atteindre la parité, et la raison est instructive. Le chemin évident est getaddrinfo avec AF_UNSPEC : parcourir la chaîne addrinfo renvoyée, convertir chaque adresse avec inet_ntop, dédupliquer. Cela fonctionne, et cela renvoie des adresses et rien d'autre : c'est la nature de l'API, qui rend des adresses de socket et non des enregistrements de ressource, en écartant les TTL, les sections d'autorité et additionnelle, et tout ce qui n'est pas une adresse. L'écran DNS d'iOS s'est longtemps arrêté là : des A et des AAAA, sans moyen de demander un ensemble MX. La solution a été d'abandonner l'API de haut niveau. SSHive appelle désormais le résolveur BSD de libresolv via un petit assistant en C (res_init, puis res_query pour chaque type d'enregistrement) et analyse lui-même la section de réponse avec ns_initparse et ns_parserr, en étendant les noms compressés par dn_expand. On obtient les six types du Mac plus SOA, chacun avec la durée de vie réellement envoyée par le serveur. Aucune bibliothèque de résolution tierce, aucune API web sur le trajet : la requête part de votre appareil vers les résolveurs qu'il utilise déjà. Une conséquence de ce chemin système mérite d'être connue : il respecte ce que le réseau impose, y compris la synthèse DNS64/NAT64 sur les réseaux mobiles en IPv6 seul, où vous pouvez légitimement voir un AAAA pour un hôte qui ne publie qu'un A. Ce n'est pas un défaut de l'outil : c'est le réseau qui vous dit comment votre appareil se connectera réellement. Ce qui manque partout, dit clairement : ni SRV, ni CAA ; pas de champ serveur de noms personnalisé ; pas d'état de validation DNSSEC affiché. La conséquence pratique mérite d'être intégrée : SSHive répond à « que résout cette machine, maintenant », la question que l'on se pose réellement pendant un incident, et celle à laquelle un vérificateur web ne peut pas répondre pour l'appareil que vous tenez. « Que dit la zone faisant autorité » reste une question pour dig @ns1.exemple.fr.