Зауважте, що 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 \
--listen-address = 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.
Отже, хоча DNS dnsmasq може кешувати, він не кешує поле. Ви можете перевірити свій апарат і різні каталоги конфігурації, щоб перевірити, чи перебуваєте ви на одній сторінці.
Якщо у вас виникають проблеми з кешем, це, ймовірно, відбувається в одному з небагатьох місць:
- Вгору від вашого комп’ютера. Деякі маршрутизатори кешують. Багато корпоративних мереж кешуватимуть DNS. Багато DNS-сервери, які працюють під керуванням провайдером, будуть використовувати свої власні кеші. Єдиний спосіб гарантувати проти мережевого кешу - це використовувати кеш, який ви можете оновити вручну. Ось чому мені подобається OpenDNS.
- У клієнтській програмі (особливо у браузерах). Програми можуть робити всілякі кешування, на які Ubuntu не впливає. Як Firefox кешує DNS . Як очистити кеш-пам'ять DNS Chrome . Інші браузери (і програми) можуть мати свої механізми.
Я записую бочку тут, але, можливо, ви встановили нестандартний DNS-сервер в Ubuntu замість того, щоб вмикати кешування в dnsmasq. Є багато: nscd, Djbdns dnscache(ака Tinydns) pdns, pdnsd, bind9 (і його варіанти), і більше я навіть не можу згадати. Вони, ймовірно, будуть засвідчені в /etc/resolv.conf(із налаштуванням в / etc / resolutionvconf / `для автогенізації цього файлу). Далі показано локально перехоплений 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.