วิธีล้างแคช DNS ใน OS X Yosemite ด้วย discoveryutil
ผู้ใช้ Mac บางรายอาจพบกับสถานการณ์ที่ต้องล้างแคช DNS ใน OS X สำหรับเซิร์ฟเวอร์ชื่อเพื่อแก้ไขอย่างถูกต้องหรือสำหรับการเปลี่ยนแปลงที่อยู่ DNS บางอย่างเพื่อสังเกตเห็นโดยคอมพิวเตอร์แต่ละเครื่อง สิ่งนี้มีความเกี่ยวข้องกับผู้ดูแลระบบผู้ดูแลระบบเครือข่ายและนักพัฒนาเว็บ แต่มีสถานการณ์ที่ผู้ใช้รายอื่น ๆ จำเป็นต้องถ่ายโอนข้อมูลและรีเซ็ตแคช DNS ด้วยเช่นถ้าผู้ใช้แก้ไขไฟล์ / etc / hosts และต้องมีการเปลี่ยนแปลง จะมีผลโดยไม่ต้องรีบู๊ตเครื่อง Mac
ผู้ใช้ Mac ระยะยาวจะรู้ว่าการรีเซ็ตแคช DNS มีการเปลี่ยนแปลงในเกือบทุกเวอร์ชันของ Mac OS X และ OS X Yosemite ไม่แตกต่างกันเนื่องจากมีการค้นพบว่าแทนที่ mDNSResponder แล้วเปลี่ยนกลับไปเป็น mDNSResponder อีกครั้ง โดยไม่คำนึงถึงการล้างแคช DNS ใน Yosemite จะยังคงเป็นคำสั่ง terminal แต่แตกต่างเล็กน้อยขึ้นอยู่กับรุ่นที่แน่นอนที่คุณใช้ในระบบปฏิบัติการและจะช่วยให้คุณสามารถล้างทั้ง DNS แบบหลายผู้รับหรือ DNS แบบ Unicast หรือทั้งสองอย่างได้ คุณอาจต้องการล้างทั้งมาตรการที่ดีหากคุณกำลังพยายามรีเซ็ตแคช DNS ทั้งหมดใน Mac
ล้างแคช DNS ใน OS X Yosemite 10.10.4 และ OS X 10.10.5
จาก OS X 10.10.4 ซึ่งเคลื่อนที่ไปข้างหน้าจนถึง 10.10.5 รวมถึง 10.11 แอ็ปเปิ้ลได้ยกเลิกการค้นพบแล้วและแทนที่มัน (หรือย้อนกลับไปหา) 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 Cache
sudo discoveryutil mdnsflushcache
ตีกลับและป้อนรหัสผ่านผู้ดูแลระบบเมื่อได้รับการร้องขอ
ล้าง UDNS Cache
sudo discoveryutil udnsflushcaches
กด return อีกครั้งและป้อนรหัสผ่านผู้ดูแลระบบเมื่อได้รับการร้องขอ โปรดทราบว่าแคชเป็นพหูพจน์กับคำสั่งหลังซึ่งเป็นความแตกต่างของไวยากรณ์ที่บอบบาง แต่มีความสำคัญ
ล้างข้อมูลและรีเซ็ต DNS Caches ทั้งหมดใน 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 cache:
sudo discoveryutil udnscachestats
นอกจากนี้คุณยังสามารถเรียกข้อมูลเฉพาะเกี่ยวกับแคช DNS แบบมัลติแคสต์ได้ดังต่อไปนี้:
sudo discoveryutil mdnscachestats
ทั้งสองแบบนี้จะให้รายละเอียดเกี่ยวกับจำนวนรายการ DNS ที่แคชโดยให้รายงานที่ควรมีลักษณะดังนี้:
UDNS Cache Stats: Cached 962 of 1750
ถ้าคุณเรียกใช้คำสั่งเหล่านั้นก่อนและหลังใช้รูปแบบ flushcache คุณจะพบว่าควรตั้งค่าแคชแคช 0 รายการเช่น:
MDNS Cache Stats: lo0: Cached 0 of 2000
คุณรู้ได้อย่างไรว่ามันเปลี่ยนแปลงไปแล้วหรือยัง?
หลังจากที่คุณล้างแคชแล้วหากต้องการตรวจสอบว่าเซิร์ฟเวอร์ชื่อหรือ IP มีการเปลี่ยนแปลงจริงหรือไม่คุณสามารถใช้คำสั่ง 'ขุด' ด้วย URL แบบนี้ได้:
dig osxdaily.com
ขุดคล้ายกับ nslookup ยกเว้นว่าจะมีการส่งออกที่ดีขึ้นและรายละเอียดเพิ่มเติมไม่กี่รวมรวมเวลาแบบสอบถามชุดเซิร์ฟเวอร์ DNS ที่ใช้ในการเข้าถึงโดเมนและประทับเวลาทั้งหมดที่สามารถมีค่าเมื่อแก้ปัญหาเซิร์ฟเวอร์ชื่อปัญหา โดยวิธีการนี้ถ้าเวลาในการค้นหานี้แสดงว่าไม่ค่อยแข็งแรงคุณควรใช้เครื่องมือเช่น namebench เพื่อค้นหาเซิร์ฟเวอร์ DNS ที่เร็วกว่าซึ่งมักใช้กับ Google DNS หรือ OpenDNS
ทราบเคล็ดลับ cache DNS อื่นสำหรับ OS X รุ่นล่าสุดหรือไม่? แจ้งให้เราทราบในความคิดเห็น.