DoH
什么是 DoH
DoH:DNS Over HTTPS 协议
DoH 允许通过 HTTPS 协议进行 DNS 解析,可在进行DNS查询时,通过加密方式 发送数据保护用户隐私。
这种方法有助于 避免访问的网站被运营商或中间人窃取,当然也可以避免被中间人劫持和篡改。
传统的 DNS 有什么问题?
DNS 的全称是 Domain Name Server,是完成域名和与之相对应的IP地址转换的服务器。
通俗来讲,DNS 服务器就好比村口的王大爷,你告诉他你想找的住户名字(网站域名),他便引导你到正确的门牌号(IP地址)。
DNS是一套非常非常古老的协议,最早可追溯到1983年,自从1987年协议定稿之后,没有发生什么变化,被一直沿用至今。
开发DNS协议的时候,互联网还是新兴事物,因此大家根本没顾虑到信息的安全性和保密性。
传统的DNS查询和响应通过UDP或TCP发送而不加密,这很容易受到窃听和欺骗,包括基于DNS的网络审查,称为DNS污染。
继续刚才的比喻:你在村口遇到的可能是假的王大爷;你遇到的大爷会带你去错误的门牌号;王大爷给你指路时会被其他人听到。
你打开网易,登录自己的邮箱,你看到地址栏的网址是 mail.163.com 没错,于是信心满满地输入你的用户名和密码,殊不知你登录的其实是黑客设立的假网站……
DoH 工作原理
从攻击的角度来看,当我们使用 DoH 时,我们可以执行请求:
- 向已知的且值得信赖的一方发送请求(例如 Google)
- 我们可以从中控制响应
- 通过 SSL 加密的信道
- 如果被检查的话,那就变得不显眼
除了这些特征之外,我们发现许多已实施 SSL 检查的客户因各种原因(Google 产品中的证书,流量负载,隐私等)将所有 Google 域排除在检查范围之外。
总而言之,这使得 DoH 通过谷歌成为触发 Payload 的理想信道。
现状
此前支持 DoH 的服务器都在国外,而国内查询延时很长,连接性差,严重影响用户体验。
目前国内一些浏览器也加入了 DoH,不仅仅是给用户带来了安全,还代表了我国有能力建立自己的 DNS 根,未来将逐步脱离国际控制的 13 个 DNS 根,不再受外国服务器的控制。
DoH servers
https://github.com/curl/curl/wiki/DNS-over-HTTPS
如何在 macOS 使用 DoH(使用 cloudflared)
1、安裝 cloudflared
$ brew install cloudflare/cloudflare/cloudflared
2、建立 cloudflared 設定檔
这裡除了上次推荐的 FutaDNS 以外,另外再推荐一个同样使用 AdGuard Home 搭出来的公共 DNS 服务
服务器在谷歌 GCP 台湾机房,台湾各地连线过去的速度都很快
公共 DNS 项目的简介网页: https://readme.avpclub.gq
来源: https://www.pcdvd.com.tw/showthread.php?t=1157681
# 新建資料夾跟設定檔
$ mkdir -p /usr/local/etc/cloudflared
$ nano /usr/local/etc/cloudflared/config.yaml
proxy-dns: true
proxy-dns-upstream:
- https://adh.avpclub.gq/dns-query
- https://dns.futa.gg/dns-query
記得保存退出
你不喜歡过滤的話,也可以直接使用 CloudFlare 的公共加密 DNS
- https://1.1.1.1/dns-query
- https://1.0.0.1/dns-query
3、启动 cloudflared
$ sudo cloudflared service install
cloudflared Service 安裝後,以後重開機都會自動啓動 DNS 伺服器,會在本機開始 listen port 53
日後不想用的話,可以透過以下指令移除 Service
$ sudo cloudflared service uninstall
4、修改 macOS 系统网路设定
最后打开 macOS 的「系统偏好设定」,依序找到「网络」--「高级」--「DNS」
改成本机 IP 即可
这样就可以了
参考
-
MacOS 开启 DNS over HTTPS (DoH)
https://blog.yao.no/tech/doh.html -
DNSCrypt / dnscrypt-proxy
https://github.com/DNSCrypt/dnscrypt-proxy -
如何在 macOS 使用 DNS over Https(DoH)
https://www.jkg.tw/p3361/ -
github: cloudflared
https://github.com/cloudflare/cloudflared
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!