上网强跳广告/页面劫持:其实是DNS被'污染”!
自从进入网络时代,大家的生活也愈加多姿多彩起来,但也多出了很多烦恼。例如,信息海洋中时不时出现的大群垃圾,以及深渊,就令人防不胜防。
这里说的正是上网过程中遇到莫名其妙的网页跳转,好端端的一个网页,突然就变成了满屏的广告;或者本来能正常访问的页面,突然就打不开了,但QQ之类的软件却可以正常登录。这到底是什么原因造成的呢?其实出现了这些令人困扰的异常现象,意味着你可能是DNS劫持、投毒的受害者。
虽然我们经常上网,但并不是每个人都对开启一个网页背后的机制了如指掌。轻点鼠标,网页即呈现在眼前,何其熟悉的操作,但这熟悉操作的背后,却蕴藏着一套环环相扣的流程。
从用户点击鼠标、敲下回车,到网页显示,信息首先会通过浏览器发送,然后经路由中转,接着DNS将域名解析成IP,找到服务器后服务器会发送内容给用户,接着再由路由转发数据,最后浏览器将内容呈现给用户。视实际情况,这个过程中还可能存在更多关卡,比如说防火墙、代理服务器等。
在这套流程中,无论浏览器、路由、DNS、服务器等任一环节中出了叛徒,都有可能导致网页无法访问。而被人篡改最多的,或许就是DNS了。
DNS全称是域名系统,它所起到的作用,在于把域名解析为IP地址。我们能访问到某个网站,靠的是连接到该网站服务器的IP地址,DNS在这里面起到的作用就是把“www.baidu.com”解析成“123.125.114.144”这样的IP地址,让你能够连接到这地址的服务器来访问网站。
把网址解析为IP地址,就是DNS所起到的作用了
在上网的流程中,有太多的因素可以影响到DNS,例如你的PC的设置、路由器的设置、运营商的设置等等,DNS一旦出现了差错,就会无法把域名解析成为正确的IP地址,我们自然也无法访问到正确的页面。因此,如果你发现开启不了网页,但QQ这样直连IP的网络软件却可以正常服务,那DNS就是一个非常值得怀疑的原因。
DNS这个环节可以被太多因素影响,所以不少利益相关者都会在这里面做手脚。例如,DNS劫持就是非常常见的广告投放手段。
一般情况下,如果你不特别设置DNS服务器,那么DNS服务器就会由运营商来提供。按理来说,运营商提供的DNS服务器应该用于正确地为你提供IP跳转,但偏偏很多运营商DNS服务器的人品都不堪入目。
你常常就能看到运营商会把你给跳转到什么开通上网套餐之类的页面,甚至会出现你输入A购物网但却被跳转到竞争对手B的情况,这就是所谓的DNS劫持。
开个百度,整个网页都被强制跳转到XX娱乐城去了,这就是典型的DNS劫持
要对付运营商的DNS劫持,设置一个可靠的DNS服务器往往就可以解决问题。然而,很多朋友在设置了可靠的DNS服务器后,仍然不能解析到正确的IP地址,例如某个网站的IP地址明明是可以Ping通的,但就是无法访问。这种情况,通常是DNS污染所导致的。
虽然DNS服务器能够正常工作,但我们向DNS服务器发送域名解析请求的时候,是通过UDP连接发送的。UDP并不是什么可靠的连接,所以域名解析请求能够在半路上就被人拦截,然后冒充DNS服务器给你发送错误的IP地址。IP地址是错的,我们自然也不能正常地访问网站,有可能会看到广告、钓鱼页面,也有可能什么也看不到。
DNS默认使用UDP连接,而且未经加密,很容易遭遇污染、投毒
无论是那种情况,DNS出错就意味着你没法正确地访问网站。在整个上网的流程中,DNS这环节无疑是脆弱而且不受用户控制的,如果一定要有人用DNS来害你没法正常上网,大多数人都对此无能为力。那么DNS频频出错到底还有没有救呢?
前面也提到过,要对付运营商的DNS劫持,我们可以设置一个可靠的DNS服务器来进行域名解析。目前很多安全厂商或者互联网企业乃至公益组织,都提供了DNS解析服务。
例如奇虎360、诺顿、Comodo、百度、阿里、Google等企业,都有提供DNS解析服务,你也可以选择Open DNS这样的老牌免费DNS服务。
这些DNS服务,都可以在网上轻易搜到具体的IP地址,这里就不一一罗列了。当然,并不是说用了这些DNS服务,就一定不会有DNS劫持,万一这些企业人品也不行呢?至于谁靠谱,就得靠你来自个儿筛选了。
另外,DNS如果不是运营商所提供的话,速度表现并不一定理想。这里推荐一款名为“DNS jumper”的软件,它能够比较全面得测试DNS的连接速度,并设置DNS。
利用DNS jumper,很容易就能够找到适合你网络状况的DNS。另外,如果运营商DNS劫持行为太过猖獗,也可以到工信部投诉运营商劫持网页,这的确是非常行之有效的方法,有效到了某些运营商竟然直接屏蔽了工信部的投诉网页的程度。那么该如何到工信部投诉运营商呢?
首先,遇到网页劫持的情况,不要直接向工信部投诉。按照流程,先向运营商投诉,无效后投诉到工信部,才会被受理。工信部张贴出来的申诉条件中也包括“已经向被申诉人投诉且对其处理结果不满意或者其未在15日内答复”这一条,所以先走一下流程也是有必要的,万一向运营商投诉就解决问题了呢?
然而事情往往不会这么美好,运营商的回答通常很敷衍,对技术不熟悉的客服人员甚至不明白网页劫持是什么意思。无效后,就可以向工信部投诉运营商了!如无意外,投诉后问题就会得以解决。
但即使如此,如果有人在DNS请求的UDP连接过程中做手脚,那还是防不胜防。一些公司就会利用这个原理,控制不让员工随便访问网络。如果要规避这个过程,思路就是避免DNS用UDP这样不靠谱的连接来查询。你可以利用一些手段,设置DNS为TCP连接查询,也可以通过加密来让其他服务器中转DNS请求。
IPV6强制部署IPSec,这也可以让DNS更安全
当然,这些方法实现起来都需要折腾,并不符合一般用户使用。或许在待到将来IPV6全面铺开时,DNS的安全性才会有进一步提升。
总体而言,现在DNS的机制显然在设计之初没有充分考虑到安全性,导致别有用心者频频利用这一环节影响用户的正常网络访问。DNS频频被劫持、投毒的现状如何才能改变?从技术上来说很难,希望以后能够有更完善的监管手段,让用户有更好的上网体验吧。
以上是上网强跳广告/页面劫持:其实是DNS被'污染”!的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

CentOS 和 Ubuntu 的关键差异在于:起源(CentOS 源自 Red Hat,面向企业;Ubuntu 源自 Debian,面向个人)、包管理(CentOS 使用 yum,注重稳定;Ubuntu 使用 apt,更新频率高)、支持周期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社区支持(CentOS 侧重稳定,Ubuntu 提供广泛教程和文档)、用途(CentOS 偏向服务器,Ubuntu 适用于服务器和桌面),其他差异包括安装精简度(CentOS 精

CentOS 安装步骤:下载 ISO 映像并刻录可引导媒体;启动并选择安装源;选择语言和键盘布局;配置网络;分区硬盘;设置系统时钟;创建 root 用户;选择软件包;开始安装;安装完成后重启并从硬盘启动。

CentOS 已停止维护,替代选择包括:1. Rocky Linux(兼容性最佳);2. AlmaLinux(与 CentOS 兼容);3. Ubuntu Server(需要配置);4. Red Hat Enterprise Linux(商业版,付费许可);5. Oracle Linux(与 CentOS 和 RHEL 兼容)。在迁移时,考虑因素有:兼容性、可用性、支持、成本和社区支持。

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

CentOS 停止维护后,用户可以采取以下措施应对:选择兼容发行版:如 AlmaLinux、Rocky Linux、CentOS Stream。迁移到商业发行版:如 Red Hat Enterprise Linux、Oracle Linux。升级到 CentOS 9 Stream:滚动发行版,提供最新技术。选择其他 Linux 发行版:如 Ubuntu、Debian。评估容器、虚拟机或云平台等其他选项。

Docker镜像构建失败的故障排除步骤:检查Dockerfile语法和依赖项版本。检查构建上下文中是否包含所需源代码和依赖项。查看构建日志以获取错误详细信息。使用--target选项构建分层阶段以识别失败点。确保使用最新版本的Docker引擎。使用--t [image-name]:debug模式构建镜像以调试问题。检查磁盘空间并确保足够。禁用SELinux以防止干扰构建过程。向社区平台寻求帮助,提供Dockerfile和构建日志描述以获得更具体的建议。

VS Code 系统要求:操作系统:Windows 10 及以上、macOS 10.12 及以上、Linux 发行版处理器:最低 1.6 GHz,推荐 2.0 GHz 及以上内存:最低 512 MB,推荐 4 GB 及以上存储空间:最低 250 MB,推荐 1 GB 及以上其他要求:稳定网络连接,Xorg/Wayland(Linux)
