如何在 Linux/Unix/Mac 下清除 DNS 查询缓存

我在Linux下使用拨号连接上网,频繁的拨号断线造成DNS的问题。我如何在Linux/Unix发行版下使用shell命令清除DNS缓存?

在MS-Windows下,你可以使用ipconfig命令来清除dns缓存。然而,Linux和Unix提供了不同的方法来清除缓存。Linux可以运行 nscd 或者 BIND 或者 dnsmasq 作为名称服务缓存守护进程。大型或者工作组服务器可能使用BIND或者dnsmasq作为专用缓存服务器来加速查询。

如何: 清除 nscd dns 缓存

Nscd 会缓存libc发起的名称服务的请求。如果把检索NSS数据看做很慢,那么nscd能够显著加快连续访问同一数据的速度,并能提高整个系统的性能。只需重启nscd即可刷新缓存:

1. $ sudo /etc/init.d/nscd restart

1. # service nscd restart

1. # service nscd reload

这个守护进程给最常用的名称服务请求提供了高速缓存。默认的配置文件/etc/nscd.conf,其决定了高速缓存守护进程的行为。

清除 dnsmasq dns 缓存

dnsmasq的是一个轻量级的DNS、TFTP和DHCP服务器。它的目的是给局域网提供配对的DNS和DHCP服务。 dnsmasq接受DNS查询,并从一个小的本地高速缓存应答它们或将其转发到一个真正的递归DNS服务器。该软件也被安装在很多便宜的路由器上来缓存DNS查询。只需重新启动dnsmasq的服务来清除DNS缓存:

1. $ sudo /etc/init.d/dnsmasq restart

或者

1. # service dnsmasq restart

清除BIND缓存服务器的dns缓存

一台BIND缓存服务器从另一台服务器(区域主)响应主机的查询而获得信息,然后保存(缓存)数据到本地。您所要做的就是重启BIND以清除其缓存:

1. # /etc/init.d/named restart

你也可以使用下面rndc命令来清除所有的缓存:

1. # rndc restart

或者

1. # rndc exec

BIND v9.3.0 及其以上版本支持一个清除一个特定域名的所有记录缓存的命令:rndc flushname。本例中刷新cyberciti.biz相关域的所有记录:

1. # rndc flushname cyberciti.biz

同样也可以清除BIND View。比如,LAN和WAN的View可以用下面的命令清除:

1. # rndc flush lan

2. # rndc flush wan

给 Mac OS X Unix 用户的提示

Mac下用root用户输入下面的命令:

1. # dscacheutil -flushcache

或者

1. $ sudo dscacheutil -flushcache

如果你正在使用OSX 10.5 或者更早的版本,尝试使用下面的命令:

1. lookupd -flushcache

关于 /etc/hosts 文件的一个提示

/etc/hosts用作静态查询主机的表格。你需要在类Unix操作系统下依据你的要求移除并且/或者更新它:

1. # vi /etc/hosts

示例输出:

1. 127.0.0.1 localhost

2. 127.0.1.1 wks01.WAG160N wks01

3. # The following lines are desirable for IPv6 capable hosts

4. ::1 ip6-localhost ip6-loopback

5. fe00::0 ip6-localnet

6. ff00::0 ip6-mcastprefix

7. ff02::1 ip6-allnodes

8. ff02::2 ip6-allrouters

9. 10.37.34.2 build

10. 192.168.1.10 nas01

11. 192.168.1.11 nas02

12. 192.168.1.12 nas03

13. #192.168.2.50 nfs2.nixcraft.net.in nfs2

14. #192.168.2.51 nfs1.nixcraft.net.in nfs1

15. 172.168.232.50 nfs1.nixcraft.net.in nfs1

16. 172.168.232.51 nfs2.nixcraft.net.in nfs2

17. 192.168.1.101 vm01

参考

时间: 2024-11-06 17:20:11

如何在 Linux/Unix/Mac 下清除 DNS 查询缓存的相关文章

在 Linux/Unix/Mac 下清除 DNS 查询缓存

在MS-Windows下,你可以使用ipconfig命令来清除dns缓存.然而,Linux和Unix提供了不同的方法来清除缓存.Linux可以运行 nscd 或者 BIND 或者 dnsmasq 作为名称服务缓存守护进程.大型或者工作组服务器可能使用BIND或者dnsmasq作为专用缓存服务器来加速查询. 如何: 清除 nscd dns 缓存 Nscd 会缓存libc发起的名称服务的请求.如果把检索NSS数据看做很慢,那么nscd能够显著加快连续访问同一数据的速度,并能提高整个系统的性能.只需重

[Linux]在Mac下配置Linux服务器并安装Nginx+PHP

Linux 安装Debian系统 我安装的是Debian7.5的系统,Debian的软件包管理和升级十分方便,而且系统也很稳定.安装盘可以去华中科技大学镜像.网易开源镜像站或者中国科技大学镜像下载,和官网一样,一般下载的时候会提供DVD-1.DVD-2和DVD-3的下载,后面二者均是一些不太流行的软件,只需要下载安装DVD-1即可. 修改sources.list 装好系统之后的第一件事情就是修改Debian的源,因为默认的配置会访问镜像介质,修改源可以直接联网通过apt-get获取并安装软件包,

Linux/Unix mac 命令笔记

bg和fg Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和 bg 命令,让你轻松调度正在运行的任务. 假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示:[1]+ Stopped /root/bi

如何在Linux桌面环境下自动启动程序?

转自:http://os.51cto.com/art/201401/426464.htm 有时候,当你登录进入到Linux桌面后,可能想自动启动某个程序.这类启动程序在你登录进入到桌面后,可以进行面向整个系统的配置(比如自动代理),或者针对特定用户的桌面定制(比如Conky). 大多数Linux桌面环境有各自的图形用户界面(GUI),让用户可以配置针对特定用户的自动启动程序或服务. 我在本教程中将介绍如何在各种Linux桌面环境下,自动启动某个程序. GNOME桌面环境 在终端中运行这个命令,启

linux命令行学习-dig(DNS查询器)

在web开发中,总要熟悉的就是http协议,而发起一个http开始前最先要经历的一个过程就是DNS解析.简单说就是域名如何最终解析到实际服务器ip的过程. 而在研究DNS解析和排除DNS解析类故障问题的时候一个强大的工具就是dig.和他对应的有个比较传统的命令nslookup,不过dig作为更新的命令,其强大而简洁可定制的输出也使得运维其开发人员使用. 实例1(访问服务器本地DNSserver查询根域名服务器):  ~#: dig ; <<>> DiG 9.3.6-P1-RedHa

清除DNS解析缓存

接下来在弹出的命令提示符窗口中输入“ipconfig /displaydns”,我们会看到系统中有多条我们之前使用过的DNS地址,如下图所示 5 然后,我们接着输入命令“ipconfig /flushdns”.这条命令的作用是清除DNS解析缓存,如下图所示 6 最后,我们打开浏览器,重新输入想要打开的网址.

【Python】Windows, Linux/UNIX, Mac OS X 下安裝 Python

下載地址:https://www.python.org/downloads/ 下載對應系統.對應位數的版本即可. [Windows] 一般選擇"Windows x86-64 executable installer",即 64 位兼容 32 位的可執行安裝程序. 打開安裝程序,先勾選"Add Python X.X to PATH",代表安裝時將 Python 對應版本目錄添加到 PATH 系統環境變量中,再選擇"Customize installation

Linux/Unix环境下的make和makefile

介绍一下make及其描述文件makefile Makefile文件 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间 的相互关系并自动维护编译工作.而makefile 文件需要按照某种语法进行编写,文件 中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖 关系. 在 UNIX 系统中,习惯使用 Makefile 作为 makfile 文件.如果要使用其 他文件作为 makefile,则可利用类似下面的 make 命令选项指定 makefil

Linux/Unix环境下的make命令详解(转)

无论是在linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系.而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难.而make工具则可自动完成编译工作,并且可以