วิธีการล้างแคช DNS ใน CentOS


20

ฉันกำลังมองหาวิธีล้างแคช DNS ในเครื่องบน CentOS 6

ระบบไม่ได้ใช้เซิร์ฟเวอร์ DNS ใด ๆ หรืออะไรก็ตามและฉันต้องการให้ทุก ๆ แบบสอบถาม DNS ออกไปที่เซิร์ฟเวอร์ที่กำหนดค่าไว้แม้จะเป็นรายการที่ซ้ำกันก็ตาม

ส่วนใหญ่ของสิ่งที่ฉันพบออนไลน์บอกฉันจะทำอย่างไรservice nscd restart, nscd -i hostsโหลดหรือทำ อย่างไรก็ตามดูเหมือนว่าจะไม่มีการล้างแคช

ดังนั้นฉันสงสัยว่าใครมีความคิดเกี่ยวกับวิธีที่ฉันอาจทำเช่นนี้ มีสวิตช์ในเคอร์เนลที่ฉันต้องพลิกไหม งานประเภทใดก็ดีเช่นกัน


คุณกำลังทำอะไรเพื่อตรวจสอบว่าแคชถูกล้างออกหรือไม่?
John

ตกลงมันค่อนข้างซับซ้อนฉันมีโปรแกรมในระบบของฉันฟังพอร์ต 53 และส่งต่อการสืบค้น DNS ในบางวิธีและยังใช้ http พร็อกซีโดยใช้ localhost เป็น 'เซิร์ฟเวอร์ DNS'; ในแบบสอบถามแรก (พูดwget -e 'http_proxy=localhost:3128' xxx.com) ฉันสามารถดูแบบสอบถามได้ถูกส่งต่ออย่างถูกต้อง แต่แบบสอบถามที่ตามมาทั้งหมดไม่ได้ หากฉันรอนานพอ (แคชหมดอายุ) แล้วมันจะทำงานอีกครั้ง
zee

และฉันยังได้กำหนดค่าพร็อกซี (ปลาหมึก) เพื่อไม่แคชวัตถุใด ๆ ดังนั้นฉันจึงคิดว่ามันเป็นระบบที่ยังคงแคชคำตอบอย่างใด
zee

1
โฮสต์ nscd -i -> ทำงานทุกครั้ง ฉันรีสตาร์ท nscd 3 ครั้งติดต่อกันและไม่ต้องการล้างแคช
Danie

nscd ดูเหมือนจะไม่เป็นเรื่องง่ายใน CentOS 7 ฉันรู้ว่าคำถามเรียก CentOS 6 แต่ชื่อเรียก CentOS โดยทั่วไป CentOS 7 ทางคืออะไร?
duct_tape_coder

คำตอบ:


11

ไม่ใช่กล่องโลคัลของคุณซึ่งทำการแคชคำร้องขอ DNS แต่เป็นตัวแก้ไข DNS ที่คุณใช้ใน/etc/resolv.confผู้ที่กำลังแคช

หากต้องการป้องกันไม่ให้ได้รับข้อความค้นหาที่แคชไว้ให้ตอบกลับ:

  1. เปลี่ยนโปรแกรมแก้ไข

    $ dig @<resolve-ip> www.google.com

  2. ล้างแคช DNS บนตัวแก้ไขปัญหาหากคุณสามารถเข้าถึงเซิร์ฟเวอร์ DNS ได้

    $ sudo /etc/init.d/bind restart


อืม แต่ฉันได้ตั้งค่าไว้dns_nameservers 127.0.0.1ในไฟล์กำหนดค่าพร็อกซีและผู้ฟังส่งต่อแบบสอบถามไปยังเซิร์ฟเวอร์ชื่อที่กำหนดค่าไว้ล่วงหน้าเท่านั้นไม่ควรเป็นกรณีที่ resolv.conf ไม่ได้ปรึกษาด้วยซ้ำ
zee

4
"bash: /etc/init.d/bind: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" และวิธีการของ OP ได้รับ "ไม่สามารถรีสตาร์ท nscd.service: หน่วย nscd.service ไม่สามารถโหลดได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" ฉันเดาว่าสิ่งเหล่านี้ถูกย้าย / เปลี่ยนแปลง เหตุใดพวกเขาจึงไม่สามารถทิ้งสิ่งที่ทำงานอยู่หรืออย่างน้อยก็รักษานามแฝง ไม่ดีพอที่จะต้องเป็นผู้เชี่ยวชาญระบบปฏิบัติการเพียงใช้กล่อง Linux แย่ลงเมื่อคุณต้องเรียนรู้ระบบปฏิบัติการใหม่ทุกครั้ง
JosephK

3

แม้หลังจากรีเฟรชหรือล้างแคช DNS บนเครื่องไคลเอนต์หากไม่ทำงานให้ดูเซิร์ฟเวอร์หรือเครื่องไคลเอนต์ของคุณถูกผูกไว้กับเซิร์ฟเวอร์ NIS ใด ๆ ถ้าใช่แล้วเปลี่ยน "hosts: files nis dns" เป็น "hosts: files dns nis" รายการในไฟล์ /etc/nsswitch.conf และคุณต้องเปลี่ยนที่อยู่ ip ในรายการโฮสต์เซิร์ฟเวอร์หลักของ NIS


นี่นำไปสู่ทางออกของฉัน Inside / etc / hosts เป็นที่อยู่ IP เก่าแบบคงที่ที่กำหนดไว้ก่อนหน้านี้ บางสิ่งที่ฉันทำกลับไปพักหนึ่ง การลบบรรทัดนั้น (หรือแทนที่ด้วย ip ใหม่) แก้ปัญหาและอนุญาตให้ฉัน ping เครื่องของฉันโดยใช้ชื่อโฮสต์
Paul

3

ฉันเกือบจะแน่ใจว่าไม่ใช่ระบบแคชตอบสนอง - ส่วนนั้น (ระบบแคช) จัดการโดยnscddaemon เท่านั้น การรีสตาร์ท (หรือหยุดทั้งหมด) ที่ daemon รีเซ็ตหรือกำจัดการแคชระบบปฏิบัติการของการตอบสนองคำร้องขอชื่อเซอร์วิส

ฉันจะเสนอความเป็นไปได้สองอย่างแม้ว่าผู้ฟังกำหนดเองที่คุณตั้งค่าไว้บนพอร์ต 53 เต็มไปด้วยโคลนในน้ำอย่างมาก:

  • A) ระบบของคุณกำลังออกคิวรีอัพสตรีม แต่ตัวแก้ไขชื่ออัปสตรีมทันทีกำลังแคชการตอบสนองตามการตั้งค่าหรือ TTL ของเรคคอร์ด
  • B) ผู้ฟังที่คุณกำหนดเองกำลังแคชคำตอบภายในและเพียงแค่ส่งคำตอบนั้นกลับไปที่ระบบเมื่อถูกถามอีกครั้งก่อนที่เวลาแคชจะหมดอายุ

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