Aug
20
为了提高DNS 解析的记录,很多操作系统都会提供缓存DNS 记录的功能,但是,这可能会为测试DNS 服务或域名设定带来麻烦。为了测试出准确的结果,我们需要强制刷新本地 DNS 缓存记录。这里提供Windows 与 Linux 客户端上的操作说明。
一、Windows 客户端
Windows 2000以上系统,默认自动启动了DNS Client服务,该服务提供了客户端的名字解析与缓存服务,用户的DNS查询结果会在本地得到缓存。以下是该服务的描述:
可以通过下面的命令获得缓存中的DNS 结果:
而下面的命令可以强制清除这些DNS 缓存:
如果您觉得DNS Client服务带来麻烦,可以用在控制面板——服务 中停止,或使用下面的命令停止该服务:
重新启动该服务:
二、Linux 客户端
以红旗Asianux 3.0 为例,同样提供一个叫nscd 的本地DNS 缓存的服务。但与Windows 平台不同的是,该服务默认是关闭的:
该服务除了提供DNS 缓存外,可提供NIS 加速的作用。下面是nscd 的描述:
如果我们要激活本地DNS 缓存,启动该服务即可:
同样的,关闭该服务,可以避免DNS 缓存带来的问题:
需要注意的是,该服务没有提供强制删除其缓存结果的命令。但是,我们可以通过删除其后台数据库记录信息,清空这些缓存:
三、Linux Bind 服务
有时候,我们的客户端是处于某台DNS 缓存服务器后面的。常见的情况是,作为NAT 网关的Linux 服务器,通过bind 服务,提供DNS 缓存和转发功能。这可通过配置/etc/named.conf,加入forward来实现:
这时,客户端对外的DNS 解析结果,除保留在客户端本地的DNS 缓存中,同样会保留在这台网关服务器上。还有一种情况就是,当我们修改named 提供的DNS服务时,也需要刷新缓存。
bind 提供的rndc 命令可以清空缓存的功能:
一、Windows 客户端
Windows 2000以上系统,默认自动启动了DNS Client服务,该服务提供了客户端的名字解析与缓存服务,用户的DNS查询结果会在本地得到缓存。以下是该服务的描述:
引用
DNS 客户端服务(dnscache)缓存域名系统(DNS)名称并注册该计算机的完整计算机名称。如果该服务被停止,将继续解析 DNS 名称。然而,将不缓存 DNS 名称的查询结果,且不注册计算机名称。如果该服务被禁用,则任何明确依赖于它的服务都将无法启动。
可以通过下面的命令获得缓存中的DNS 结果:
ipconfig /displaydns
而下面的命令可以强制清除这些DNS 缓存:
ipconfig /flushdns
如果您觉得DNS Client服务带来麻烦,可以用在控制面板——服务 中停止,或使用下面的命令停止该服务:
net stop dnscache
重新启动该服务:
net start dnscache
二、Linux 客户端
以红旗Asianux 3.0 为例,同样提供一个叫nscd 的本地DNS 缓存的服务。但与Windows 平台不同的是,该服务默认是关闭的:
引用
# chkconfig --list|grep nscd
nscd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
nscd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
该服务除了提供DNS 缓存外,可提供NIS 加速的作用。下面是nscd 的描述:
引用
Nscd caches name service lookups and can dramatically improve performance with NIS+, and may help with DNS as well.
如果我们要激活本地DNS 缓存,启动该服务即可:
# service nscd start
同样的,关闭该服务,可以避免DNS 缓存带来的问题:
# service nscd stop
需要注意的是,该服务没有提供强制删除其缓存结果的命令。但是,我们可以通过删除其后台数据库记录信息,清空这些缓存:
# rm /var/db/nscd/hosts
# service nscd restart
# service nscd restart
三、Linux Bind 服务
有时候,我们的客户端是处于某台DNS 缓存服务器后面的。常见的情况是,作为NAT 网关的Linux 服务器,通过bind 服务,提供DNS 缓存和转发功能。这可通过配置/etc/named.conf,加入forward来实现:
引用
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
forward only;
forwarders {
202.96.128.86;
202.96.134.133;
};
};
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
forward only;
forwarders {
202.96.128.86;
202.96.134.133;
};
};
这时,客户端对外的DNS 解析结果,除保留在客户端本地的DNS 缓存中,同样会保留在这台网关服务器上。还有一种情况就是,当我们修改named 提供的DNS服务时,也需要刷新缓存。
bind 提供的rndc 命令可以清空缓存的功能:
# rndc flush