惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
量子位
T
Tailwind CSS Blog
Vercel News
Vercel News
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
U
Unit 42
Engineering at Meta
Engineering at Meta
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
D
Docker
博客园_首页
P
Proofpoint News Feed
月光博客
月光博客
T
The Blog of Author Tim Ferriss
MyScale Blog
MyScale Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Martin Fowler
Martin Fowler
腾讯CDC
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

月光博客

AI编程从零开始:环境配置到开发调试-月光博客 母亲被保健品诈骗-月光博客 向身体低头,向岁月妥协:我的高血压“还债日记” -月光博客 月光博客电子书:《信息安全指南》 谷歌发布2025年度搜索排行榜 中国2025社会热点大事记 2025年十大流行语发布 7天3次,骗子骗走我母亲95万元 “技术男”设三重安全墙,母亲95万存款还是被骗走了 电信诈骗后的复盘:母亲的95万元,是怎么从手机银行里消失的 母亲被电信诈骗95万元的全过程 阿根廷警察被谷歌街景相机拍到裸照 网信办开展“清朗·整治恶意挑动负面情绪问题”专项行动 翟欣欣敲诈勒索案一审获刑12年 《绝命毒师》影评:力工觉醒后的梭哈至死 《人工智能生成合成内容标识办法》正式施行 用AI分析你的财务信息 腾讯子公司实习HR怒怼求职者后被开除 OpenAI发布最强模型GPT-5,免费向所有用户开放 用AI解构你的日记 用AI分析你的游戏偏好 用AI分析你的观影偏好 用AI分析你的听歌偏好 《白鹿原》人物分析:乱世浮沉中的人性剖析 乌托邦的捷径:让AI治理“失败国家” 苹果AI的“路径错误”:为什么它在大模型时代掉队了? 《暗黑破坏神3》第35赛季开荒指南 我对特朗普的看法 欧·亨利十大经典小说鉴赏 HBO电视剧《最后生还者》第二季影评
OpenDNS不能解决DNS域名解析错误
月光 · 2007-10-28 · via 月光博客

我先前曾经写了篇文章《使用OpenDNS解决DNS域名劫持》,经过我进一步的测试和使用,使用OpenDNS并不能解决所有的国外网站的域名解析错误问题,当目标域名同时被DNS(Domain Name System)劫持和关键字过滤的时候,OpenDNS解析的结果会在中途被污染,只有使用远程解析域名才能彻底解决DNS劫持的问题。

我测试的方式是,在国内网络使用OpenDNS,然后登陆我在国外的一台服务器,同时对某一个特殊网站执行nslookup命令。(nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名)

我在国内使用nslookup之后显示的结果如下图所示:

国内DNS解析情况

而使用国外的服务器执行nslookup之后得到的结果如下图所示:

国外DNS解析情况

从上面两张图片我们可以看到,当目标域名同时被DNS劫持和关键字过滤的时候,在国内和国外使用对于同一个域名地址会解析出不同的IP地址,因此可以得出结论,在国内即使使用国外的OpenDNS,对于某些“特定”的域名,也不能解析出正确的域名IP地址,解析DNS的结果依然被电信控制。

不过,我们可以通过手动修改本地hosts文件,或者远程解析DNS来解决这种错误的域名解析,为什么要远程解析?这就涉及到了DNS污染技术。

DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击(DNS cache poisoning)。其工作方式是:在UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。对于不了解相关知识的网民来说也就是,由于系统默认使用的ISP提供的NS查询国外的权威服务器时被劫持,其缓存受到污染,因而默认情况下查询ISP的服务器就会获得虚假IP;而用户直接查询境外NS(比如OpenDNS)又可能被劫持,从而在没有防范机制的情况下仍然不能获得正确IP。

Firefox中,设置远程解析DNS很简单,只需要在在about:config 改成 network.proxy.socks_remote_dns=true 就可以了。对于IE或者其他用户来说,需要安装一个名为SocksCap的软件,选中Resolve all names remot即可。

更新:OpenDNS之后发布了一个本地客户端工具,用于加密DNS通讯,因此使用DNSCrypt可以解决DNS污染问题

OpenDNS不能解决DNS域名解析错误