月光博客 » 软件应用 » 配置DNS over HTTPS来阻止DNS污染

配置DNS over HTTPS来阻止DNS污染

DNS(域名系统)的主要功能是将域名解析成IP地址,域名的解析工作由DNS服务器完成。从安全角度来看,域名解析的请求传输时通常不进行任何加密,这导致第三方能够很容易拦截用户的DNS,将用户的请求跳转到另一个地址,常见的攻击方法有DNS劫持和DNS污染。因此,使用不加密的DNS服务是不安全的。

DoH(DNS over HTTPS)是一个安全的域名解析方案。其意义在于以加密的HTTPS协议进行DNS解析请求,避免原始DNS协议中用户的DNS解析请求被窃听或者修改的问题(例如中间人攻击)来达到保护用户隐私的目的。因此,攻击者将无法查看请求的URL并对其进行更改,如果使用了基于HTTPS的DNS,数据在传输过程中发生丢失时,DoH中的传输控制协议(TCP)会做出更快的反应。

DoH

不过,由于其基于HTTPS,而HTTPS本身需要经由多次数据来回传递才能完成协议初始化,因此DNS over HTTPS的域名解析耗时较原DNS协议会显著增加。

目前,主流的浏览器和操作系统均已经支持DNS over HTTPS,不少移动设备也开始支持基于HTTPS的DNS选项。

谷歌Chrome浏览器设置方法

设置-隐私设置和安全性-使用安全DNS,系统默认的几个都不好用,建议使用自定义DNS,参数如图所示,设置好了以后,即可在Chrome里防止DNS污染。

DoH

火狐Firefox浏览器设置方法

设置-常规-网络设置-设置-启用基于HTTPS的DNS,建议使用自定义DNS,参数如图所示,设置好了以后,即可在Firefox里防止DNS污染。

DoH

安卓Android系统设置方法

设置-连接设置-私密DNS/私人DNS/加密DNS设置。此外,谷歌的安卓Chrome浏览器也支持设置DoH。

DoH

苹果iPhone系统设置方法

iPhone目前并没有通用的加密DNS设置方法,目前只能通过各个DNS服务商提供的APP来实现,例如下载安装Cloudflare提供的1.1.1.1应用,运行之后,在界面上选择“切换到仅DNS模式”即可支持DoH。

DoH

Windows 10操作系统设置方法

Windows系统版本必须为Windows 10 Build 19628版及以上版本,暂时低于该版本的系统均不支持DoH加密。使用winver可查看当前Windows系统版本。

打开注册表编辑器,找到如下路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

右键点击右侧空白处新建DWORD然后将其命名为EnabledAutoDoh,双击该项然后将其键值由默认值修改2并保存,保存成功后重启计算机。

DoH

接下来,在查看网络连接设置里,选择属性-Internet Protocol Version 4 (TCP/IPv4) ,设置DNS为如下数值。

Cloudflare – 首选: 1.1.1.1, 备用: 1.0.0.1
Google – 首选:8.8.8.8, 备用: 8.8.4.4
Quad9 – 首选: 9.9.9.9, 备用: 149.112.112.112

DoH

在Windows 10 Build 20185版及以上版本,可以直接设置。

设置-网络状态-属性,点击DNS设置里的编辑,设置DNS为如下数值。

Cloudflare – 首选: 1.1.1.1, 备用: 1.0.0.1
Google – 首选:8.8.8.8, 备用: 8.8.4.4
Quad9 – 首选: 9.9.9.9, 备用: 149.112.112.112

DoH

常见的支持DoH的公共DNS服务器

国内:

腾讯: https://doh.pub/dns-query

阿里巴巴: https://dns.alidns.com/dns-query

360: https://doh.360.cn/dns-query

国外:

Cloudflare: https://1.1.1.1/dns-query

Google Public DNS: https://dns.google/dns-query

Open DNS: https://doh.opendns.com

QUAD9 DNS: https://dns.quad9.net/dns-query

除了基于HTTPS的DNS外,目前还有另一种用于保护域名系统的技术:基于TLS的DNS(DoT)。这两个协议看起来很相似,都承诺了更高的用户安全性和隐私性。DoT使用了安全协议TLS,在用于DNS查询的用户数据报协议(UDP)的基础上添加了TLS加密。DoT使用853端口,DoH则使用HTTPS的443端口。

由于DoT具有专用端口,因此即使请求和响应本身都已加密,但具有网络可见性的任何人都可以发现来回的DoT流量。DoH则相反,DNS查询和响应和其他HTTPS流量完全一样,很难进行监视和识别。

配置DNS over HTTPS来阻止DNS污染

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    小苹果儿   说道:
    国外的doh都已经被sni封锁了,根本连不上。用国内的doh还不如用传统dns呢。
    支持(9反对(0回复
  1. 2
    player   说道:
    对于不满足国外DoH服务器速度的人,完全可以自己搭建DoH服务器。互联网是一个开放的架构,DoH也是一种开放的技术,不存在使用壁垒。

    说什么去适应网络环境,你也也要明白网络环境是人造成的。人能使它糟糕,就能使它美好。
    1. future   说道:
      国内好像不准搭建dns服务器,内网也不行
      支持(3反对(0回复
    支持(4反对(0回复
  1. 3
    Charles   说道:
    站長你好,能否請問大陸是否能使用Google或CloudFlare加密DNS?
    我站在網管的角度,如果我要過濾境外的XX網站,那麼我肯定會從DNS層面屏蔽,從而DoH和DoT我都不想開放使用、阻止境外DoH的握手(例如封鎖1.1.1.1和one.one.one.one)。因此我估計Google或CloudFlare加密DNS在大陸都不能“正常”情況下使用。
    不知道這是否正確?還是說大陸能用暢通無阻?
    謝謝
    Charles @ Upsangel
    1. williamlong   说道:
      上面提到的几个国外DOH,在大陆只有1.1.1.1暂时还可以使用。
      支持(2反对(0回复
    支持(0反对(0回复
  1. 4
    a   说道:
    这种思路是完全错误的,你把dns全改成国外,国内的cdn加速就没法用了
    b站看番直接给你来个不知道哪个国的cdn,10k每秒的速度缓冲,这能用?
    实际上完美的dns方案非常复杂,国内网站要用自己isp解析,国外网站要正确解析,甚至还要考虑单域名多ip的访问速度优选与错误ip剔除,再加上ipv6

    至于加密dns,本身是好,但你搞错了自己的定位。这东西不是你要就有的,很多dns服务器不支持你怎么强求?比如你自己isp的dns

    只能你去适应网络环境,而不是网络适应你
    1. wrongA   说道:
      支持楼主。
      看到评论有人说“只能你去适应网络环境,而不是网络适应你”,此观点大错特错。按此说法,你去适应环境,那打火机、汽车、飞机、互联网,就不会出现了。人是灵性动物,应创建适宜自身的环境。
      支持(1反对(1回复
    支持(3反对(5回复

发表留言