หากคุณเป็นผู้ดูแลระบบเครือข่ายนักพัฒนาเว็บหรือผู้ดูแลระบบของ Mac คุณอาจต้องล้างแคช DNS บน macOS ด้วยเหตุผลบางประการ โดยเฉพาะอย่างยิ่งถ้าคุณต้องการเซิร์ฟเวอร์ชื่อเพื่อแก้ไขอย่างถูกต้องหรือการเปลี่ยนแปลงในที่อยู่ DNS ที่จะตรวจพบโดยระบบของคุณ
นอกเหนือจากสาเหตุข้างต้นหากคุณแก้ไขไฟล์ /etc/ hosts
และคุณต้องการการปรับเปลี่ยนเพื่อให้มีผลลบด้วยการรีบูตเครื่อง Mac คุณอาจจำเป็นต้องทำการดัมพ์และรีเซ็ต DNS แคช
วิธีล้าง Cache DNS บน Mac
- การรีเซ็ตแคช DNS ไม่เหมือนกันในแต่ละเวอร์ชันของ Mac OS X หากคุณเป็นผู้ใช้ Mac เป็นระยะเวลานานคุณอาจรู้ว่ากระบวนการนี้ใน OS X Yosemite นั้นคล้ายกับรุ่นเก่ากว่าอื่น ๆ อาจเป็นเพราะ Discoveryd แทนที่ mDNSResponder แล้วเปลี่ยนกลับเป็น mDNSResponder อีกครั้ง
- แม้จะมีการเปลี่ยนแปลง แต่การล้างแคช DNS ยังคงเป็นคำสั่งเทอร์มินัลใน Yosemite แต่มีความแตกต่างกันเล็กน้อยขึ้นอยู่กับระบบปฏิบัติการที่คุณใช้งานอยู่
- คุณได้รับการล้าง Unicast DNS หรือ Multicast DNS หรือทั้งสองอย่าง หากคุณพยายามรีเซ็ตแคช DNS ทั้งหมดบน Mac คุณอาจต้องพิจารณาการล้างทั้งสองอย่างเป็นการวัดที่เหมาะสม
ล้างแคช DNS ใน macOS Sierra หรือ macOS High Sierra
ล้างแคช DNS ใน macOS Sierra และ macOS High Sierra คุณต้องใช้คำสั่งใหม่ ตรงไปที่คู่มือฉบับย่อนี้เพื่อค้นหาวิธีการทำ
ล้าง DNS Cache ใน Mac OS X Yosemite หรือ El Capitan
ตั้งแต่ OS X 10.10.4 เป็นต้นไปด้วยการรวม 10.11 แอปเปิลได้ยกเลิกการค้นหา Discoveryd และทำการแทนที่ด้วย mDNSResponder ดังนั้นการล้างแคช DNS ใน OS X Yosemite และ Mac OS X El Capitan และการเปิดตัวในอนาคตมีแนวโน้มมากที่สุดต่อไปนี้คือสตริงคำสั่ง:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder; say cache flushed
การใช้คำสั่งดังกล่าวจะล้างแคช DNS ทั้งหมดสำหรับ OS X 10.10.4 และต่อไป
ในฐานะที่เป็นผู้ใช้ Mac มาเป็นเวลานานคุณอาจจำได้ว่าสตริงคำสั่งนี้เป็นสิ่งที่ทำงานในรุ่นก่อนหน้าโยเซมิตี อย่างไรก็ตามการเผยแพร่ OS X Yosemite ก่อนหน้านี้ที่ 10.10.4 จะใช้สตริงคำสั่งที่แตกต่างกันดังที่ระบุไว้ด้านล่าง
ในการรีเซ็ตแคชคุณต้องใช้ Terminal ค้นหาแอป Terminal ใน / Applications / Utilities / หรือเปิดด้วย Spotlight กำหนดเป้าหมายทั้ง UDNS (Unicast DNS) และ MDNS (Multicast DNS) ด้วยสองคำสั่งต่าง ๆ เพื่อล้างแคช DNS ทั้งหมดใน OS X รุ่นล่าสุดอย่างสมบูรณ์
ล้างแคช MDNS
- OS X Yosemite และใหม่กว่า:
sudo killall -HUP mDNSResponder
- OS X v10.10 ถึง v10.10.3:
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 รุ่นก่อนหน้า
ในกรณีที่คุณใช้ OS X เวอร์ชั่นก่อนหน้าเช่น Mavericks, Mountain Lion หรือ Lion คำสั่งในการล้าง DNS จะแตกต่างกัน ด้านล่างเราได้กล่าวถึงคำสั่ง Terminal สำหรับ Mac OS X เวอร์ชั่นก่อนหน้าดูที่
วิธีล้างแคช DNS ใน OS X Mavericks, Mountain Lion และ Lion
คำสั่งด้านล่างจะช่วยให้คุณรีเซ็ตแคช DNS ใน OS X v10.9.5 และรุ่นก่อนหน้า:
sudo killall -HUP mDNSResponder
หากคุณใช้ Mac OS X Snow Leopard คำสั่ง Terminal สำหรับคำสั่งเดียวกันจะอยู่ด้านล่างให้ตรวจสอบ
วิธีล้างแคช DNS ใน Mac OS X Snow Leopard
เพียงคัดลอกวางคำสั่งที่ระบุด้านล่างเพื่อรีเซ็ตแคช DNS ใน OS X v10.6 ถึง v10.6.8:
sudo dscacheutil -flushcache
วิธีตรวจสอบรายละเอียดแคช DNS ใน OS X El Capitan หรือ Yosemite
ในขณะที่คุณกำลังเปลี่ยน DNS หากคุณต้องการทราบเกี่ยวกับสิ่งที่แคชในเวลานั้นคุณสามารถใช้คำสั่งดังต่อไปนี้:
รับสถิติแคช UDNS
sudo discoveryutil udnscachestats
นอกจากนี้คุณสามารถกู้คืนรายละเอียดเกี่ยวกับแคช DNS แบบหลายผู้รับด้วยคำสั่งต่อไปนี้:
sudo discoveryutil mdnscachestats
ทั้งคำสั่งที่กล่าวถึงข้างต้นนำเสนอข้อมูลเช่นจำนวนรายการ DNS ที่แคชไว้โดยระบุบัญชีของรายละเอียดด้วยวิธีดังต่อไปนี้:
UDNS Cache Stats: Cached 1250 of 1900
หากคุณเรียกใช้คำสั่งก่อนและหลังการดำเนินการรูปแบบ flushcache คุณจะพบว่าพวกเขาจะต้องรีเซ็ตเป็น 0 รายการแคชเช่นเดียวกับที่ระบุด้านล่าง:
MDNS Cache Stats: lo0: Cached 6 of 7500
คุณจะรู้ได้อย่างไรว่ามีการเปลี่ยนแปลงเกิดขึ้น
เมื่อคุณล้างแคชหากคุณต้องการทราบว่า IP หรือเนมเซิร์ฟเวอร์มีการเปลี่ยนแปลงจริง ๆ ให้ใช้ประโยชน์จากคำสั่ง 'dig' ด้วย URL ตามที่ให้ไว้ด้านล่าง:
dig igeeksblog.com
ขุดและ nslookup ค่อนข้างคล้ายกัน แต่ด้วยข้อยกเว้นที่ขุดให้ผลที่ดีขึ้นโดยรวมถึงข้อมูลเพิ่มเติม มันให้รายละเอียดเช่นชุดเซิร์ฟเวอร์ DNS ที่ใช้ในการเข้าถึงโดเมนเวลาประทับและเวลาแบบสอบถามรวม รายละเอียดทั้งหมดนี้มีประโยชน์เมื่อแก้ไขปัญหาชื่อเซิร์ฟเวอร์ หากเวลาสอบถามในผลลัพธ์ช้าคุณต้องใช้เครื่องมือชื่อ namebench เพื่อรับเซิร์ฟเวอร์ DNS ที่เร็วขึ้นโดยทั่วไปคือ OpenDNS หรือ Google DNS
มันสวยมาก!
ห่อ
หวังว่าการกำจัดแคช DNS จะไม่ใช่เรื่องใหญ่สำหรับคุณอีกต่อไป มีคำถามไหม? โยนมันขึ้นมาในความคิดเห็นด้านล่าง
คุณอาจต้องการดูโพสต์เหล่านี้เช่นกัน:
- วิธีใช้ Secure Boot บน iMac Pro
- DearMob iPhone Manager สำหรับ Mac และ Windows
- วิธีซ่อนแอปที่ซื้อใน Mac
พบว่าคู่มือนี้มีประโยชน์หรือไม่ ดาวน์โหลดแอปของเราและติดต่อกับเราผ่านทาง Facebook, Twitter และ Telegram เพื่ออ่านบทความเพิ่มเติมดังกล่าว