Comment vider le cache DNS dans OS X Yosemite avec discoveryutil

Table des matières:

Anonim

Certains utilisateurs de Mac peuvent rencontrer des situations où ils doivent vider le cache DNS dans OS X pour qu'un serveur de noms soit résolu correctement, ou pour que certains changements d'adresse DNS soient remarqués par leur ordinateur individuel. Ceci est particulièrement pertinent pour les administrateurs système, les administrateurs réseau et les développeurs Web, mais il existe certainement des situations où d'autres utilisateurs peuvent également avoir besoin de vider et de réinitialiser les caches DNS, comme si un utilisateur a modifié le fichier /etc/hosts et qu'il a besoin des modifications. prendre effet sans redémarrer le Mac.

Les utilisateurs Mac de longue date sauront que la réinitialisation du cache DNS a changé dans presque toutes les versions de Mac OS X, et OS X Yosemite n'est pas différent, probablement en raison de la découverte du remplacement de mDNSResponder, puis du retour à mDNSResponder encore. Quoi qu'il en soit, le vidage du cache DNS dans Yosemite reste une commande de terminal, mais il diffère légèrement en fonction de la version exacte que vous utilisez du système d'exploitation, et il vous permet en fait d'effacer le DNS multicast ou le DNS Unicast, ou les deux. Vous voudrez probablement effacer les deux pour faire bonne mesure si vous essayez de réinitialiser tous les caches DNS sur le Mac.

Effacer le cache DNS sous OS X Yosemite 10.10.4 et OS X 10.10.5

De OS X 10.10.4 passant à 10.10.5, y compris 10.11, Apple a abandonné la découverte et l'a remplacé (ou plutôt, est revenu à) mDNSResponder. Ainsi, pour effacer les caches DNS dans OS X Yosemite 10.10.4 et 10.11 El Capitan, et vraisemblablement au-delà, la chaîne de commande est la suivante :

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;say cache vidé

Cette commande vide tous les caches DNS pour OS X 10.10.4+.

Les utilisateurs Mac de longue date peuvent se rappeler que la chaîne de commande est essentiellement ce qui fonctionnait dans la version antérieure à Yosemite. Cela dit, les versions antérieures d'OS X Yosemite avant 10.10.4 utiliseront une chaîne de commande différente décrite ci-dessous.

Effacement des caches DNS sous OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Vous devrez utiliser le Terminal pour réinitialiser le cache, vous pouvez trouver l'application Terminal dans /Applications/Utilitaires/ ou la lancer avec Spotlight. Pour effacer complètement tous les caches DNS dans la dernière version d'OS X, ciblez à la fois MDNS (Multicast DNS) et UDNS (Unicast DNS) avec deux commandes différentes.

Effacer le cache MDNS

sudo discoveryutil mdnsflushcache

Appuyez sur retour et entrez le mot de passe administrateur lorsque vous y êtes invité.

Effacer le cache UDNS

sudo discoveryutil udnsflushcaches

Encore une fois, appuyez sur retour et entrez le mot de passe administrateur lorsque vous y êtes invité. Notez que caches est au pluriel avec cette dernière commande, une différence de syntaxe subtile mais importante.

Vider et réinitialiser tous les caches DNS dans OS X Yosemite

Vous pouvez également enchaîner les deux commandes ci-dessus si vous le souhaitez, ce qui suit annoncera même verbalement lorsque les caches ont été effacés :

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

En effet, les caches MDNS et UDNS sont différents, mais j'ai constaté que pour que le cache DNS fonctionnel soit réellement effacé dans OS X Yosemite, les deux commandes sont nécessaires. Il est tout à fait possible que vous n'ayez besoin d'effacer l'un ou l'autre que pour vos propres besoins.

Pour ceux qui se demandent, OS X Yosemite a supprimé mDNSResponder, il n'est donc pas nécessaire de tuer ce processus mDNSResponder pour actualiser les caches DNS comme dans les versions précédentes de Mac OS X.

Vérification des détails du cache DNS dans OS X Yosemite

Si vous changez ou allez changer de DNS, et que vous voulez voir quelques détails sur ce qui est actuellement mis en cache, vous pouvez utiliser les commandes suivantes :

Obtenir les statistiques du cache UDNS :

sudo discoveryutil udnscachestats

Vous pouvez également récupérer des détails sur le cache DNS multidiffusion avec ce qui suit :

sudo discoveryutil mdnscachestats

Les deux fourniront des détails sur le nombre d'entrées DNS mises en cache, offrant un rapport qui devrait ressembler à ceci :

Statistiques du cache UDNS : 962 en cache sur 1750

Si vous exécutez ces commandes avant et après l'exécution des variantes de flushcache, vous constaterez qu'elles doivent être réinitialisées à 0 entrées de cache, comme suit :

Statistiques du cache MDNS : lo0 : 0 en cache sur 2000

Comment savoir s'il a changé ?

Après avoir vidé le cache, si vous voulez déterminer si un serveur de noms ou une IP a réellement changé, vous pouvez utiliser la commande 'dig' avec l'URL comme ceci :

dig osxdaily.com

dig est similaire à nslookup, sauf qu'il a une meilleure sortie et quelques détails supplémentaires inclus, le temps de requête inclus, le serveur DNS défini utilisé pour accéder au domaine et un horodatage, qui peuvent tous être utile lors du dépannage des problèmes de serveur de noms. Soit dit en passant, si le temps de requête pour cela apparaît comme lent, vous devriez utiliser un outil comme namebench pour trouver un serveur DNS plus rapide pour vous, souvent Google DNS ou OpenDNS.

Vous connaissez une autre astuce de cache DNS pour les dernières versions d'OS X ? Faites le nous savoir dans les commentaires.

Comment vider le cache DNS dans OS X Yosemite avec discoveryutil