DNS详细解释
DNS缓存(DNS Cache)是指操作系统或应用程序在本地保存的一份“域名与IP地址的对应关系”记录。
1. DNS的基本作用
当你访问一个网站(比如 www.jd.com)时,计算机需要先把这个域名转换成实际的IP地址(比如 211.151.90.53),这个转换过程叫做“域名解析”,通常是通过DNS(域名系统,Domain Name System)服务器来完成的。
2. 为什么要有DNS缓存
每次访问网站都去DNS服务器查询,会增加网络延迟和负担。为了提高效率,操作系统、浏览器等会把已经解析过的域名-IP映射,暂时保存在本地,这份记录就是DNS缓存。
3. DNS缓存的好处
- 加快网站访问速度:下次再访问同一个网站时,直接从本地读取IP地址,不用再去DNS服务器查询,速度更快。
- 减少网络流量:减少了对DNS服务器的请求次数。
- 减轻DNS服务器负担。
4. DNS缓存的缺点
- 缓存过期:如果网站IP更换,而缓存还没更新,可能会导致访问失败或访问到错误的服务器。
- DNS污染:如果本地缓存被篡改,可能会被引导到恶意网站。
5. DNS缓存的刷新
有时修改了
/etc/hosts
文件或网站IP变更,需要“刷新DNS缓存”(也叫清空DNS缓存),让系统重新获取最新的域名-IP关系。在macOS上,可以用以下命令刷新DNS缓存:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
6. 查看本地DNS缓存
不同操作系统有不同命令。例如在macOS,可以用:
sudo killall -INFO mDNSResponder
(输出会在系统日志里)
总结:
DNS缓存就是本地保存的“域名与IP地址”映射记录,用来加速访问和减少网络请求。遇到网络异常、网站打不开、hosts文件修改无效等情况,可以尝试刷新DNS缓存。
hosts 文件
/etc/hosts
文件是一个本地的“域名解析”文件。在 macOS、Linux 以及 Windows 等操作系统中都有类似的文件。
主要作用:
域名到IP的映射
它可以把域名(如www.example.com
)直接映射到一个指定的IP地址。当你在浏览器或应用程序中访问这个域名时,系统会先查找hosts
文件,如果找到对应的IP地址,就直接使用这个IP,而不用去DNS服务器查询。加速访问
通过在hosts
文件中添加常用网站的域名和IP,可以减少DNS查询时间,加快访问速度(实际效果有限)。屏蔽网站
可以把某些域名映射到127.0.0.1
(本机地址),这样访问这些域名时就会被重定向到本地,从而达到屏蔽某些网站的效果。例如:127.0.0.1 www.blockedwebsite.com
测试和开发
在开发网站时,可以把开发服务器的IP和测试域名写入hosts
文件,方便本地测试,而不会影响到线上环境。
文件内容示例:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
192.168.1.10 mytest.local
注意事项:
hosts
文件的更改只对本机有效。- 每次修改后可能需要刷新DNS缓存。
- 编辑时需要管理员权限。