https://blog.csdn.net/bangshao1989/article/details/121913780
https://juejin.cn/post/7065238621866950693
https://developer.aliyun.com/article/1047538#:~:text=%E6%9C%AC%E5%9C%B0%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B0%86%E8%8E%B7%E5%8F%96%E5%88%B0%E4%B8%8E%E5%9F%9F%E5%90%8D%E5%AF%B9%E5%BA%94%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%E8%BF%94%E5%9B%9E%E7%BB%99%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%B0%86%E5%9F%9F%E5%90%8D%E5%92%8C%20IP%20%E5%9C%B0%E5%9D%80%E7%9A%84%E5%AF%B9%E5%BA%94%E5%85%B3%E7%B3%BB%E4%BF%9D%E5%AD%98%E5%9C%A8%E7%BC%93%E5%AD%98%E4%B8%AD%EF%BC%8C%E4%BB%A5%E5%A4%87%E4%B8%8B%E6%AC%A1%E5%88%AB%E7%9A%84%E7%94%A8%E6%88%B7%E6%9F%A5%E8%AF%A2%E6%97%B6%E4%BD%BF%E7%94%A8%E3%80%82%201,%E8%AF%B7%E6%B1%82%EF%BC%8C%E8%AF%B7%E6%B1%82%E5%9F%9F%E5%90%8D%20www.baidu.com%20%28%20http%3A%2F%2Fwww.baidu.com%29%20%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%E3%80%82%20%E6%9B%B4%E5%A4%9A%E9%A1%B9%E7%9B%AE
计算机只能识别纯数字的ip地址,不能直接读取域名,因此像访问的话需要将域名翻译成ip地址,dns解析就承担翻译的工作
下面以www.baidu.com为例,做DNS解析过程详解
前两步在本地电脑上,后面在dns服务器上
- 查看【浏览器缓存】,看是否有这个域名对应的ip地址,有则解析过程结束
- 查看【操作系统缓存】,看是否有这个域名对应的dns解析结果,有则返回ip
- 请求本地dns服务器,查看是否有缓存结果,有则返回
- 本地dns服务器请求根dns服务器
- 根dns服务器返回顶级dns服务器地址
- 本地dns服务器请求顶级dns服务器
- 顶级dns服务器会返回(baidu.com)域名服务器地址
- 本地dns服务器请求(baidu.com)域名服务器
- 域名服务器返回ip地址给dns服务器
- 本地dns服务器返回ip地址给客户端,并缓存域名和ip的对应关系
DNS劫持
dns劫持是一种网络攻击,攻击者篡改了dns的解析结果,将用户的请求重定向到攻击者指定的恶意网站上,导致用户遭到欺骗或遭受恶意软件感染
一般有两种方式
修改dns服务器配置
攻击者入侵dns服务器,修改起配置,将特定的域名解析到攻击者的ip地址,当用户访问该域名时,就会被重定向到恶意网站,达到劫持目的
修改本地dns缓存
攻击者发送特定的dns响应报文,达到欺骗本地dns的目的,将缓存中特定的域名解析结果替换为攻击者ip地址,当用户发送该域名请求时,会返回攻击者ip,从而重定向到恶意网站
防止dns劫持
- 使用可信任的dns服务器
- 安装防病毒的软件和防火墙,定期更新
- 不随意连接公共wifi等不安全网络
- 发现跳转到了不正常页面可通过重新输入网站ip确认是否被劫持