Πώς να ξεπλύνετε την προσωρινή μνήμη DNS στο OS X Yosemite με το discoveryutil
Πίνακας περιεχομένων:
- Εκκαθάριση προσωρινής μνήμης DNS στο OS X Yosemite 10.10.4 & OS X 10.10.5
- Εκκαθάριση κρυφής μνήμης DNS στο OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Ορισμένοι χρήστες 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; Ενημερώστε μας στα σχόλια.