Cara Siram Cache DNS dalam OS X Yosemite dengan discoveryutil
Isi kandungan:
- Kosongkan Cache DNS dalam OS X Yosemite 10.10.4 & OS X 10.10.5
- Mengosongkan Cache DNS dalam OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Sesetengah pengguna Mac mungkin menghadapi situasi di mana mereka perlu mengepam cache DNS dalam OS X untuk pelayan nama diselesaikan dengan betul, atau untuk beberapa perubahan alamat DNS disedari oleh komputer individu mereka. Ini amat relevan untuk pentadbir sistem, pentadbir rangkaian dan pembangun web, tetapi pastinya terdapat situasi di mana pengguna lain mungkin perlu membuang dan menetapkan semula cache DNS juga, seperti jika pengguna telah mengubah suai fail /etc/hosts dan mereka memerlukan perubahan untuk berkuat kuasa tanpa but semula Mac.
Pengguna Mac lama akan mengetahui bahawa menetapkan semula cache DNS telah berubah dalam hampir setiap versi Mac OS X dan OS X Yosemite tidak berbeza, mungkin disebabkan penemuan menggantikan mDNSResponder, dan kemudian beralih semula kepada mDNSResponder sekali lagi. Walau apa pun, pembilasan cache DNS dalam Yosemite kekal sebagai perintah terminal, tetapi ia berbeza sedikit bergantung pada keluaran tepat yang anda gunakan bagi OS, dan ia sebenarnya membolehkan anda mengosongkan DNS Multicast atau Unicast DNS, atau kedua-duanya. Anda mungkin mahu mengosongkan kedua-duanya untuk langkah yang baik jika anda cuba menetapkan semula semua cache DNS pada Mac.
Kosongkan Cache DNS dalam OS X Yosemite 10.10.4 & OS X 10.10.5
Dari OS X 10.10.4 bergerak ke 10.10.5, termasuk 10.11, Apple telah meninggalkan discoveryd dan telah menggantikannya (atau lebih tepat, berbalik semula kepada) mDNSResponder. Oleh itu, untuk mengosongkan cache DNS dalam OS X Yosemite 10.10.4, dan 10.11 El Capitan, dan mungkin seterusnya, rentetan arahan adalah seperti berikut:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;katakan cache flushed
Arahan itu membuang semua cache DNS untuk OS X 10.10.4+.
Pengguna Mac lama mungkin ingat bahawa rentetan arahan pada asasnya adalah apa yang berfungsi dalam keluaran sebelum Yosemite. Dengan itu, versi terdahulu OS X Yosemite sebelum 10.10.4 akan menggunakan rentetan arahan berbeza yang dibincangkan di bawah.
Mengosongkan Cache DNS dalam OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Anda perlu menggunakan Terminal untuk menetapkan semula cache, anda boleh mencari apl Terminal dalam /Applications/Utilities/ atau melancarkannya dengan Spotlight. Untuk mengosongkan sepenuhnya semua cache DNS dalam versi terkini OS X, sasarkan kedua-dua MDNS (DNS Berbilang Siar) dan UDNS (DNS Unicast) dengan dua arahan berbeza.
Kosongkan Cache MDNS
sudo discoveryutil mdnsflushcache
Tekan kembali dan masukkan kata laluan pentadbir apabila diminta.
Kosongkan Cache UDNS
sudo discoveryutil udnsflushcaches
Sekali lagi, tekan kembali dan masukkan kata laluan pentadbir apabila diminta. Ambil perhatian bahawa cache adalah jamak dengan perintah yang terakhir, perbezaan sintaks yang halus tetapi penting.
Siram dan Tetapkan Semula Semua Cache DNS dalam OS X Yosemite
Anda juga boleh menyusun kedua-dua arahan di atas jika anda mahu, yang berikut akan diumumkan secara lisan apabila cache telah dikosongkan:
sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;katakan flush
Memang cache MDNS dan UDNS adalah berbeza, tetapi saya mendapati bahawa untuk cache DNS berfungsi benar-benar mengosongkan dalam OS X Yosemite kedua-dua arahan adalah perlu. Ada kemungkinan bahawa anda hanya perlu mengosongkan satu atau yang lain untuk keperluan anda sendiri.
Bagi mereka yang tertanya-tanya, OS X Yosemite telah menghapuskan mDNSResponder, jadi tidak perlu mematikan proses mDNSResponder itu untuk menyegarkan cache DNS seperti dalam versi Mac OS X sebelumnya.
Menyemak Butiran Cache DNS dalam OS X Yosemite
Jika anda menukar atau akan menukar DNS, dan anda ingin melihat beberapa butiran tentang perkara yang sedang dicache, anda boleh menggunakan arahan berikut:
Dapatkan statistik cache UDNS:
sudo discoveryutil udnscachestats
Anda juga boleh mendapatkan semula butiran tentang cache DNS multicast dengan yang berikut:
sudo discoveryutil mdnscachestats
Kedua-dua ini akan menawarkan butiran tentang bilangan entri DNS yang dicache, menawarkan laporan yang sepatutnya kelihatan seperti ini:
Statistik Cache UDNS: Dicache 962 daripada 1750
Jika anda menjalankan arahan tersebut sebelum dan selepas menjalankan variasi flushcache, anda akan mendapati ia harus ditetapkan semula kepada 0 cache entri, seperti:
Statistik Cache MDNS: lo0: Cache 0 of 2000
Bagaimana anda tahu jika ia berubah?
Selepas anda telah membuang cache, jika anda ingin menentukan sama ada pelayan nama atau IP sebenarnya telah berubah, anda boleh menggunakan arahan 'gali' dengan URL seperti itu:
dig osxdaily.com
dig adalah serupa dengan nslookup, kecuali ia mempunyai output yang lebih baik dan beberapa butiran lagi disertakan, termasuk masa pertanyaan, set pelayan DNS yang digunakan untuk mengakses domain dan cap waktu, yang kesemuanya boleh berharga apabila menyelesaikan masalah pelayan nama. Ngomong-ngomong, jika masa pertanyaan untuk ini kelihatan lembap, anda harus menggunakan alat seperti namebench untuk mencari pelayan DNS yang lebih pantas untuk anda, selalunya Google DNS atau OpenDNS.
Tahu tentang helah cache DNS lain untuk versi terkini OS X? Beritahu kami dalam ulasan.