จะอ่านเนื้อหาแคช DNS ในเครื่องได้อย่างไร


31

ฉันรู้ว่าใน Windows ฉันสามารถออกipconfig /displaydnsและฉันเห็นเนื้อหาแคชของ DNS ท้องถิ่น

ฉันจะแสดงรายการเนื้อหาแคชของ DNS ใน Linux ได้อย่างไร

ฉันต้องการได้รับการแก้ปัญหาข้าม distro มากที่สุด


4
เท่าที่ฉันทราบไม่มีแคช DNS ถูกเก็บรักษาไว้ในไคลเอนต์ใน Linux (ตัวแก้ไข) เว้นแต่ว่าระบบจะใช้แคชเฉพาะบริการ DNS บนไคลเอนต์
Nikhil Mulley

คุณมักจะมี/etc/hostsไฟล์ซึ่งอาจมีรายการที่สร้างขึ้นโดยบริการการขึ้นบัญชีดำ DNS

คำตอบ:


15

ก่อนหน้าsystemdนี้แทบไม่มีแคช DNS ระดับระบบปฏิบัติการ

ก่อนที่จะsystemdไม่มีแคช OS ระดับ DNS บนลินุกซ์ (และอาจจะใช้ระบบปฏิบัติการยูนิกซ์ส่วนใหญ่) เว้นแต่nscdหรือdnsmasqได้รับการติดตั้งและใช้

แล้วถึงแม้ DNS แคชคุณลักษณะของการnscdถูกปิดใช้งานโดยเริ่มต้นใน Debian อย่างน้อยเพียงเพราะมันจะเสีย

สำหรับdnsmasqการแคชดูเหมือนว่าจะเกิดขึ้นใน RAMโดยค่าเริ่มต้น


2
ระบบจำนวนมากในทุกวันนี้ใช้เป็นdnsmasqค่าเริ่มต้นดังนั้นunix.stackexchange.com/q/162973/79839อาจมีประโยชน์
ลูกไก่

1
และเหล่านี้วันอะไรใช้systemdมีแนวโน้มที่จะมีsystemd-resolvedการทำงานโดยเริ่มต้นที่ไม่ผลลัพธ์ของ DNS แคชขึ้นอยู่กับ TTL ของพวกเขา
ดึง

9

nscdเป็น Daemon บริการแคช นี่คือยูทิลิตี้ที่ Linux, Solaris และการใช้บริการแคชชื่ออื่น ๆ บริการชื่อในกรณีนี้เป็นคำทั่วไปไม่ จำกัด อย่างเคร่งครัดในการแก้ปัญหาโฮสต์ แต่ยังรวมถึงผู้ใช้กลุ่ม ฯลฯ

ฉันไม่รู้วิธีดูเนื้อหาจริงของแคชแม้ว่าคุณจะสามารถแสดงสถิติ/usr/sbin/nscd -gได้

อย่างน้อยก็สามารถแสดงให้คุณเห็นว่าแคชของคุณมีประสิทธิภาพมากน้อยเพียงใด

คุณอาจมีตัวเลือกอื่น ๆ หากคุณใช้เครื่องมือแคชสำรองเช่น DNSMASQ


3

หากคุณใช้nscdคุณสามารถดูเนื้อหา (และอาจเป็นขยะอื่น ๆ ) โดยแสดงสตริง ASCII จากไฟล์แคชไบนารี ใน Debian / Ubuntu ไฟล์นั้นใช้/var/cache/nscd/hostsสำหรับแคชของโฮสต์ / DNS ดังนั้นคุณสามารถเรียกใช้strings /var/cache/nscd/hostsเพื่อดูโฮสต์ที่อยู่ในแคช

โปรดทราบว่านี่เป็นแฮ็คทั้งหมดเนื่องจากดูเหมือนจะไม่มีวิธีที่เหมาะสมในการตรวจสอบnscdแคชโดยไม่ต้องถอดรหัสรูปแบบไบนารี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.