DNS 相关资料

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
google 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
Google 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检测

  1. 网易DNS检测: http://nstool.netease.com/
  2. DNSleak test:https://www.dnsleaktest.com/
  3. Nslookup Tool https://www.nslookuptool.com/chs/
  • 当前使用中DNS性能检测

Dns-oarc检测: https://cmdns.dev.dns-oarc.net/

DoT & DoH 各平台实现

  • 安卓

    1. 自从安卓派 9.0 开始系统直接提供了私人 DNS 能力以支持 DNS-over-TLS,您可以从 “设置” - “网络和互联网” 的”高级”下拉菜单中点击”私人 DNS”完成配置,查看步骤
    2. 如果你使用的是安卓 9.0 之前的系统,您可以下载 Intra 进行配置(doh);Intra 是来自谷歌的 Jigsaw 团队所开发
  • iOS

    iOS 中国区市场并没有相关应用,如果您可以访问非中国区的苹果应用商店,可以下载 DNS 大师应用

  • Windows 7/8/10

    1. 使用AuroraDNS。(doh)
      下载地址,下载后请用管理员权限打开,在设置中切换dns,然后运行即可。
    2. Windows 现在并不能直接支持安全 DNS 相关协议。但可以通过 Simple DNSCrypt 工具,查看如何配置 Simple DNSCrypt(不支持自定义)。
  • macOS & Linux

    当前桌面系统上并没有简便的让所有互联网应用都使用的方法,推荐使用 Firefox 进行安全的互联网冲浪。查看如何在 Firefox 中配置 DNS

    下载 Firefox 最新版本

  • Ubuntu 18.10+ 或 Arch 等软件包追新的发行版

    部分 Linux 发行版开始使用 systemd 中的 systemd-resolved 组件作为 DNS 基础系统;它在本地 127.0.0.53 地址绑定一个标准的 DNS 服务提供兼容性/查询缓存(可以视为比 dnsmasq 更轻量的替代品)。systemd 从 release-239 版本开始支持 DNS-over-TLS 作为服务上游,查看如何配置 systemd-resolved

相关命令

  • windows

1
2
3
4
5
6
$ ipconfig /release        # 释放ip
$ ipconfig /displaydns # 显示缓存dns
$ ipconfig /flushdns # 删除缓存
$ ipconfig /renew # 重新获取ip
$ ipconfig /all # 显示网卡信息
$ nslookup [domain] [dns] # 域名解析 nslookup www.baidu.com 8.8.8.8
  • linux

1
2
3
$ dig [domain] [dns]      # 如没有输入dns,使用本地默认dns解析
$ dig @208.67.222.222 -p 5353 www.baidu.com //例
$ dig www.baidu.com @208.67.222.222 5353 //例

DNS 解析简述

  • 域名结构

img

  • 解析过程

175333937.jpg

img

那么我们的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