วิธีการล้างแคช DNS บน Linux

คอมพิวเตอร์เก็บบันทึกทุกเว็บไซต์ที่คุณเยี่ยมชมใน“ แคช DNS” จุดประสงค์ของแคชนี้คือเพื่อประหยัดเวลาเมื่อผู้ใช้พยายามเข้าถึงโดเมน ระบบไม่จำเป็นต้องค้นหาทุกครั้งด้วยตนเอง โดยรวมแล้วการแคช DNS ทำให้การใช้อินเทอร์เน็ตของคุณเร็วขึ้นและนั่นเป็นเหตุผลว่าทำไมระบบปฏิบัติการทุกระบบตั้งแต่ macOS ไปจนถึง Windows ถึง Linux ทำได้

ยังมีประโยชน์สำหรับเช่นเดียวกับแคช DNS เป็นปัญหาบางครั้งสามารถเกิดขึ้นได้เช่นการดูเว็บไซต์เก่าแทนที่จะเป็นเว็บไซต์ที่อัปเดตใหม่ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้ ฯลฯ วิธีที่ดีในการแก้ไขข้อผิดพลาดประเภทนี้ในคอมพิวเตอร์ Linux คือการ "ล้าง" แคช DNS บน Linux . เมื่อคุณล้างแคช DNS จะรีเฟรชฐานข้อมูล DNS และแก้ไขปัญหาที่ผู้ใช้หลายคนพบเจอ

Flush DNS - แก้ไขปัญหาของระบบ

ณ จุดนี้ผู้ใช้ส่วนใหญ่ของ Linux คือใช้ระบบปฏิบัติการที่มีระบบเริ่มต้นของ Systemd ในขณะที่หัวเรื่องของ Systemd นั้นแบ่งแยกในชุมชน แต่มีสิ่งหนึ่งที่ทุกคนรู้: Systemd ทำให้การปรับแต่งระบบปฏิบัติการระดับลึกและซับซ้อนและการบำรุงรักษาง่ายกว่าที่เคยเป็นมาในอดีต ความจริงเรื่องนี้เป็นจริงโดยเฉพาะอย่างยิ่งกับการล้างแคช DNS

Systemd จัดการแคช DNS ในสิ่งที่รู้จักตามที่“ systemd แก้ไขแล้ว” มันเป็นยูทิลิตี้มาตรฐานที่พบว่ามันเป็นหนทางสู่ระบบปฏิบัติการ Linux ส่วนใหญ่ ในการตรวจสอบว่าระบบปฏิบัติการของคุณใช้ Systemd Resolved เพื่อจัดการ DNS และแคช DNS บนระบบให้เปิดหน้าต่างเทอร์มินัลโดยกด Ctrl + Alt + T หรือ Ctrl + Shift + T บนแป้นพิมพ์ หลังจากนั้นให้เรียกใช้ สถานะ systemctl คำสั่งใน systemd-resolved.service ไฟล์.

systemctl status systemd-resolved.service

ดูที่การพิมพ์ของ Systemd Resolvedหน้าต่างเทอร์มินัลและค้นหาส่วน "ใช้งานอยู่" เมื่อคุณพบส่วน "ใช้งานอยู่" และตรวจสอบให้แน่ใจว่ามี "ใช้งานอยู่ (ทำงานอยู่)" ถัดจากนั้น ถ้าเป็นเช่นนั้นระบบ Linux ของคุณกำลังใช้สิ่งนี้เพื่อจัดการ DNS

หากต้องการล้างแคช DNS สำหรับ Systemd Resolved คุณจะต้องใช้หนึ่งในคุณสมบัติของ Systemd Resolved โดยเฉพาะอย่างยิ่ง ล้างแคช คำสั่ง มันจะล้าง DNS ออกทันทีและช่วยให้คุณพร้อมใช้งานได้อีกครั้ง!

sudo systemd-resolved --flush-caches

หรือถ้าคุณไม่สามารถใช้งานได้ sudoทำ:

su -
systemd-resolved --flushcaches

เมื่อคุณใช้ flushcaches สั่งแคช DNS ในระบบควรจะเป็นล้างออกอย่างเพียงพอ อย่างไรก็ตามหากหลังจากเรียกใช้คำสั่งนี้คุณยังคงพบปัญหาบางอย่างคุณอาจต้องเริ่มบริการใหม่ทั้งหมด เมื่อต้องการทำเช่นนี้ใช้ประโยชน์จาก รีสตาร์ท systemctl คำสั่ง

sudo systemctl restart systemd-resolved.service

ใช้ไม่ได้ sudo? เข้าสู่ระบบด้วยรูทด้วย su ก่อนที่จะพยายามเริ่มบริการใหม่ด้วย systemd

su -
systemctl restart systemd-resolved.service

เมื่อ Systemd-Resolved เสร็จสิ้นการรีสตาร์ทปัญหา DNS ทั้งหมดควรได้รับการแก้ไข!

ล้าง DNS - DNS Masq

DNSMasq เป็นอีกโซลูชัน DNS ยอดนิยมสำหรับแพลตฟอร์ม Linux ที่ระบบปฏิบัติการหลายระบบใช้ เช่นเดียวกับเครื่องมือ Systemd-Resolved ผู้ใช้สามารถโต้ตอบกับมันได้ systemctl คำสั่ง ในการตรวจสอบว่าระบบปฏิบัติการของคุณใช้เครื่องมือ DNSMasq เพื่อจัดการ DNS หรือไม่ให้เรียกใช้ สถานะ คำสั่ง

systemctl status dnsmasq.service

อ่านสถานะการพิมพ์ที่ systemd ให้ไว้จอภาพ เข้าสู่ส่วน“ ใช้งาน” ของการอ่านข้อมูล สแกนมันและมองหา "ใช้งานอยู่ (กำลังทำงาน)" เพื่อยืนยันว่าบริการนั้นเปิดใช้งานอยู่ หากเป็นกรณีนี้เป็นไปได้ที่จะล้างแคช DNS สำหรับ DNSMasq ทันทีโดยใช้ รีสตาร์ท systemctl คำสั่ง ในเทอร์มินัลป้อนคำสั่งต่อไปนี้

sudo systemctl restart dnsmasq.service

หรือสำหรับผู้ที่ไม่สามารถใช้คำสั่ง systemd ด้วย sudoลองเข้าสู่ระบบในฐานะรูทก่อนที่จะลองรีสตาร์ท

su -
systemctl restart dnsmasq.service

ล้าง DNS - NSCD

NSCD เป็นระบบแคช DNS ที่ต้องการสำหรับระบบปฏิบัติการ Linux ที่ใช้ RedHat เป็นหลัก ดังนั้นหากคุณใช้ OpenSUSE Linux, CentOS หรือสิ่งที่คล้ายกันมีโอกาสที่คุณจะต้องยุ่งยากกับมันเพื่อล้างแคช DNS ของคุณ

หมายเหตุ: แม้ว่า Fedora Linux นั้นใช้ RedHat อยู่ แต่โดยปกติแล้วมันจะไม่เก็บแคช DNS

หากต้องการตรวจสอบว่า Linux OS ของคุณใช้ NSCD หรือไม่คุณจะต้องใช้ สถานะ คำสั่งเนื่องจากเป็นบริการ systemd

systemctl status nscd.service

การรันคำสั่งสถานะบนบริการ NSCDจะให้ข้อมูลรายละเอียดเกี่ยวกับมันมากมาย อ่านผ่านและค้นหาส่วนที่ระบุว่า "ใช้งานอยู่" หากระบบของคุณใช้งานอยู่คุณจะเห็นข้อความสีเขียวที่ระบุว่า "ใช้งานอยู่ (กำลังทำงาน)"

การล้างแคช DNS ด้วย NSCD นั้นเหมือนกับระบบแคชอื่น ๆ ที่ทำงานกับ systemd สิ่งที่ผู้ใช้ต้องทำคือเรียกใช้ รีสตาร์ท systemctl คำสั่ง มันจะโหลดบริการอีกครั้งและล้างแคช DNS โดยอัตโนมัติซึ่งจะแก้ไขปัญหา DNS ที่คุณอาจประสบ

sudo systemctl restart nscd.service

อีกทางหนึ่งหากระบบปฏิบัติการ Linux ของคุณปิดการใช้งานคำสั่ง systemctl ด้วย sudoคุณสามารถเริ่มบริการใหม่ได้โดยเข้าสู่บัญชีรูทโดยใช้ su.

su -
systemctl restart nscd.service

ความคิดเห็น