MacOS 配置 DNS Over HTTPS

最近折腾了一下在 MacOS 本地搭建 DoH,把折腾过程记录一下。

介绍

  • 什么是 DoH

  什么是 DoH,可以看:https://zh.wikipedia.org/zh-cn/DNS_over_HTTPS。

  • 使用 smartdns-rs
    smartdns-rs 是一个用 Rust 编写的跨平台本地DNS服务器,获取最快的网站IP,获得最佳上网体验,支持DoH,DoT。

  • 开源在 GitHub: https://github.com/mokeyish/smartdns-rs
    使用这个软件可以非常方便的使用 DoH。

安装

如果你有安装 brew ,可以直接用下面的命令进行安装。

1
2
brew update
brew install smartdns

注意:监听 53 端口需要 root 权限,因此需要 sudo

brew 安装的 smartdns 的命令 sudo smartdns service startsudo brew services start smartdns 一样。

配置文件

下面是一份最简单的示例配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 在本地 53 端口监听
bind 127.0.0.1:53

# 配置 bootstrap-dns,如不配置则调用系统的,建议配置,这样就加密了。
server https://223.5.5.5/dns-query -bootstrap-dns -exclude-default-group

# 配置默认上游服务器
server https://dns.alidns.com/dns-query
server https://doh.pub/dns-query

# 配置公司(家里)上游服务器
server 192.168.1.1 -exclude-default-group -group office

# 以 ofc 结尾的域名转发至 office 分组进行解析
nameserver /ofc/office

# 设置域名的静态 IP
address /test.example.com/1.2.3.5

# 屏蔽域名(广告屏蔽)
address /ads.example.com/#

# 以下特性在[C 语言版 SmartDNS](https://github.com/pymumu/smartdns) 尚未支持,仅适用于SmartDNS-rs
# 使用 DoH3
server-h3 223.5.5.5

# 使用 DoQ
server-quic 223.5.5.5

更多高级的配置请参考 这里


MacOS 配置 DNS Over HTTPS
http://ysocket.pages.dev/2025/06/16/Mac-smartdns-DOH/
作者
YSocket
发布于
2025616
许可协议