DNS设置错误,浏览器能够正常访问网站么?

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

大家在看到这个问题,第一反应是不是都认为:不能?

嘿嘿,我料定大家的正常思路也该是这样。

起初我也认为应该是这样但是前段时间遇到一件事让我改变了这个固有观念:

前段时间机房的dhcp服务关闭,我们不得已开始使用静态IP,此时由于老师没说DNS服务器在另外一台机器上,我们想当然的认为DNS的IP就是原来DHCP的IP,因为我们使用的是360浏览器,我发现设置好静态IP并不影响我们正常上网查资料。之后由于51cto的视频看不了,就去问老师原因,老师看了IP说DNS设置错误。老师一改就恢复正常。我当时就困惑了,DNS设置错误不就解析不了域名了么,怎么还能正常登录网站呢?然后就这个问题问了老师,老师也很意外,开始用抓包工具进行检测:同时打开IE和360,将DNS故意设置错误,抓包工具看到,IE很规矩的按照我设置的DNS去找域名进行解析,而360则直接访问51cto的IP地址。看到这的时候,;老师也蒙了。他也困惑360到底具备什么工具怎么会直接去访问网站的IP呢。
之后回家也测试了一番,用了IE,遨游,360急速版。依旧是将DNS故意设置错误,结果发现只有360急速能正常访问网站,其余两个浏览器都无法访问。


我们先不去追究它的原理到底是什么,我们先通过实验验证一下。

我们一般的环境下都是用的DHCP分配的IP,DNS。

实验前,我们先将DNS设置为:主DNS:1.2.3.4,副DNS:5.6.7.8

浏览器:我采用IE,Firefox,chrome,百度,360,Opera这六个浏览器进行测试。

之所以选它们是有一定原因的。

大家都知道目前三大主流浏览器内核:

IETridentFirefoxGeckoChromeWebKit(现在貌似又改进为Blink)。

选它们就是为了检验浏览器的内核是否进行了DNS内置的这些设置,而另外的三款则是用的比较有代表性的三个,Opera性能,速度都不错的浏览器;360则是主攻安全;百度,仅仅是个人喜好。

360百度这两个的浏览器内核是基于开源的WebKit进行的二次开发。如果错了还请指正

实验开始


准备工作:

wKioL1QATIbD-ftMAAF3669_Rs8038.jpg

wKiom1QAS2_zsFyuAAHeAwJ_Jqw476.jpg

            wKioL1QAT5vBPXz-AAOHM0r9ldA530.jpg

            我们主要对DNS进行分析,因此我们看的时候将其他的包过滤。只关注DNS

实验开始:

开启wireshark的抓包进程

wKioL1QATIbyU8MnAAJB0Bqh0oY866.jpg

             选择与外网连接的网卡class,之后点击start

先对IE,Chrome,Firefox进行测试:输入51cto网址

wKioL1QATIfwGhhyAADdTnA2hPo335.jpg

            IE未能打开网页

wKioL1QblNKRInJhAAC5_-7_nRw300.jpg

           Google加载过程

wKiom1QblLjTaK6SAABpr4NjFIQ507.jpg

           网页未能打开


wKioL1QjhsbzlJNnAALp8uMO0Js580.jpg

  Firefox加载过程

wKioL1Qjhsei9sbVAAMK96rFy1o222.jpg

 Firefox未能打开网页

wKioL1QjhsnwkR4gABEnvnaZlXc898.jpg

测试结果:失败

这三款内核的代表者很实在,在DNS设置错误的情况下老老实实的按照我设置的错误DNS查找对应的域名。网页没能打开。(其实这三者的DNS包都大同小异,因此就以一图表示了)


下面对Opera浏览器进行测试:输入51cto网址

wKioL1QjhsCgyuW_AAHZgQoOWIs723.jpg

 加载过程

wKiom1QjhpzQILTCAAHE4Di2o9k243.jpg

  加载结束,未能打开网页

wKiom1Qjhp7yEFJyABFX6E-hPLs814.jpg

结论:失败。Opera还是很实在的一款浏览器,依旧按我的设置进行查询。可惜了。


下面开始对百度进行测试:输入51cto网址

wKiom1QjhqeifbNWAAmUMqSvJ54411.jpg

 完美加载

wKioL1QjhsyBpP5WAAsCZC-Qxzs092.jpg

  百度成功打开网页

wKiom1QjhqrANugUABDWcuJm5sg860.jpg

 起初老老实实按规矩读取我设置的DNS

wKioL1QjhtDz2zkxABITHffuM3g164.jpg

  该图出现了144.144.144.144.

下面付了两张它http的包大家感兴趣可以看看,我是没看出什么特别的地方。

wKioL1QjhtKiOwyTABMTI6mSeMs057.jpg

wKiom1QjhrDTbZeDABHK60AswVw260.jpg

结论:成功。我们通过DNS包可以发现,起初百度也是老老实实按我设置的DNS进行域名查询,可没过多久突然蹦出了公共DNS:144.144.144.144。这是什么情况?我们先不讨论。

下面看看360的表现吧

依旧是输入51cto网站

wKiom1QjhraD_YOXAAcn6pXVXsQ967.jpg

   网页打开,但是图片看不到,加载的不够完美

wKiom1QjhreQDMrgAAp1ZnuWsmw872.jpg

wKioL1Qjht3A0kINABFEuPfUWEE303.jpg

 刚开始依旧按规矩来

wKioL1QjhuOwsQv4ABD8c3Ug_7c134.jpg

  这张图出现了公共IP8.8.8.8

wKioL1QjhuqQ83YqABDbLByzfto801.jpg

wKioL1QjhvDDXYHSABFZgrv6Jr4383.jpg

  下面也为360付了一张http的抓包图。

wKiom1Qjhs_R0AWDABS12t-IOHI726.jpg

结论:成功。起初360也是老老实实地按照我设置的DNS进行域名查询,没过多久,也是突然蹦出一个公共DNS:8.8.8.8

实验总结:

IE,Chrome,Firefox,Opera都失败。百度,360成功

IE,Chrome,Firefox的失败排斥了浏览器内核设置了DNS的这个可能。

百度,360的成功证明这个功能是他或他们独立开发出来的。

实验的结果可能让大家大感意外。最不被看好的两款浏览器反而在DNS设置错误的情况下不受影响的访问网站,为什么呢?

当初自己也对此很困惑,查了360所有的更新补丁说明也没有发现有DNS的相关说明,百度也是。

之后就在论坛发帖,没想到还有几位专家回复

他们的答案如下

你故意将DNS服务器地址设错,那么按照常理来说你不会有机会访问51cto。

但是请注意360安全浏览器是一个安全浏览器,作为浏览器最最忌讳的就是发生DNS劫持这会在根本上瓦解360的安全机制。换句话说,如果读取了本地设置作为默认DNS,那么如果这个DNS是被劫持的(也就是说,我可以把www.baidu.com,指向任意一个我伪造的IP地址或网站)那么就算360浏览器再牛,也没有办法保证用户安全。处于这个考虑,360必然内置安全的DNS服务器,直接使用360内置DNS IP来解析地址或者作为比对DNS是否被劫持的手段。由此可见。问题必然出现在360浏览器上。多说一句,DNS只提供域名解析功能所以,如果你直接使用IP地址进行访问,就算你没有配DNS一样可以得。因此如果360内置一个较为公正的DNS IP地址,然后所有在360浏览器的访问都有这个IP来解析,只有360能上网也就没有问题了。


我看后,有点懂了,之后又问了其他人。得出了一个目前自己比较信服的答案。

360和百度都是在开源浏览器内核上进行的2次开发与优化(很明显百度的优化做的更完善点),想到中国大多数人对DNS都不明白,更别提设置了。因此他们想到干脆我们的浏览器帮你把这个问题解决算了。之后他们就写了相应的策略,就是当本地的DNS服务器不能提供正常的服务时就将DNS指定到他们设置的比较公正安全的DNS上供解析域名。之后就出现了我们在上面看到的结果。之前好多人对360都有点抵触,其实客观来说,360的浏览器还是靠谱的。(真不是为360做广告啊)但是这两款浏览器的内部策略或者说内核到底是不是如此我就不知道了,如果360,百度浏览器的开发人员看到了,还请解释一下。这是目前我总结的自己信服的答案。大家有不同意见可以交流一下。


PS:我发现如果我们仔细观察生活的话,还是能发现不少有趣的问题的。










本文转自 紫色的茶碗 51CTO博客,原文链接:http://blog.51cto.com/chawan/1558074,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
Web App开发 前端开发 JavaScript
为什么浏览器兼容性在开发网站时很重要?
浏览器兼容性在网站开发中确实非常重要。
ly~
|
8天前
|
网络协议 应用服务中间件 Apache
如何在 DNS 记录中设置反向代理服务器?
要设置反向代理服务器,首先需安装配置软件(如 Nginx 或 Apache),并确保域名正确指向服务器 IP。接着,在 DNS 中设置 A 或 CNAME 记录,将域名指向反向代理服务器。然后编辑 Nginx 或 Apache 的配置文件,将请求转发至后端服务器。最后,通过浏览器访问域名测试配置是否成功,并使用工具检查请求流向和响应情况。
ly~
17 3
|
5天前
|
弹性计算 负载均衡 网络协议
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
|
21天前
|
Web App开发 存储 安全
Python编写脚本,打开浏览器输入网址,自动化登陆网站
Python编写脚本,打开浏览器输入网址,自动化登陆网站
28 4
|
21天前
|
XML 编解码 JavaScript
从浏览器的解析规则认识XSS防御
从浏览器的解析规则认识XSS防御
26 2
|
20天前
|
安全
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误
|
1月前
|
Web App开发 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【9月更文挑战第1天】当 Edge 浏览器提示“此网站被举报为不安全”时,可尝试:关闭 Microsoft Defender SmartScreen;检查网站安全性;清除缓存和 Cookie;更新 Edge 至最新版;或使用其他浏览器。若问题依旧,联系网站管理员和技术支持。同时,避免在不可信网站输入敏感信息,保护网络安全与隐私。
263 7
|
1月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
120 0
|
2月前
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
65 0
|
2月前
|
图形学 机器学习/深度学习 人工智能
颠覆传统游戏开发,解锁未来娱乐新纪元:深度解析如何运用Unity引擎结合机器学习技术,打造具备自我进化能力的智能游戏角色,彻底改变你的游戏体验——从基础设置到高级应用全面指南
【8月更文挑战第31天】本文探讨了如何在Unity中利用机器学习增强游戏智能。作为领先的游戏开发引擎,Unity通过ML-Agents Toolkit等工具支持AI代理的强化学习训练,使游戏角色能自主学习完成任务。文章提供了一个迷宫游戏示例及其C#脚本,展示了环境观察、动作响应及奖励机制的设计,并介绍了如何设置训练流程。此外,还提到了Unity与其他机器学习框架(如TensorFlow和PyTorch)的集成,以实现更复杂的游戏玩法。通过这些技术,游戏的智能化程度得以显著提升,为玩家带来更丰富的体验。
49 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多