- How do I clear the DNS cache?
- 17 Answers 17
- Ubuntu 17.04 and higher (18.04)
- Ubuntu 22.04 and higher
- For 18.04 and higher
- For 11.10 and below
- 12.04
- By default, DNS is not cached in Ubuntu < 17.04 (but it might be cached in the network or application)
- Как очистить / сбросить кеш DNS в Linux
- 1) Очистить кеш DNS на Ubuntu / Debian / LinuxMint
- 2) Сброс кеша dns сервера BIND
- 3) Очистить кэш nscd DNS
- 4) Очистить dnsmasq dns кэш
- 5) Очистка кеша dns в Windows
- Clearing DNS Cache in Ubuntu and Linux Mint: A Step-by-Step Guide
- Understanding DNS Caching
- Flushing DNS Cache in systemd-resolved
- Flushing DNS Cache in dnsmasq
- Flushing DNS Cache in BIND (named)
- Clearing DNS Cache in Web Browsers
- Conclusion
How do I clear the DNS cache?
I just updated the DNS record ( ns1 , ns2 , ns3.myhostingcompany.com ) for a site I’ve got hosted, but I still get the domain registrar parking page. I’d like to see if the problem is Ubuntu’s cached DNS records. Is there a way to clear Ubuntu’s DNS cache? (if such a thing exists?)
Also, check /etc/hosts . I’ve just been sure that the old IP address of my domain was being cached, but only strace ping example.com revealed that I forgot to remove the /etc/hosts record which I added a time ago because of lacking patience for DNS propagation.
a lot of these answers suggest caching is disabled by default, but they also refer older versions. It certainly appears to be on by default in my machine (18.04) and various answers below do show you how to flush it, just scroll down
17 Answers 17
Ubuntu 17.04 and higher (18.04)
From Ubuntu 17.04 and onwards, systemd-resolve is used for DNS. You can flush systemd’s caches like so:
sudo systemd-resolve --flush-caches
Ubuntu 22.04 and higher
sudo resolvectl flush-caches
This didn’t work for me on 16.04 LTS — but it was useful to see yet another way it might have been cacheing: sudo systemd-resolve —statistics
Any idea why it displays this error on Ubuntu 19.10? Failed to flush caches: Unit dbus-org.freedesktop.resolve1.service not found.
For ubuntu 22.04, we need to use: sudo resolvectl flush-caches . See answer from @codezalot in systemd-resolve-command-not-found-in-ubuntu-22-04-desktop.
For 18.04 and higher
For 11.10 and below
Ubuntu doesn’t cache dns records by default so unless you’ve installed a dns cache there isn’t anything to clear.
DNS records are likely cached by your provider’s DNS servers so if you want to check if the DNS changes you made were successful you can interrogate a DNS server from your domain hosting service with dig:
dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
It you want Ubuntu to start caching dns I recommend installing pdnsd together with resolvconf . nscd is buggy and not advisable.
Mike Shultz’s answer definitely doesn’t work on Ubuntu 20. You get this error message: sd_bus_open_system: No such file or directory
So, For 10 years later. If I disabled systemd-resolve for ubuntu and debian. Then there is no DNS cache, Each nslookup will request DNS server?
12.04
Ubuntu 12.04 uses dnsmasq which is built into network-manager , but it doesn’t cache dns so there is no need to flush it. Here is a sample line from my syslog to prove that point:
dnsmasq[2980]: started, version 2.59 cache disabled
There is also no need for any configuration of dnsmasq . If you are running with stock settings it won’t be caching dns, as for it to do so you have to explicitly set it up as this Ubuntu article describes.
If you wanted to refresh your settings you could disable and then enable networking or run
sudo service network-manager restart
This restarts dnsmasq because it is built in to network-manager ; check your syslog for the evidence for this.
If you are using a wired connection with dhcp network manager will be taking the settings direct from your router and your connection will be automatically established when you login to Ubuntu. You could check that the settings are correct in your router if you can access it via the web interface, and perhaps reboot it if necessary. If it is a general problem with dns, you could try using Google dns instead of your isp dns, and more information on that is detailed here.
Note that Ubuntu uses systemd-resolve from 17.04 and onwards so this answer doesn’t apply anymore to recent Ubuntu versions. See «flush DNS cache in Ubuntu 17.04 and higher (18.04)»
By default, DNS is not cached in Ubuntu < 17.04 (but it might be cached in the network or application)
To confirm one way or the other whether dnsmasq is caching, run ps ax | grep dnsmasq and look at the running command. Here’s a breakdown of my default 13.10 machine:
/usr/sbin/dnsmasq \ --no-resolv \ --keep-in-foreground \ --no-hosts \ --bind-interfaces \ --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 is empty by default. So there aren’t any overrides coming in there and just to check —cache-size=0 means what we think it means (instead of an unlimited cache), man dnsmasq shows:
-c, --cache-size= Set the size of dnsmasq's cache. The default is 150 names. Setting the cache size to zero disables caching.
So while dnsmasq can cache DNS, it isn’t caching out the box. You can check your machine and various configuration directories to check you’re on the same page.
If you are seeing cache issues, this is likely happening in one of a few places:
- Upstream from your computer. Some routers cache. Many corporate networks will cache DNS. Many ISP-run DNS servers and will use their own caches. The only way to guarantee against a network cache is to use a cache you can manually refresh. This is why I like OpenDNS.
- In the client application (notably browsers). Applications can do all sorts of their own caching that Ubuntu has no effect on. How Firefox caches DNS. How to clear Chrome’s DNS cache. Other browsers (and applications) might have their own mechanisms.
- I’m scraping the barrel here but perhaps you’ve installed a non-standard DNS server in Ubuntu instead of turning caching on in dnsmasq . There are many: nscd , DJBDNS dnscache (aka TinyDNS), pdns , pdnsd , Bind9 (and its variants), and more I can’t even remember. These will probably be evidenced in /etc/resolv.conf (with config in /etc/resolvconf/` to autogen that file). The following shows an locally intercepted DNS query:
$ 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
If you’re not hitting 8.8.8.8 (or whatever you expect your DNS server to be), check what you are hitting instead. In my case I can see this is just dnsmasq set up to mirror DNS queries back for LXC, but in your case it might be doing bad cachey things. If you have done of the listed caches, the process for clearing each varies:
sudo /etc/init.d/nscd reload # nscd sudo /etc/init.d/named restart # bind9
Как очистить / сбросить кеш DNS в Linux
В некоторых случаях вам трудно добраться до некоторых сайтов из-за проблемы с DNS, возможно, ваш локальный DNS-кеш поврежден.
Для такой ситуации вам необходимо перезапустить службу кэширования DNS операционной системы.
Кэш-память DNS для системы доменных имен – это временная база данных, которая поддерживается операционной системой компьютера, которая содержит IP-адрес сайтов, которые вы недавно просматривали.
См. Ниже список основных серверов кэширования DNS, используемых в дистрибутиве Linux.
nscd DNS Cache: nscd – демон кэша службы имен, Nscd – это демон, который обеспечивает кэш для наиболее распространенных запросов службы имен.
Файл конфигурации по умолчанию, /etc/nscd.conf
dnsmasq DNS Cache: Dnsmasq – легкий, небольшой в размере, простой в настройке, DNS-сервер и DHCP-сервер.
Он предназначен для предоставления DNS и опционально DHCP для небольшой сети и подходит для маршрутизаторов с ограниченным доступом и брандмауэров.
Он может обслуживать имена локальных машин, которые не входят в глобальный DNS.
Он предназначен для использования в персональных компьютерах и небольших сетях, а не для больших сетей.
BIND Server DNS Cache: BIND означает «Berkeley Internet Name Domain».
Наиболее широко используемое программное обеспечение сервера имен, BIND – это программное обеспечение с открытым исходным кодом, которое реализует протоколы доменных имен (DNS) для Интернета.
BIND на сегодняшний день является наиболее широко используемым программным обеспечением DNS в Интернете, обеспечивая надежную и стабильную платформу.
1) Очистить кеш DNS на Ubuntu / Debian / LinuxMint
Используйте приведенную ниже команду для очистки кеша DNS в системах Ubuntu / Debian / Mint.
$ sudo /etc/init.d/dns-clean start [sudo] password for magesh: [Enter your root password] * Restoring resolver state. [ OK ]
2) Сброс кеша dns сервера BIND
Используйте приведенную ниже команду для сброса кеша BIND сервера dns
# /etc/init.d/named restart Stopping named: . [ OK ] Starting named: [ OK ] # service named restart Stopping named: . [ OK ] Starting named: [ OK ]
3) Очистить кэш nscd DNS
# /etc/init.d/nscd restart # service nscd restart # service nscd reload # nscd -i hosts
4) Очистить dnsmasq dns кэш
Используйте приведенную ниже команду для стирания кеша dnsmasq server dns
5) Очистка кеша dns в Windows
Используйте приведенную ниже команду для очистки кеша dns в Windows:
# ipconfig /flushdns Windows IP Configuration Successfully flushed the DNS Resolver Cache.
Clearing DNS Cache in Ubuntu and Linux Mint: A Step-by-Step Guide
DNS caching is a technique used by operating systems and applications to temporarily store DNS query results to reduce latency and improve the overall performance of internet browsing. However, sometimes it may become necessary to clear the DNS cache, especially when the cached records are outdated or causing connectivity issues. In this article, we will provide a step-by-step guide on how to flush the DNS cache in Ubuntu and Linux Mint.
Understanding DNS Caching
Unlike Windows and macOS, Ubuntu and Linux Mint do not cache DNS queries at the operating system level by default. However, many Linux distributions, including Ubuntu and Linux Mint, use caching DNS resolvers such as systemd-resolved, dnsmasq, or BIND (named) to cache DNS records. To flush the DNS cache on these systems, you need to clear the cache in the specific caching DNS resolver in use.
You may like:
Flushing DNS Cache in systemd-resolved
Systemd-resolved is a DNS resolver and caching service that comes pre-installed on newer versions of Ubuntu and Linux Mint. To flush the DNS cache in systemd-resolved, follow these steps:
- Open a terminal window.
- Run the following command:
sudo systemd-resolve --flush-caches
sudo systemd-resolve --statistics
Under “Cache”, you should see “Current Cache Size” set to 0.
Flushing DNS Cache in dnsmasq
Dnsmasq is a lightweight DNS and DHCP server often used in home networks and Linux distributions. To flush the DNS cache in dnsmasq, follow these steps:
- Open a terminal window.
- Restart the dnsmasq service using the following command:
sudo systemctl restart dnsmasq
Flushing DNS Cache in BIND (named)
BIND is a popular DNS server software used by many organizations worldwide. If your system uses BIND as a caching DNS resolver, you can clear its cache with these steps:
- Open a terminal window.
- Run the following command to flush the DNS cache:
Clearing DNS Cache in Web Browsers
Web browsers like Google Chrome and Mozilla Firefox also maintain their DNS caches to speed up web browsing. To clear the DNS cache in your browser, follow the instructions specific to your browser:
- Google Chrome: Navigate to “chrome://net-internals/#dns” and click the “Clear host cache” button.
- Mozilla Firefox: Type “about:networking#dns” in the address bar, then click the “Clear DNS Cache” button.
Conclusion
In this article, we provided a step-by-step guide on how to flush the DNS cache in Ubuntu and Linux Mint for various caching DNS resolvers like systemd-resolved, dnsmasq, and BIND. Additionally, we discussed how to clear the DNS cache in popular web browsers. Clearing the DNS cache can help resolve connectivity issues caused by outdated or incorrect DNS records, ensuring a smoother browsing experience.