Зауважте, що 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.