什么是DNS?
DNS全称是Domain Name System,中文译为域名系统,是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。例如访问的网站为www.google.com,映射的IP为172.217.175.68。
DNS的缺陷
DNS建立之初,并没有考虑加密的问题,所以用户在访问网站时,全程是公开的,就像邮递员投递的邮件一样,邮差是可以看到的,邮政公司也是可以看到的,如果有人想通过邮政公司投递一些广告,是可以知道可以投放给谁的,当然DNS信息公开,不仅局限在谋利广告上,更主要的是个人信息的泄露和被监控以及中间人的攻击。
DoH
Doh全称为DNS over Https,是以https加密的方式将DNS的访问过程进行加密,以防止被窃听或者被攻击。
怎么启用DoH
随着Macos 11版本和windows 11版本的发布,两大商家都宣布了对于Doh的系统级支持,2020年6月,苹果在WWDC大会宣布 iOS 14 与 macOS 11 新增对加密DNS的支持,包括 DNS over HTTPS(DoH)与 DNS over TLS(DoT)。
支持DoH的软件
- Argo Tunnel(Cloudflared) — 操作系统支持:Linux/MacOS/Windows
- Firefox、Chrome、Edge(Chromium版) — 浏览器支持
- DNSCrypt-proxy — Local DNS → DNS over HTTPS proxy
- doh-php-client — PHP 实现
- dns-over-https — Go 实现
- 1.1.1.1 (应用程序) — iOS / Android
- Privacy Pro SmartVPN (应用程序) — iOS
- AdGuard (应用程序) — iOS (DNS over HTTPS 功能需付费) / Android
- 由AdGuard公司领导开发的开源的DNS服务器软件AdGuard Home — 操作系统支持:Linux/MacOS/FreeBSD/Windows 可用于在家庭/公司网络中架设DNS服务器以为其他不支持DoH/DoT的设备提供加密DNS服务代理。AdGuard Home在GitHub上的代码库
- 在 Firefox 62 及以上版本中开启 DNS over HTTPS
- 在浏览器地址栏输入 about:config 然后打开,并同意警告信息。
- 搜索 network.trr
- 设置 network.trr.mode 值为2
- 在 network.trr.uri 中填入上表中任一服务器,例如:https://1.1.1.1/dns-query
设置好后,在地址栏输入 about:networking 可以看到具体通信情况
- 在 Chrome 中开启 DNS over HTTPS
- 在浏览器地址栏输入 chrome://flags 然后打开
- 搜索 DNS
- 设置 Secure DNS lookups 值为 Enabled
- 在Chromium版Edge 中开启 DNS over HTTPS
- 在浏览器地址栏输入 edge://settings/privacy 然后打开
- 查找“安全性”一栏
- 打开“使用安全的 DNS 指定如何查找网站的网络地址”
怎么检测是否开启了DoH?
https://www.cloudflare.com/ssl/encrypted-sni/
测试结果如下,则表示DoH已经启用。
即使浏览器上已经启用了DoH,那也不代表你已经在使用中了,软件设置之后还需要配合兼容DoH的DNS一起使用。
支持DoH的DNS:
Cloudflare:1.1.1.1
Google Public DNS:8.8.8.8,8.8.4.4
Open DNS
Windows
DNS 设置在选定网络连接的TCP/IP 属性窗口中指定。
示例:更改 Windows 10 上的 DNS 服务器设置
- 转到控制面板。
- 单击网络和 Internet >网络和共享中心>更改适配器设置。
- 选择要为其配置 Google 公共 DNS 的连接。例如:
- 要更改以太网连接的设置,请右键单击以太网接口并选择属性。
- 要更改无线连接的设置,请右键单击 Wi-Fi 界面并选择属性。
如果系统提示您输入管理员密码或确认,请键入密码或进行确认。
- 选择网络选项卡。在此连接使用以下项目下,选择Internet 协议版本 4 (TCP/IPv4)或Internet 协议版本 6 (TCP/IPv6),然后单击属性。
- 单击高级并选择DNS选项卡。如果那里列出了任何 DNS 服务器 IP 地址,请将它们记下来以备将来参考,并将它们从该窗口中删除。
- 单击“确定”。
- 选择使用以下 DNS 服务器地址。如果首选 DNS 服务器或备用 DNS 服务器中列出了任何 IP 地址,请将其记下以备将来参考。
- 将这些地址替换为 Google DNS 服务器的 IP 地址:
- 对于 IPv4:8.8.8.8 和/或 8.8.4.4。
- 对于 IPv6:2001:4860:4860::8888 和/或 2001:4860:4860::8844。
- 对于仅 IPv6:您可以使用Google Public DNS64 代替上一点中的 IPv6 地址。
Macos
示例:在 macOS 10.15 上更改 DNS 服务器设置
- 单击Apple 菜单>系统偏好设置>网络。
- 如果窗口左下角的锁图标被锁定,请单击该图标进行更改,并在提示进行身份验证时输入密码。
- 选择要为其配置 Google 公共 DNS 的连接。例如:
- 要更改 Wi-Fi 连接的设置,请选择Wi-Fi,然后单击高级。
- 要更改以太网连接的设置,请选择内置以太网,然后单击高级。
- 选择DNS选项卡。
- 单击+以使用列表顶部的 Google IP 地址替换或添加任何列出的地址:
- 对于 IPv4:8.8.8.8 和/或 8.8.4.4。
- 对于 IPv6:2001:4860:4860::8888 和/或 2001:4860:4860::8844。
- 对于仅 IPv6:您可以使用Google Public DNS64 代替上一点中的 IPv6 地址。
- 单击确定>应用。
原创文章,作者:开空网,转载请注明出处:https://www.openull.org/doh.html