Cara Siram Cache DNS dalam OS X Yosemite dengan discoveryutil

Isi kandungan:

Anonim

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.

Cara Siram Cache DNS dalam OS X Yosemite dengan discoveryutil