DNS 相关资料
选择公共 DNS 时应该考虑什么
公共 DNS 服务有很多,有大公司搭建的,有非盈利组织搭建的,还有个人搭建的,令人眼花缭乱。在选择的时候我们需要考虑很多方面才能选出适合我们需求的 DNS。通常在选择对于我们上网起非常重要作用的 DNS 时,我们需要考虑以下方面:
SLA 服务在线率 DNS 是上网冲浪事时非常重要的一个环节,DNS 的可靠性直接影响到上网的体验;如果 DNS 宕机,那么很大一部分网站将无法访问
响应速度 在访问一个新的网站时,DNS 对这个网站的响应速度会直接影响到当前网站的直观加载速度
准确性 即使不考虑 DNS 污染和投毒,DNS 对网站访问的结果是否准确是非常重要的
EDNS 简单地说,EDNS(正确的简称应该是 ECS)有助于帮助你获取最准确的 CDN 解析结果
其它特性 一些个人搭建的 DNS 会提供一些去广告或者学术上网的功能
DNS 出口 通常情况下,公共 DNS 的入口和出口一般不同。
DNS 服务商一览
国内 Free & Public DNS Server List
Provider | Primary DNS | Secondary DNS | 备注 |
---|---|---|---|
阿里 | 223.5.5.5 | 223.6.6.6 | 不支持ECS |
百度 | 180.76.76.76 | ||
南京信风 | 114.114.114.114 | 114.114.115.115 | |
腾讯 | 119.29.29.29 | 119.28.28.28 | 支持ECS SLA较差 |
360电信 | 101.226.4.6 | 218.30.118.6 | |
360联通/移动 | 123.125.81.6 | 140.207.198.6 | |
清华 DNS | 101.6.6.6 | 支持5353 | |
中科大 DNS | 202.38.93.153 | 202.141.162.123 | 202.38.93.94 |
中国互联网络中心 | 1.2.4.8 | 210.2.4.8 | 名声并不好 |
onedns | 117.50.11.11 | 117.50.22.22 | 拦截版 |
117.50.10.10 | 117.50.20.20 | 纯净版 | |
杭州电信 | 202.101.172.35 | 202.101.172.47 | |
嘉兴华数 | 113.214.230.25 | 113.215.2.222 | |
PureDNS | PdomoDNS | HiXNS | 个人搭建 |
DNS-over-TLS & DNS-over-HTTPS
Provider | DoH | DoT (ip) | 备注 |
---|---|---|---|
华夏梦客 | https://i.233py.com/dns-query | 国内 | |
https://dns.233py.com/dns-query | 国外 | ||
阿里 | https://223.5.5.5/dns-query | tls://223.5.5.5 | 推荐 |
https://223.6.6.6/dns-query | tls://223.6.6.6 | ||
dns.sb | https://doh.dns.sb/dns-query | tls://185.184.222.222 | |
tls://185.222.222.222 | |||
中国科技技术大学 | https://neatdns.ustclug.org/resolve | ||
cloudflare | https://cloudflare-dns.com/dns-query | US | |
https://dns.cloudflare.com/dns-query | |||
https://1.1.1.1/dns-query | |||
https://1.0.0.1/dns-query | tls://1.1.1.1 | ||
quard9 | https://dns.quad9.net/dns-query | US | |
https://dns.google.com/resolve | tls://8.8.8.8 | US | |
tls://8.8.4.4 | |||
dns.twnic.tw | https://dns.twnic.tw/dns-query | TW | |
neatdns | https://neatdns.ustclug.org/resolve | CN | |
dns-over-https | https://dns.dns-over-https.com/dns-query | JP | |
blahdns | https://doh.blahdns.com/dns-query | dns.jp.blahdns.com | JP |
dot-de.blahdns.com | DE | ||
AuroraDNS | https://dnsp2.mili.one/dns-query/ | KR | |
doh.n2o.pw | https://doh.n2o.pw/ | HK | |
bitgeek | dns.bitgeek.in | IN |
国外 Free & Public DNS Server List
Provider | Primary DNS | Secondary DNS | 备注 |
---|---|---|---|
CenturyLink (Level3) | 209.244.0.3 | 209.244.0.4 | |
Verisign | 64.6.64.6 | 64.6.65.6 | |
8.8.8.8 | 8.8.4.4 | ||
Quad9 | 9.9.9.9 | 149.112.112.112 | |
DNS.WATCH | 84.200.69.80 | 84.200.70.40 | |
Comodo Secure DNS | 8.26.56.26 | 8.20.247.20 | |
OpenDNS Home | 208.67.222.222 | 208.67.220.220 | 支持5353 443 |
GreenTeamDNS | 81.218.119.11 | 209.88.198.133 | |
SafeDNS | 195.46.39.39 | 195.46.39.40 | |
OpenNIC | 198.206.14.241 | 172.98.193.42 | |
SmartViper | 208.76.50.50 | 208.76.51.51 | |
Dyn | 216.146.35.35 | 216.146.36.36 | |
FreeDNS | 45.33.97.5 | 37.235.1.177 | |
Alternate DNS | 198.101.242.72 | 23.253.163.53 | |
Yandex.DNS | 77.88.8.8 | 77.88.8.1 | |
UncensoredDNS | 91.239.100.100 | 89.233.43.71 | |
Hurricane Electric | 74.82.42.42 | ||
puntCAT | 109.69.8.51 | ||
Neustar | 156.154.70.1 | 156.154.71.1 | |
Cloudflare | 1.1.1.1 | 1.0.0.1 | |
Fourth Estate | 45.77.165.194 | ||
CleanBrowsing | 185.228.168.9 | 185.228.169.9 | |
Tenta | 99.192.182.100 | 99.192.182.101 | |
AdGuard DNS | 176.103.130.130 | 176.103.130.131 | |
微软 | 4.2.2.1 | 4.2.2.2 | |
Freenom World | 80.80.80.80 | 80.80.81.81 | 号称国内最快国外dns |
公共 DNS 最佳实践
综上所述,如果你需要选择公共 DNS 的话同时需要获得尽可能友好的 CDN 解析结果,
解析国内站点推荐使用阿里 DNS 和腾讯 DNSPod;
解析海外网站推荐主 DNS 1.0.0.1 或 208.67.222.222,备 DNS 8.8.8.8 或 8.8.4.4;
常用工具
名称 | 过滤地址 | 备注 |
---|---|---|
AdGuard Simplified Domain Names filter | https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt | |
AdAway | https://adaway.org/hosts.txt | |
hpHosts - Ad and Tracking servers only | https://hosts-file.net/ad_servers.txt | |
MalwareDomainList.com Hosts List | http://www.malwaredomainlist.com/hostslist/hosts.txt | |
EasyListChina | https://easylist-downloads.adblockplus.org/easylistchina.txt | |
EasyList | https://easylist.to/easylist/easylist.txt |
- 网易DNS检测: http://nstool.netease.com/
- DNSleak test:https://www.dnsleaktest.com/
- Nslookup Tool https://www.nslookuptool.com/chs/
Dns-oarc检测: https://cmdns.dev.dns-oarc.net/
DoT & DoH 各平台实现
安卓
iOS
iOS 中国区市场并没有相关应用,如果您可以访问非中国区的苹果应用商店,可以下载 DNS 大师应用。
Windows 7/8/10
- 使用AuroraDNS。(doh)
下载地址,下载后请用管理员权限打开,在设置中切换dns,然后运行即可。 - Windows 现在并不能直接支持安全 DNS 相关协议。但可以通过 Simple DNSCrypt 工具,查看如何配置 Simple DNSCrypt(不支持自定义)。
- 使用AuroraDNS。(doh)
macOS & Linux
当前桌面系统上并没有简便的让所有互联网应用都使用的方法,推荐使用 Firefox 进行安全的互联网冲浪。查看如何在 Firefox 中配置 DNS。
Ubuntu 18.10+ 或 Arch 等软件包追新的发行版
部分 Linux 发行版开始使用 systemd 中的 systemd-resolved 组件作为 DNS 基础系统;它在本地 127.0.0.53 地址绑定一个标准的 DNS 服务提供兼容性/查询缓存(可以视为比 dnsmasq 更轻量的替代品)。systemd 从 release-239 版本开始支持 DNS-over-TLS 作为服务上游,查看如何配置 systemd-resolved。
相关命令
1 | $ ipconfig /release # 释放ip |
1 | $ dig [domain] [dns] # 如没有输入dns,使用本地默认dns解析 |
DNS 解析简述
那么我们的DNS是怎么解析一个域名的呢?
1.现在我有一台计算机,通过ISP接入了互联网,那么ISP就会给我分配一个DNS服务器,这个DNS服务器不是权威服务器,而是相当于一个代理的dns解析服务器,他会帮你迭代权威服务器返回的应答,然后把最终查到IP返回给你。
2.现在的我计算机要向这台ISPDNS(运营商dns服务器)发起请求查询www.baidu.com这个域名了。
3.ISPDNS拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话就直接返回。这个时候拿到的ip地址,会被标记为非权威服务器的应答。
4.如果缓存中没有的话,ISPDNS会从配置文件里面读取13个根域名服务器的地址(这些地址是不变的,直接在BIND的配置文件中),
5.然后像其中一台发起请求。
6.根服务器拿到这个请求后,知道他是com.这个顶级域名下的,所以就会返回com域中的NS记录,一般来说是13台主机名和IP。
7.然后ISPDNS向其中一台再次发起请求,com域的服务器发现你这请求是baidu.com这个域的,我一查发现了这个域的NS,那我就返回给你,你再去查。
8.ISPDNS不厌其烦的再次向baidu.com这个域的权威服务器发起请求,baidu.com收到之后,查了下有www的这台主机,就把这个IP返回给你了,
9.然后ISPDNS拿到了之后,将其返回给了客户端,并且把这个保存在高速缓存中。
总结一下便是
①本机向local dns请求www.baidu.com
②local dns向根域请求www.baidu.com,根域返回com.域的服务器IP
③向com.域请求www.baidu.com,com.域返回baidu.com域的服务器IP
④向baidu.com请求www.baidu.com,返回cname www.a.shifen.com和a.shifen.com域的服务器IP
⑤向root域请求www.a.shifen.com
⑥向com.域请求www.a.shifen.com
⑦向shifen.com请求
⑧向a.shifen.com域请求
⑨拿到www.a.shifen.com的IP
⑩localdns返回本机www.baidu.com cname www.a.shifen.com 以及 www.a.shifen.com的IP