วิธีล้างแคช DNS ใน macOS, El Capitan หรือ Yosemite

หากคุณเป็นผู้ดูแลระบบเครือข่ายนักพัฒนาเว็บหรือผู้ดูแลระบบของ 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 เพื่ออ่านบทความเพิ่มเติมดังกล่าว