Πώς να ξεπλύνετε την προσωρινή μνήμη DNS στο OS X Yosemite με το discoveryutil

Πίνακας περιεχομένων:

Anonim

Ορισμένοι χρήστες Mac μπορεί να αντιμετωπίσουν καταστάσεις όπου χρειάζεται να ξεπλύνουν την προσωρινή μνήμη DNS στο OS X για να επιλυθεί σωστά ένας διακομιστής ονομάτων ή για να γίνει αντιληπτή από τον μεμονωμένο υπολογιστή τους κάποια αλλαγή διεύθυνσης DNS. Αυτό είναι ιδιαίτερα σημαντικό για τους διαχειριστές συστήματος, τους διαχειριστές δικτύου και τους προγραμματιστές ιστού, αλλά σίγουρα υπάρχουν περιπτώσεις όπου και άλλοι χρήστες μπορεί να χρειαστεί να αποθέσουν και να επαναφέρουν τις κρυφές μνήμες DNS, όπως εάν ένας χρήστης έχει τροποποιήσει το αρχείο /etc/hosts και χρειάζονται τις αλλαγές για να τεθεί σε ισχύ χωρίς επανεκκίνηση του Mac.

Οι χρήστες Mac για μεγάλο χρονικό διάστημα θα γνωρίζουν ότι η επαναφορά της κρυφής μνήμης DNS έχει αλλάξει σχεδόν σε κάθε έκδοση του Mac OS X και το OS X Yosemite δεν διαφέρει, πιθανότατα λόγω της αντικατάστασης του mDNSResponder και μετά την επιστροφή στο mDNSResponder για άλλη μία φορά. Ανεξάρτητα από αυτό, η έκπλυση της προσωρινής μνήμης DNS στο Yosemite παραμένει μια εντολή τερματικού, αλλά διαφέρει ελαφρώς ανάλογα με την ακριβή έκδοση που χρησιμοποιείτε του λειτουργικού συστήματος και στην πραγματικότητα σας επιτρέπει να διαγράψετε είτε το Multicast DNS είτε το Unicast DNS ή και τα δύο. Πιθανότατα θα θέλετε να διαγράψετε και τα δύο για καλό μέτρο, εάν προσπαθείτε να επαναφέρετε όλες τις κρυφές μνήμες DNS στο Mac.

Εκκαθάριση προσωρινής μνήμης DNS στο OS X Yosemite 10.10.4 & OS X 10.10.5

Από το OS X 10.10.4 μεταβαίνοντας στην 10.10.5, συμπεριλαμβανομένης της 10.11, η Apple εγκατέλειψε το Discoveryd και το αντικατέστησε (ή μάλλον επανήλθε στο) mDNSResponder. Έτσι, για να διαγράψετε τις κρυφές μνήμες DNS στο OS X Yosemite 10.10.4 και 10.11 El Capitan και πιθανώς και μετά, η συμβολοσειρά εντολών είναι η εξής:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;say cache flushed

Αυτή η εντολή ξεπλένει όλες τις κρυφές μνήμες DNS για το OS X 10.10.4+.

Οι χρήστες Mac για μεγάλο χρονικό διάστημα μπορεί να θυμούνται ότι η συμβολοσειρά εντολών είναι βασικά αυτό που λειτουργούσε στην έκδοση πριν από το Yosemite. Με αυτά τα παραπάνω, προηγούμενες εκδόσεις του OS X Yosemite πριν από την 10.10.4 θα χρησιμοποιούν μια διαφορετική συμβολοσειρά εντολών που συζητείται παρακάτω.

Εκκαθάριση κρυφής μνήμης DNS στο OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

Θα χρειαστεί να χρησιμοποιήσετε το Terminal για να επαναφέρετε την προσωρινή μνήμη, μπορείτε να βρείτε την εφαρμογή Terminal στο /Applications/Utilities/ ή να την εκκινήσετε με το Spotlight. Για να διαγράψετε πλήρως όλες τις κρυφές μνήμες DNS στην πιο πρόσφατη έκδοση του OS X, στοχεύστε τόσο το MDNS (Multicast DNS) όσο και το UDNS (Unicast DNS) με δύο διαφορετικές εντολές.

Εκκαθάριση προσωρινής μνήμης MDNS

sudo discoveryutil mdnsflushcache

Πατήστε επιστροφή και πληκτρολογήστε τον κωδικό πρόσβασης διαχειριστή όταν σας ζητηθεί.

Εκκαθάριση προσωρινής μνήμης UDNS

sudo discoveryutil udnsflushcaches

Πατήστε ξανά επιστροφή και εισαγάγετε τον κωδικό πρόσβασης διαχειριστή όταν σας ζητηθεί. Σημειώστε ότι η κρυφή μνήμη είναι πληθυντικός με την τελευταία εντολή, μια λεπτή αλλά σημαντική διαφορά σύνταξης.

Ξεπλύνετε και επαναφέρετε όλες τις κρυφές μνήμες DNS στο OS X Yosemite

Μπορείτε επίσης να συνδυάσετε τις δύο παραπάνω εντολές μαζί εάν θέλετε, τα ακόλουθα θα ανακοινώσουν ακόμη και προφορικά όταν οι κρυφές μνήμες έχουν εκκαθαριστεί:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

Πράγματι, οι κρυφές μνήμες MDNS και UDNS είναι διαφορετικές, αλλά ανακάλυψα ότι για να διαγραφεί η λειτουργική κρυφή μνήμη DNS στο OS X Yosemite και οι δύο εντολές είναι απαραίτητες. Είναι απολύτως πιθανό να χρειαστεί να καθαρίσετε μόνο το ένα ή το άλλο για τις δικές σας ανάγκες.

Για όσους αναρωτιούνται, το OS X Yosemite έχει καταργήσει το mDNSResponder, επομένως δεν χρειάζεται να σκοτώσετε αυτήν τη διαδικασία mDNSResponder για να ανανεώσετε τις κρυφές μνήμες DNS όπως σε προηγούμενες εκδόσεις του Mac OS X.

Έλεγχος λεπτομερειών προσωρινής μνήμης DNS στο OS X Yosemite

Εάν αλλάζετε ή πρόκειται να αλλάξετε DNS και θέλετε να δείτε κάποιες λεπτομέρειες σχετικά με το τι είναι προσωρινά αποθηκευμένο, μπορείτε να χρησιμοποιήσετε τις ακόλουθες εντολές:

Λήψη στατιστικών στοιχείων προσωρινής μνήμης UDNS:

sudo discoveryutil udnscachestats

Μπορείτε επίσης να ανακτήσετε λεπτομέρειες σχετικά με την κρυφή μνήμη πολλαπλής διανομής DNS με τα εξής:

sudo discoveryutil mdnscachestats

Και τα δύο θα προσφέρουν λεπτομέρειες σχετικά με τον αριθμό των καταχωρήσεων DNS που αποθηκεύονται στην κρυφή μνήμη, προσφέροντας μια αναφορά που θα πρέπει να μοιάζει με αυτό:

Στατιστικά προσωρινής μνήμης UDNS: Αποθηκευμένα 962 από 1750

Εάν εκτελέσετε αυτές τις εντολές πριν και μετά την εκτέλεση των παραλλαγών flushcache, θα διαπιστώσετε ότι θα πρέπει να επαναφέρονται στην κρυφή μνήμη 0 καταχωρήσεων, όπως:

Στατιστικά κρυφής μνήμης MDNS: lo0: Αποθηκεύτηκε στην κρυφή μνήμη 0 του 2000

Πώς ξέρετε αν άλλαξε;

Μετά την εκκαθάριση της προσωρινής μνήμης, εάν θέλετε να προσδιορίσετε εάν ένας διακομιστής ονομάτων ή IP έχει αλλάξει, μπορείτε να χρησιμοποιήσετε την εντολή 'dig' με τη διεύθυνση URL όπως:

dig osxdaily.com

Το dig είναι παρόμοιο με το nslookup, με τη διαφορά ότι έχει καλύτερη έξοδο και μερικές περισσότερες λεπτομέρειες, συμπεριλαμβανομένου του χρόνου ερωτήματος, του καθορισμένου διακομιστή DNS που χρησιμοποιείται για την πρόσβαση στον τομέα και μια χρονική σήμανση, τα οποία μπορούν να πολύτιμο κατά την αντιμετώπιση προβλημάτων διακομιστή ονομάτων. Παρεμπιπτόντως, εάν ο χρόνος ερωτήματος για αυτό εμφανίζεται ως αργός, θα πρέπει να χρησιμοποιήσετε ένα εργαλείο όπως το namebench για να βρείτε έναν ταχύτερο διακομιστή DNS για εσάς, συχνά Google DNS ή OpenDNS.

Γνωρίζετε ένα άλλο τέχνασμα προσωρινής μνήμης DNS για τις πιο πρόσφατες εκδόσεις του OS X; Ενημερώστε μας στα σχόλια.

Πώς να ξεπλύνετε την προσωρινή μνήμη DNS στο OS X Yosemite με το discoveryutil