如何刷新Linux/UNIX DNS缓存
如何使用Shell提示符刷新UNIX/Linux发行版下的DNS缓存?
在MS-Windows下,您可以使用ipconfig命令刷新dns缓存。
但是,Linux和UNIX提供了多种刷新缓存的方法。
Linux可以运行nscd或者BIND或者dnsmasq作为名称服务缓存守护程序。
大型工作组服务器可以将BIND或者dnsmasq用作专用的缓存服务器,以加快查询速度。
如何刷新nscd dns缓存
Nscd将libc发出的请求缓存到名称服务。
如果检索NSS数据相当昂贵,则nscd能够显着加快对相同数据的连续访问,并提高整体系统性能。
只需重新启动nscd:
$ sudo /etc/init.d/nscd restart
或者
# service nscd restart
或者
# service nscd reload
该守护程序为最常用的名称服务请求提供缓存。
缺省配置文件/etc/nscd.conf确定缓存守护程序的行为。
刷新dnsmasq dns缓存
dnsmasq是轻量级的DNS,TFTP和DHCP服务器。
它旨在向局域网提供耦合的DNS和DHCP服务。
Dnsmasq接受DNS查询,并从小型本地缓存中答复它们,或者将其转发到真实的递归DNS服务器。
该软件还安装了许多廉价路由器来缓存dns查询。
只需重新启动dnsmasq服务即可清除dns缓存:
$ sudo /etc/init.d/dnsmasq restart
或者
# service dnsmasq restart
刷新缓存BIND服务器DNS缓存
缓存的BIND服务器响应主机查询从其他服务器(区域主服务器)获取信息,然后将数据本地保存(缓存)。
您所需要做的就是重新启动绑定以清除其缓存:
# /etc/init.d/named restart
您还可以使用rndc命令,如下所示清除所有缓存:
# rndc restart
或者
# rndc exec
BIND v9.3.0及更高版本将支持使用rndc flushname命令清除追加到特定域名的所有记录。
在此示例中,刷新所有关联到theitroad.local域的记录:
# rndc flushname theitroad.local
也可以清除BIND视图。
例如,可以使用以下命令刷新lan和wan视图:
# rndc flush lan # rndc flush wan
关于Mac OS X Unix用户的说明
以root用户身份执行以下命令:
# dscacheutil -flushcache
或者
$ sudo dscacheutil -flushcache
如果您使用的是OS X 10.5或者更早版本,请尝试以下命令:
lookupd -flushcache
关于/etc/hosts文件的注释
/etc/hosts充当主机名的静态表查找。
您需要按照Unix等操作系统下的要求删除和/或者更新记录:
# vi /etc/hosts
输出示例:
127.0.0.1 localhost 127.0.1.1 wks01.WAG160N wks01 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 10.37.34.2 build 192.168.1.10 nas01 192.168.1.11 nas02 192.168.1.12 nas03 #192.168.1.50 nfs2.theitroad.com nfs2 #192.168.1.51 nfs1.theitroad.com nfs1 172.168.232.50 nfs1.theitroad.com nfs1 172.168.232.51 nfs2.theitroad.com nfs2 192.168.1.101 vm01