Linux中如何清除DNS缓存

背景

今天一个同事在服务器上修改了/etc/hosts文件,将一个远程的域名解析到了本机remote.host.name 127.0.0.1。此时一切正常,所有请求都路由到了本机。但是将/etc/hosts文件中的配置删除后,域名还是解析到本机。此时很容易想到是DNS缓存。只要清除了DNS缓存就好了。Google了一下,发现好多文章都没有解决我的问题。最终找到此篇文章:How to Clear/flush DNS Cache on Linux,总算解决了问题。算是有学习到一点知识。

将本篇文章翻译如下,让更多需要的同学查看。

有些时候,由于DNS问题你不能访问某些网站。这很有可能是你的本地DNS缓存有问题。 对于这种情况,你需要重新启动操作系统DNS缓存服务。

DNS缓存代表域名缓存系统,是由计算机操作系统维护的临时数据库,其中包含你最近浏览的网站的IP地址。

我建议你了解学习一下Linux中可用的DNS工具程序,你可以利用这些工具检查所有DNS记录和相关信息,以进一步排除故障。 DNS实用程序有nslookupdighost

下面列出的是在各Linux发行版中主要使用的DNS缓存服务。

  • nscd DNS cache
  • dnsmasq dns cache
  • BIND server dns cache

nscd DNS Cache

nscd 是 name service cache daemon的缩写,Nscd是一个守护经常,提供最普通的域名请求的缓存服务。
默认的配置文件位于/etc/nscd.conf

dnsmasq DNS Cache

Dnsmasq是一个轻量的,小巧的,易于配置的DNS转发器和DHCP服务器。 它旨在向小型网络提供DNS和可选的DHCP,适用于资源受限的路由器和防火墙。 它可以服务于不在全局DNS中的本地计算机的名称。 它专为个人计算机使用和小型网络而设计,而不是大型网络。

BIND Server DNS Cache

BINDBerkeley Internet Name Domain 的缩写,是使用最为广泛的域名服务软件。BIND是实现互联网域名系统(DNS)协议的开源软件。 BIND是迄今为止在互联网上使用最广泛的DNS软件,提供强大而稳定的平台。

Flush DNS cache on Ubuntu/Debian/LinuxMint

Ubuntu/Debian/Mint系统中可以使用下面的命令来清除DNS缓存:

1
2
3
$ sudo /etc/init.d/dns-clean start
[sudo] password for magesh: [Enter your root password]
* Restoring resolver state... [ OK ]

Flush BIND server dns cache

使用下面的命令来清除BIND DNS服务器的DNS缓存:

1
2
3
4
5
6
7
# /etc/init.d/named restart
Stopping named: . [ OK ]
Starting named: [ OK ]

# service named restart
Stopping named: . [ OK ]
Starting named: [ OK ]

Flush nscd DNS cache

使用下面的命令来清除nscd服务的DNS缓存:

1
2
3
4
# /etc/init.d/nscd restart
# service nscd restart
# service nscd reload
# nscd -i hosts

Flush dnsmasq dns cache

使用下面的命令来清除dnsmasq服务的DNS缓存:

1
# /etc/init.d/dnsmasq restart

Flush dns cache in windows

使用下面的命令来清除windows系统的DNS缓存:

1
2
3
# ipconfig /flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.

我们正在准备所有文章,深入了解所有级别/阶段的Linux管理员。 如果文章对您有用,那么请花一点时间在我们的评论部分分享您的宝贵意见。

文章目录
  1. 1. 背景
  2. 2. nscd DNS Cache
  3. 3. dnsmasq DNS Cache
  4. 4. BIND Server DNS Cache
  5. 5. Flush DNS cache on Ubuntu/Debian/LinuxMint
  6. 6. Flush BIND server dns cache
  7. 7. Flush nscd DNS cache
  8. 8. Flush dnsmasq dns cache
  9. 9. Flush dns cache in windows
|