โปรดทราบว่า Ubuntu ใช้การแก้ปัญหาระบบจาก 17.04 เป็นต้นไปดังนั้นคำตอบนี้จะไม่ใช้กับ Ubuntu รุ่นล่าสุดอีกต่อไป ดู " ล้างแคช DNS ใน Ubuntu 17.04 และสูงกว่า (18.04) "
ตามค่าเริ่มต้น DNS จะไม่ถูกแคชใน Ubuntu <17.04 (แต่อาจถูกแคชในเครือข่ายหรือแอปพลิเคชัน)
หากต้องการยืนยันวิธีใดวิธีหนึ่งไม่ว่าจะdnsmasq
เป็นการแคชให้รันps ax | grep dnsmasq
และดูที่คำสั่งที่กำลังรัน นี่คือรายละเอียดของเครื่องเริ่มต้นของฉัน 13.10:
/ usr / sbin / dnsmasq \
- ไม่แก้ไข \
- เก็บไว้ด้านหน้าเบื้องหน้า \
- ไม่มีโฮสต์ \
- ผูกอินเทอร์เฟซ \
--pid-file = / var / run / NetworkManager / dnsmasq.pid \
- รายการที่อยู่ = 127.0.1.1 \
--conf-file = / var / run / NetworkManager / dnsmasq.conf \
--cache-size = 0 \
--proxy-dnssec \
--enable-dbus = org.freedesktop.NetworkManager.dnsmasq \
--conf-dir = / etc / NetworkManager / dnsmasq.d
/etc/NetworkManager/dnsmasq.d
ว่างเปล่าโดยค่าเริ่มต้น ดังนั้นจึงไม่มีการแทนที่ใด ๆ ที่เข้ามาและเพียงแค่ตรวจสอบ--cache-size=0
หมายความว่าสิ่งที่เราคิดว่ามันหมายถึง (แทนที่จะเป็นแคชไม่ จำกัด ) man dnsmasq
แสดง:
-c, --cache-size=<cachesize>
Set the size of dnsmasq's cache. The default is 150 names.
Setting the cache size to zero disables caching.
ดังนั้นในขณะที่dnsmasq
สามารถแคช DNS ก็ไม่ได้แคชออกจากกล่อง คุณสามารถตรวจสอบเครื่องของคุณและไดเรกทอรีการกำหนดค่าต่างๆเพื่อตรวจสอบว่าคุณอยู่ในหน้าเดียวกัน
หากคุณเห็นปัญหาแคชสิ่งนี้อาจเกิดขึ้นได้ในที่ไม่กี่แห่ง:
- อัปสตรีมจากคอมพิวเตอร์ของคุณ เราเตอร์บางแคช เครือข่ายองค์กรหลายแห่งจะแคช DNS เซิร์ฟเวอร์ DNS ที่ใช้งาน ISP จำนวนมากและจะใช้แคชของตัวเอง วิธีเดียวที่จะรับประกันกับแคชเครือข่ายคือการใช้แคชที่คุณสามารถรีเฟรชได้ด้วยตนเอง นี่คือเหตุผลที่ฉันชอบ OpenDNS
- ในแอปพลิเคชันไคลเอนต์ (เบราว์เซอร์ที่สะดุดตา) แอปพลิเคชันสามารถทำแคชได้ทุกประเภทที่ Ubuntu ไม่มีผล Firefox เก็บ DNSอย่างไร วิธีการล้างแคช DNS ของ Chrome เบราว์เซอร์อื่น ๆ (และแอปพลิเคชัน) อาจมีกลไกของตนเอง
ฉันขูดบาร์เรลนี่ แต่บางทีคุณอาจได้ติดตั้งเซิร์ฟเวอร์ DNS ที่ไม่ได้มาตรฐานใน Ubuntu dnsmasq
แทนการเปลี่ยนแคชใน มีหลาย ได้แก่ : nscd
, djbdns dnscache
(aka TinyDNS) pdns
, pdnsd
, bind9 (และตัวแปรของมัน) และอื่น ๆ อีกมากมายที่ฉันจะจำไม่ได้ว่า สิ่งเหล่านี้อาจเป็นหลักฐานใน/etc/resolv.conf
(ด้วย config ใน / etc / resolvconf / `เพื่อ autogen ไฟล์นั้น) ต่อไปนี้แสดงให้เห็นถึงการสอบถาม DNS ภายในเครื่อง:
$ nslookup askubuntu.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: askubuntu.com
Address: 198.252.206.24
หากคุณไม่ได้กดปุ่ม 8.8.8.8 (หรือสิ่งที่คุณคาดหวังว่าเซิร์ฟเวอร์ DNS ของคุณจะเป็น) ให้ตรวจสอบสิ่งที่คุณกำลังกดปุ่มแทน ในกรณีของฉันฉันเห็นว่านี่เป็นเพียงการdnsmasq
ตั้งค่าให้มิเรอร์ DNS สืบค้นกลับสำหรับ LXC แต่ในกรณีของคุณอาจทำสิ่งที่ไม่ดี
หากคุณทำแคชที่แสดงรายการไว้แล้วกระบวนการสำหรับการล้างแต่ละรายการจะแตกต่างกันไป:
sudo /etc/init.d/nscd reload # nscd
sudo /etc/init.d/named restart # bind9
ในบันทึกที่เกี่ยวข้องเล็กน้อยเห็นนี้เพื่อเปิดใช้งานในแคชdnsmasq
/etc/hosts
นอกจากนี้ตรวจสอบ ฉันเพิ่งแน่ใจว่าที่อยู่ IP เก่าของโดเมนของฉันถูกแคช แต่strace ping example.com
เปิดเผยว่าฉันลืมที่จะลบ/etc/hosts
ระเบียนที่ฉันเพิ่มไปเมื่อไม่นานมานี้เนื่องจากขาดความอดทนในการเผยแพร่ DNS