接触公共 DNS 这个概念前,笔者看到了这篇文章 和 这篇文章 ,这两位大佬的介绍已经十分详尽,本文写作时也有所参考。读者如有疑问,可参考大佬的原文,如有错漏,请在评论区指出。
本文将从笔者使用 AdGuardHome 和 SmartDNS 的实际经历出发,介绍一些公共DNS。
我们为什么需要自定义 DNS 服务器
关于这一点,文章开头提到的大佬已经介绍的很清楚了,这里引一段过来。
运营商经常使用 DNS 投毒来引导用户去使用他们的 缓存服务器,从而降低运营商带宽负载;或者劫持解析将用户引导去他们已经插入了广告的镜像站点,从而获利;或者为了国家相关法律政策要求或者运营商自己的需求屏蔽一些网站的访问(如辽宁联通曾将工信部举报站点的域名解析至
127.0.0.1
);或者自行篡改 TTL(DNS 结果缓存时间)降低 DNS 的负载,结果就是解析结果不能尽快更新;或者对于不正确的域名给你返回一个满是广告的页面,等等。即使运营商非常良心不使用 DNS 做坏事,也有可能因为设备没有及时扩容或者维护不善而导致不佳的体验。
作者:Sukka
来源:如何选择适合的公共 DNS? [2020] | Sukka’s Blog
链接:https://blog.skk.moe/post/which-public-dns-to-use/
DNS 服务器的常用技术
DoH
DoH,也就是 DNS over HTTP(S),也就是通过 HTTP(S) 的方式来请求 DNS 的结果,具有一定的抗污染效果。
DoT
即DoH,也就是 DNS over TLS,基本同上。
EDNS (ECS)
DNS 延伸安全协议,主要功能是提升DNS 安全,同时有助于获取到更合适的 CDN 节点。
DNSSEC
用于效验 DNS 记录的签名,防止 DNS 缓存被投毒。
需要注意的是,以上技术并不是所有公共 DNS 服务器都支持。
公共 DNS 服务器收集——国内
IPv4 地址:119.29.29.29
IPv6 地址:2402:4e00::
DoH 地址:https://doh.pub/dns-querydot.pub
DoT 地址:dot.pub
IPv4 地址:223.5.5.5 或 223.6.6.6
IPv6 地址:2400:3200::1 或 2400:3200:baba::1
DoH 地址:dns.alidns.com
DoT 地址:dns.alidns.com
如果和国外的巨头提供的服务相比较,这两家的服务可能算不算出色,在服务稳定性和准确性上都存在或多或少的问题,但在没有选择的情况下,它们已经是国内用户几乎最好的选择。
除此之外,还有以下服务器可供选择,但对于其质量笔者不做保证。
#南京信风
114.114.114.114
114.114.115.115
#百度
180.76.76.76
2400:da00::6666
#红鱼
https://rubyfish.cn/dns-query
公共 DNS 服务器收集——国外
IPv4 地址:8.8.8.8 或 8.8.4.4
IPv6 地址:2001:4860:4860::8888 或 2001:4860:4860::8844
DoH 地址:https://dns.google/dns-query
DoT 地址:dns.google:853
IPv4 地址:1.1.1.1 或 1.0.0.1
IPv6 地址:2606:4700:4700::1111 或 2606:4700:4700::1001
DoH 地址:https://cloudflare-dns.com/dns-query
DoT 地址:1.1.1.1:853 或 1.0.0.1:853
IPv4 地址:208.67.222.222 或 208.67.220.220
DoH 地址:https://doh.opendns.com/
同样,这里也记录其他的 DNS 服务器,不做单独介绍。
#quad9
9.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::9
https://dns.quad9.net/dns-query
tls://dns.quad9.net
#adguard
94.140.14.14
94.140.15.15
2a10:50c0::ad1:ff
2a10:50c0::ad2:ff
dns.adguard.com/dns-query #DNS-over-HTTPS
dns.adguard.com #DNS-over-TLS
quic://dns.adguard.com #DNS-over-QUIC
如果你身处国内,那么出于连接速度或是运营商抢答等因素,国外的 DNS 服务器不应作为首选。特别是在以上服务器的 PIng 值极低时,你的请求也许根本没有到达这些服务器,就被运营商抢答了。
怎么使用这些 DNS?[1]
如果你只是在本机使用,那么请继续看下去。
如果你和笔者一样使用 AdGuard Home ,那就参考 这篇文章 吧。
Windows
- 通过 【开始】 菜单或者 Windows 搜索来打开控制面板
- 先找【网络和Internet】 菜单项,然后点击 【网络和共享中心】
- 点击左边侧边栏【更改适配器设置】
- 右键你已经连接网络的网络连接, 选择 【属性】
- 在列表中找到并选择 【Internet 协议版本 4 (TCP/IPv4)】 , 点击 【属性】
- 选择【使用下面的DNS服务器地址】 , 然后输入你的 DNS 服务器地址。
macOS
- 点击苹果图标,点击进入 [系统偏好设置]
- 点击 [网络]点击列表中第一个连接选项后,点击 [高级]
- 选择 [DNS] 选项卡。
- 输入你的 DNS 服务器地址。
安卓
- 在 Android 主屏幕菜单点击【设置】
- 点击菜单中的 Wi-Fi。 所有可用的网络将会被显示 (移动互联不允许设置自定义 DNS,但可以借助代理软件实现)
- 长按您连接的网络,点击【修改网络】
- 在某些设备上, 您点击【高级设置】后,才能看到更多选项。
- 为了调整Android DNS 设置, 您需要把【IP 设置】从【DHCP】 改成【静态】。
- 然后输入你的 DNS 服务器地址。
iOS
- 在主界面中点击 【设置】
- 在左侧菜单中选择 【Wi-Fi】(注意:为移动网络无法配置 DNS,但可以借助代理软件实现)
- 点击正在连接的网络
- 在【DNS】一栏输入 DNS 服务器地址即可。
Ubuntu
- 点击 “网络图标”(位于右上角默认面板)。
- 点击 “编辑连接” 打开网络连接管理器。
- 找到您的链接类型,加亮突出它并点击 “编辑“。
- 现在点击 “IPv4 设置” 标签,将“方式” 选项改为 “自动获取地址”(DHCP)。
- 在 “DNS 服务器“ 键入用逗号分隔的 DNS 服务器地址
路由器
- 打开您的路由器设置。 通常可在浏览器中输入URL (例如 http://192.168.0.1/ 或 http://192.168.1.1/)访问它。可能会要求您输入密码 。如您忘记密码,通常可以按路由器上的重置按钮重置密码。
- 某些路由器会有特殊应用程序。在这种情况下,该应用程序要早已安装到您的计算机上。
- 查找 DNS 设置,寻找“DNS”字符旁边有可输入二到三个数列的字符串。每个数列分四组,一组包括一到三个数。在此输入 DNS服务器地址。