是否需要公共 DNS

在选择公共 DNS 之前,你需要考虑一个问题:你是否真的需要公共 DNS?

无论我们是 PPPoE 拨号上网,还是 DHCP 连接光猫上网,互联网服务提供商(ISP)都会下发两个 DNS 给你。为了方便介绍,在下文中我称这两个 DNS 为 ISP DNS。

在 DNS 的解析过程中,用户向递归 DNS 发起请求,递归 DNS 向权威 DNS 请求解析结果,可以说递归 DNS 起到一种转发的作用。ISP DNS 就是递归 DNS;同时一些个人或互联网服务提供商也会架设自己的递归 DNS 开放给所有人使用,称为公共 DNS。

对于绝大部分人来说,ISP 下发的 ISP DNS 应该是最准确的和最合适的,响应时间短、CDN 解析结果也会最准确。

但是大部分 ISP 不是做公益的。运营商经常使用 DNS 投毒来引导用户去使用他们的 缓存服务器,从而降低 ISP 外网带宽的负载;或者劫持解析将用户引导去他们已经插入了广告的镜像站点获利;或者为了国家相关法律政策要求或者 ISP 自己的需求屏蔽一些网站的访问(如辽宁联通曾将工信部举报站点的域名解析至 127.0.0.1);或者自行篡改 TTL(DNS 结果缓存时间)降低 DNS 服务的请求数导致解析结果不能尽快更新;或者对于不正确的域名运营商给你返回一个满是广告的页面,等等。即使 ISP 非常良心不使用 DNS 做坏事,也有可能因为设备没有及时扩容或者维护不善而导致不佳的体验。

ISP DNS 固然有这么多弊端,但是公共 DNS 也不是没有问题。下面两篇文章是曾就职于 CloudXNS 的 Ephen 大姐姐 大佬写的关于使用公共 DNS 上网的弊端,主要围绕公共 DNS 出口导致的 CDN 解析结果优化问题展开的。

如果你阅读完上述文章后,为了追求更安全、更准确的 DNS 解析结果而决定继续使用公共 DNS(比如和我一样 雾),你就可以继续阅读下去了。

选择公共 DNS 时应该考虑什么

公共 DNS 服务有很多,有大公司搭建的,有非盈利组织搭建的,还有个人搭建的,令人眼花缭乱。在选择的时候我们需要考虑很多方面才能选出适合我们需求的 DNS。通常在选择对于我们上网起非常重要作用的 DNS 时,我们需要考虑以下方面: