Linux DNS Cache Clear: A Complete Step-by-Step Guide

Clearing your DNS cache on Linux is an essential troubleshooting step when facing network connectivity issues or after making DNS changes. This comprehensive guide will show you how to effectively clear the DNS cache across different Linux distributions and DNS resolvers.

Whether you’re a system administrator managing servers or a Linux desktop user, understanding how to clear your DNS cache can help resolve various networking problems and ensure your system uses the most up-to-date DNS records.

In this guide, we’ll cover multiple methods to clear the DNS cache on Linux, including systemd-resolved, NSCD, and DNSMasq, ensuring you can handle any situation regardless of your system’s configuration.

Table of Contents

Understanding DNS Caching in Linux

DNS caching is a temporary database maintained by your operating system that stores recent DNS lookups. This cache helps improve browsing speed by avoiding repeated DNS queries for previously visited websites. However, when DNS records change, this cached information can become outdated, leading to connectivity issues.

Different Linux distributions use various DNS caching services:

  • systemd-resolved (Ubuntu, Fedora)
  • NSCD (Name Service Caching Daemon)
  • DNSMasq
  • BIND

Method 1: Clearing systemd-resolved Cache

systemd-resolved is the default DNS resolver in many modern Linux distributions, including Ubuntu and Fedora. Here’s how to clear its cache:

Check if systemd-resolved is running:

    systemctl status systemd-resolved

    Clear the DNS cache:

      sudo systemd-resolve --flush-caches

      Verify the cache is cleared:

        sudo systemd-resolve --statistics

        Method 2: Clearing NSCD Cache

        If your system uses NSCD for DNS caching, follow these steps:

        Check if NSCD is running:

          systemctl status nscd

          Clear the DNS cache:

            sudo service nscd restart

            Alternatively, you can use:

            sudo nscd -i hosts

            Method 3: Clearing DNSMasq Cache

            For systems using DNSMasq:

            1. Check if DNSMasq is running:
            systemctl status dnsmasq
            1. Clear the cache by restarting the service:
            sudo systemctl restart dnsmasq

            Verifying DNS Cache is Cleared

            After clearing the cache, you can verify it’s working correctly by:

            1. Using dig to query a domain:
            dig example.comCode language: CSS (css)
            1. Check the “Query time” in the output – it should be higher than usual for the first query after clearing the cache.

            Common Issues and Troubleshooting

            Permission Denied Errors

            If you encounter permission errors, ensure you’re using sudo for commands that require root privileges:

            sudo systemd-resolve --flush-caches

            Service Not Found

            If a service isn’t found, your system might be using a different DNS resolver. Check your system’s configuration:

            cat /etc/resolv.conf

            Cache Not Clearing

            If problems persist after clearing the cache:

            1. Restart the network manager:
            sudo systemctl restart NetworkManager
            1. Check for any custom DNS configurations:
            cat /etc/NetworkManager/system-connections/*

            Best Practices

            1. Regular Maintenance: Clear your DNS cache periodically, especially after making DNS changes.

            2. Documentation: Keep track of which DNS resolver your system uses for future reference.

            3. Backup: Always backup important network configurations before making changes.

            4. Testing: After clearing the cache, test connectivity to ensure everything works correctly.


            Conclusion

            Clearing your DNS cache on Linux is a straightforward process once you identify which DNS resolver your system uses. Remember to use the appropriate method for your distribution and DNS caching service.

            By following this guide, you can effectively manage your system’s DNS cache and resolve related networking issues. If you’re experiencing persistent DNS problems, consider consulting your distribution’s documentation or seeking help from the community.

            Remember to always run these commands with appropriate permissions and backup any important configurations before making changes to your system.

            Learn more about Linux System Administration
            Understanding Linux Network Configuration

            Leave a Comment

            This site uses Akismet to reduce spam. Learn how your comment data is processed.

            Share via
            Copy link
            Powered by Social Snap