Η έκπλυση της τοπικής κρυφής μνήμης DNS μπορεί να επιλύσει σφάλματα HTTP και να σας προστατεύσει από πλαστογράφηση DNS. Δείτε πώς μπορείτε να το κάνετε στο Linux.

Όταν αποκτάτε πρόσβαση σε έναν ιστότοπο χρησιμοποιώντας το όνομα τομέα του, το σύστημά σας στέλνει ένα αίτημα σε έναν διακομιστή DNS για να λάβει τη διεύθυνση IP για αυτόν τον τομέα. Αυτό το ζεύγος διευθύνσεων τομέα-IP αποθηκεύεται στην κρυφή μνήμη DNS για μελλοντική χρήση, ώστε να μην χρειάζεται να στέλνετε αιτήματα στον διακομιστή DNS κάθε φορά για να κάνετε μια σύνδεση.

Αλλά μερικές φορές, η τοπική προσωρινή μνήμη DNS καταστρέφεται και προκαλεί σφάλματα HTTP. Ευτυχώς, η έκπλυση και η ανακατασκευή της προσωρινής μνήμης DNS σε έναν υπολογιστή Linux είναι απλή. Δείτε πώς να το κάνετε.

Γιατί να ξεπλύνετε την προσωρινή μνήμη DNS στο Linux;

Υπάρχουν διάφοροι λόγοι για τους οποίους μπορεί να θέλετε να αναδημιουργήσετε τη μνήμη cache DNS που είναι αποθηκευμένη στο σύστημά σας. Ίσως έχετε μια παλιά εγγραφή DNS για έναν ιστότοπο και θέλετε να την ανακτήσετε ξανά από τον διακομιστή DNS. Ή ίσως, το σύστημά σας έχει παραβιαστεί και θέλετε να βεβαιωθείτε ότι η κρυφή μνήμη DNS δεν έχει παραβιαστεί, επίσης

γνωστό ως πλαστογράφηση DNS.

Όταν ξεπλένετε την προσωρινή μνήμη DNS, το σύστημα πρέπει να κάνει ξανά ping στον διακομιστή DNS και να λάβει τη νέα εγγραφή διεύθυνσης IP τομέα από αυτόν, αφαιρώντας τυχόν παλιά ή παραβιασμένα δεδομένα στη διαδικασία.

Πώς να προβάλετε την τοπική προσωρινή μνήμη DNS στο Linux

Πριν από το systemd, οι περισσότερες διανομές Linux δεν διέθεταν προσωρινή αποθήκευση DNS σε όλο το σύστημα, εκτός εάν ένα πρόγραμμα όπως το dnsmasq ή το nscd είχε ρυθμιστεί με μη αυτόματο τρόπο. Το systemd συνοδεύεται από systemd-resolved, μια υπηρεσία που επιλύει ονόματα τομέα σε διευθύνσεις IP και αποθηκεύει προσωρινά τις καταχωρίσεις DNS.

Οι ακόλουθες ενότητες θα σας καθοδηγήσουν σχετικά με τον τρόπο προβολής των περιεχομένων της κρυφής μνήμης DNS που δημιουργούνται από systemd-resolved, nscd και dnsmasq, ώστε να μπορείτε να κατανοήσετε τα αποθηκευμένα δεδομένα πριν αποφασίσετε να τα ξεπλύνετε.

Προβολή προσωρινής μνήμης DNS για επίλυση συστήματος

Για να προβάλετε εγγραφές κρυφής μνήμης επίλυσης συστήματος, πρέπει πρώτα να σκοτώσετε προσωρινά την υπηρεσία και μετά να εξαγάγετε τα αρχεία καταγραφής της σε ένα αρχείο.

Ξεκινήστε στέλνοντας ένα σήμα SIGUSR1 για να σκοτώσετε την υπηρεσία που επιλύεται από το σύστημα:

sudo killall -USR1 systemd-resoled

Χρήση την εντολή journalctl και τον τυπικό τελεστή εξόδου για αποθήκευση της εξόδου σε αρχείο κειμένου:

sudo journalctl -u systemd-resolved > ~/cache.txt

Στη συνέχεια, μπορείτε να προβάλετε τα περιεχόμενα του αρχείου χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας κειμένου όπως το Vim:

vim ~/cache.txt

Στο αρχείο, αναζητήστε "CACHE:" πατώντας Διαφυγή, πληκτρολόγηση "/CACHE:», και χτυπώντας Εισαγω. Όλες οι εγγραφές DNS που αναφέρονται παρακάτω ΚΡΥΠΤΗ: αποτελούν μέρος της τοπικής κρυφής μνήμης DNS. Τύπος n για να μεταβείτε στο επόμενο σύνολο καταχωρήσεων DNS εάν χρησιμοποιείτε Vim.

Δείτε την τοπική προσωρινή μνήμη DNS για nscd

Για να προβάλετε την τοπική προσωρινή μνήμη που δημιουργείται από το nscd, πρέπει να διαβάσετε τα περιεχόμενα της βάσης δεδομένων κεντρικών υπολογιστών nscd χρησιμοποιώντας την εντολή strings.

Σε διανομές που βασίζονται στο Debian και στο Ubuntu, αυτό το αρχείο βρίσκεται στη διεύθυνση /var/cache/nscd/hosts. Εκτελέστε την ακόλουθη εντολή για να δείτε το αρχείο:

sudo strings /var/cache/nscd/hosts | uniq

Για να προβάλετε γενικά στατιστικά στοιχεία σχετικά με την προσωρινή μνήμη nscd DNS, χρησιμοποιήστε το -σολ σημαία:

sudo nscd -g

Εμφάνιση της προσωρινής μνήμης DNS που δημιουργήθηκε από το dnsmasq

Το dnsmasq αποθηκεύει την κρυφή μνήμη DNS στη μνήμη, επομένως δεν είναι εύκολο να λάβετε τις ακριβείς εγγραφές. Αλλά μπορείτε να στείλετε ένα σήμα kill στο dnsmasq και να καταγράψετε την έξοδό του για να λάβετε τον αριθμό των ερωτημάτων DNS που υποβάλλονται σε επεξεργασία.

Για να το κάνετε αυτό, πρώτα, βεβαιωθείτε ότι το dnsmasq είναι έτοιμο και λειτουργεί χρησιμοποιώντας την εντολή systemctl:

sudo systemctl κατάσταση dnsmasq

Εάν εμφανίζεται η κατάσταση Ενεργός, εκτελέστε την ακόλουθη εντολή για να σκοτώσετε την υπηρεσία:

sudo pkill -USR1 dnsmasq

Χρησιμοποιώντας την εντολή journalctl, εξαγάγετε τα αρχεία καταγραφής dnsmasq και αποθηκεύστε τα σε ένα αρχείο κειμένου:

sudo journalctl -u dnsmasq > ~/cache.txt

Τέλος, δείτε τα περιεχόμενα του αρχείου χρησιμοποιώντας ένα βοηθητικό πρόγραμμα προβολής αρχείων σαν γάτα ή λιγότερο:

γάτα ~/cache.txt

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

Η έκπλυση της προσωρινής μνήμης DNS σημαίνει την αφαίρεση των αποθηκευμένων εγγραφών DNS από τον υπολογιστή σας. Αυτό το αναγκάζει να στείλει ένα αίτημα στον διακομιστή DNS για να ανακτήσει τις νέες καταχωρήσεις DNS.

Δείτε πώς μπορείτε να ξεπλύνετε την προσωρινή μνήμη DNS στο Linux:

Χρήση systemd-resolved

Μπορείτε να χρησιμοποιήσετε την εντολή solvectl για να ξεπλύνετε τη μνήμη cache DNS που είναι αποθηκευμένη από systemd-resolved:

flush-caches sudo solvectl

Εάν εκτελείτε Ubuntu 17.04 ή 18.04, χρησιμοποιήστε την εντολή systemd-resolved για να ξεπλύνετε την προσωρινή μνήμη:

sudo systemd-resolved --flush-caches

Ξεπλύνετε την προσωρινή μνήμη nscd DNS σε Linux

Ο πιο βολικός τρόπος για να αφαιρέσετε την προσωρινή μνήμη DNS για nscd είναι απλά να κάνετε επανεκκίνηση της υπηρεσίας. Μπορείτε να το κάνετε τρέχοντας:

sudo /etc/init.d/nscd επανεκκίνηση

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

sudo nscd -g

Εάν συμβαίνει αυτό, χρησιμοποιήστε το -Εγώ επισημάνετε με την εντολή nscd για εκκαθάριση των εγγραφών (Εγώ σημαίνει ακυρώ):

οικοδεσπότες sudo nscd -i

Καταργήστε την προσωρινή μνήμη dnsmasq DNS

Η έκπλυση της κρυφής μνήμης DNS που δημιουργείται από το dnsmasq είναι απλή. Εφόσον η κρυφή μνήμη είναι αποθηκευμένη στη μνήμη, η επανεκκίνηση της υπηρεσίας διαγράφει όλες τις αποθηκευμένες εγγραφές.

Για επανεκκίνηση του dnsmasq, εκτελέστε την ακόλουθη εντολή systemctl:

sudo systemctl επανεκκίνηση dnsmasq

Ή, εκδώστε την ακόλουθη εντολή:

επανεκκίνηση της υπηρεσίας dnsmasq

Εισαγάγετε τον κωδικό πρόσβασης διαχειριστή εάν σας ζητηθεί. Το dnsmasq θα επανεκκινήσει τώρα και όλες οι υπάρχουσες καταχωρήσεις DNS θα αφαιρεθούν από την κρυφή μνήμη.

Μετά την έκπλυση της προσωρινής μνήμης DNS, είναι καλύτερο να προβάλετε τις εγγραφές τοπικής κρυφής μνήμης και να επαληθεύσετε εάν τα δεδομένα καταργήθηκαν με επιτυχία. Μπορείτε να χρησιμοποιήσετε το dig, ένα από τα πολλές εντολές αντιμετώπισης προβλημάτων δικτύου Linux, και ελέγξτε την τιμή Query time στην έξοδο. Εάν είναι περισσότερο από 0 msec, η προσωρινή μνήμη διαγράφηκε με επιτυχία (0 msec σημαίνει ότι η εγγραφή τομέα βρίσκεται ακόμα στη μνήμη cache).

σκάψτε το google.com

Εκκαθαρίστε την προσωρινή μνήμη DNS του Google Chrome

Το πρόγραμμα περιήγησης ιστού που χρησιμοποιείτε συχνά αποθηκεύει επίσης τις εγγραφές DNS. Όταν εισάγετε μια διεύθυνση URL, το σύστημα αναζητά μια καταχώριση προσωρινής μνήμης στην προσωρινή μνήμη του τοπικού προγράμματος περιήγησης. Εάν δεν βρεθεί, ελέγχει για τις εγγραφές στην προσωρινή μνήμη του τοπικού συστήματος. Είναι σημαντικό να διαγράψετε την προσωρινή μνήμη DNS του προγράμματος περιήγησής σας, καθώς έχει μεγαλύτερη προτεραιότητα από την προσωρινή μνήμη σε όλο το σύστημα.

Για επίδειξη, ας ξεπλύνουμε την προσωρινή μνήμη DNS στο Google Chrome. Υπάρχουν τρόποι να το κάνετε και σε άλλα προγράμματα περιήγησης, επομένως είναι καλύτερο να ψάξετε στο Google πώς να το κάνετε για το πρόγραμμα περιήγησης που χρησιμοποιείτε.

Για να ξεκινήσετε, πληκτρολογήστε "chrome://net-internals/#dns" στη γραμμή URL και πατήστε Εισαγω:

Κάντε κλικ Εκκαθάριση προσωρινής μνήμης κεντρικού υπολογιστή για να διαγράψετε τις καταχωρήσεις DNS που είναι αποθηκευμένες στο Google Chrome.

Το Linux είναι το καλύτερο λειτουργικό σύστημα για εκμάθηση δικτύωσης

Το Linux μπορεί να φαίνεται περίπλοκο στην αρχή, αλλά αν αφιερώσετε λίγο χρόνο για να μάθετε πώς λειτουργεί, θα συνειδητοποιήσετε γρήγορα ότι είναι φανταστικό και ίσως ακόμη καλύτερο από τα Windows ή το macOS.

Οι περισσότεροι διαδικτυακοί διακομιστές τρέχουν Linux και είναι ένας από τους λόγους για τους οποίους το Linux είναι ιδανικό εάν θέλετε να μάθετε τη δικτύωση ή θέλετε να μάθετε πώς λειτουργούν οι υπολογιστές γενικά.