DNS清除指南
一、什么是DNS缓存?
DNS(Domain Name System)缓存是互联网的重要组成部分,负责将人类易记的域名转换为机器可读的IP地址,从而实现网络通信,DNS缓存是DNS系统中的一个关键机制,通过临时存储已解析的域名信息,加速域名解析过程,提高网络访问速度和效率,DNS缓存存在于多种层级,包括本地计算机缓存、路由器缓存和ISP(互联网服务提供商)缓存。
二、DNS解析过程
1、用户请求:用户在浏览器中输入一个网址(如www.example.com)。
2、本地缓存查询:操作系统首先在本地DNS缓存中查找该域名的解析结果,如果找到,则直接返回对应的IP地址。
3、路由器缓存查询:如果本地缓存中没有找到,查询请求将发送到路由器,路由器也会检查其缓存中是否存在该域名的解析结果。
4、ISP缓存查询:如果路由器缓存中也没有找到,查询请求将发送到ISP的DNS服务器,ISP的DNS服务器同样会检查其缓存。
5、权威DNS服务器查询:如果所有缓存层级都没有找到结果,ISP的DNS服务器将查询权威DNS服务器,获取域名的最终解析结果,并将其返回给用户。
三、如何清除DNS缓存?
尽管DNS缓存具有诸多优势,但在某些情况下,缓存中的数据可能会过期或变得不准确,导致访问问题,此时需要清除DNS缓存,以下是在不同操作系统上清除DNS缓存的方法:
1. Windows系统
对于所有Windows版本,清除DNS缓存的过程都是相同的,你需要使用管理员权限打开命令提示符并运行ipconfig /flushdns
命令。
Windows 10和Windows 8:
1. 在Windows搜索栏中键入cmd
。
2. 右键单击“命令提示符”,然后右击“以管理员身份运行”,这将打开“命令提示符”窗口。
3. 在命令行上,键入以下行,然后按回车:
ipconfig /flushdns
4. 成功后,系统将返回以下消息:
Windows IP Configuration Successfully flushed the DNS Resolver Cache.
Windows 7:
1. 单击开始按钮。
2. 在开始菜单搜索文本框中键入cmd
。
3. 右键单击“命令提示符”,然后单击“以管理员身份运行”,这将打开“命令提示符”窗口。
4. 在命令行上,键入以下行,然后按回车:
ipconfig /flushdns
5. 成功后,系统将返回以下消息:
Windows IP Configuration Successfully flushed the DNS Resolver Cache.
2. MacOS系统
根据MacOS的版本不同,刷新缓存的命令略有不同,这些命令必须以具有系统管理员特权的用户(sudo用户)身份运行。
MacOS最新版本:
1. 打开查找器。
2. 转到应用程序 > 实用程序 > 终端,这将打开终端窗口。
3. 在命令行中,输入以下行,然后按回车:
sudo killall HUP mDNSResponder
4. 输入你的sudo密码,然后再次按回车,成功后,系统不会返回任何消息。
早期版本的MacOS:
MacOS 版本10.11和10.9:
sudo dscacheutil flushcache; sudo killall HUP mDNSResponder
MacOS 版本10.10:
sudo discoveryutil mdnsflushcache; sudo discoveryutil udnsflushcaches
MacOS 版本10.6和10.5:
sudo dscacheutil flushcache
3. Linux系统
在Linux上,除非已安装并运行诸如SystemdResolved,DNSMasq或Nscd之类的缓存服务,否则没有操作系统级DNS缓存,根据Linux发行版和所使用的缓存服务,清除DNS缓存的过程有所不同。
SystemdResolved:大多数现代Linux发行版,例如Ubuntu 18.04,都使用systemd解析的服务来缓存DNS条目。
1. 要查找服务是否正在运行,请运行:
sudo systemctl isactive systemdresolved.service
2. 如果该服务正在运行,则将打印命令active,否则将看到inactive。
3. 要清除系统解析的DNS缓存,你需要键入以下命令:
sudo systemdresolve flushcaches
4. 成功后,该命令不会返回任何消息。
Dnsmasq:Dnsmasq是轻量级的DHCP和DNS缓存名称服务器,如果你的系统使用Dnsmasq作为缓存服务器,则要清除DNS缓存,需要重新启动Dnsmasq服务:
sudo systemctl restart dnsmasq.service
或者
sudo service dnsmasq restart
NSCD:NSCD是一个缓存守护程序,它是大多数基于RedHat的发行版的首选DNS缓存系统,如果系统使用NSCD来清除DNS缓存,则需要重新启动NSCD服务:
sudo systemctl restart nscd.service
或者
sudo service nscd restart
四、清除浏览器DNS缓存
大多数现代的Web浏览器都有一个内置的DNS客户端,以防止每次访问该网站时重复查询,以下是一些常见浏览器清除DNS缓存的方法:
1. Google Chrome
1、打开一个新标签,然后在地址栏输入chrome://netinternals/#dns
。
2、点击“清除主机缓存”按钮。
3、如果那对你不起作用,请尝试清除缓存和Cookie,按下CTRL+Shift+Del以打开“清除浏览数据”对话框窗口,选择一个时间范围,选择“所有时间”以删除所有内容,选中“Cookie和其他站点数据”和“缓存的图像和文件”框,点击“清除数据”按钮,此方法适用于所有基于Chrome的浏览器,包括Chromium,Vivaldi和Opera。
2. Firefox火狐浏览器
1、在右上角,单击汉堡包图标☰以打开Firefox的菜单,点击⚙Options (Preferences)链接,单击左侧的“隐私和安全性”或“隐私”选项卡,向下滚动到该History部分,然后单击Clear History…按钮,选择要清除的时间范围,选择“所有内容”以删除所有内容,选择所有框,然后单击“立即清除”,如果这对你不起作用,请尝试以下方法并暂时禁用DNS缓存,打开一个新标签,然后在Firefox的地址栏中输入about:config,搜索network.dnsCacheExpiration,将值暂时设置为0,然后单击“确定”,改回默认值,然后单击“确定”,搜索network.dnsCacheEntries,将值暂时设置为0,然后单击“确定”,改回默认值,然后单击“确定”。
五、相关问题与解答
1. 为什么需要清除DNS缓存?
虽然DNS缓存可以加速网络访问速度,但在某些情况下,缓存中的记录可能变得过时或不准确,这可能导致无法访问某些网站或出现其他网络问题,定期清除DNS缓存或在遇到网络问题时清除DNS缓存可以帮助确保网络连接的稳定性和准确性,更换DNS服务器后也需要清除旧的DNS缓存以确保新的DNS设置生效。
2. 如何更改DNS服务器并清除DNS缓存?
要更改DNS服务器并清除DNS缓存,您可以按照以下步骤操作:
更改DNS服务器:在Windows系统中,您可以通过“控制面板” > “网络和共享中心” > “更改适配器设置” > 右键单击您的网络连接并选择“属性” > 双击“Internet协议版本4 (TCP/IPv4)”来更改DNS服务器地址,在MacOS中,您可以通过“系统偏好设置” > “网络” > 选择您的网络连接并点击“高级” > “DNS”选项卡来更改DNS服务器地址,在Linux中,您可以编辑/etc/resolv.conf
文件或使用NetworkManager等工具来更改DNS服务器地址。
清除DNS缓存:根据您的操作系统类型(Windows、MacOS或Linux),按照上述步骤清除DNS缓存,这将确保您的计算机停止使用旧的DNS缓存并开始使用新的DNS服务器进行域名解析。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/79657.html