DNS¶
Surge 使用自定义的 DNS 客户端实现,行为可能与操作系统的 DNS 客户端不同。
上游 DNS 服务器¶
基本配置¶
使用 system 关键字追加系统 DNS:
技术细节¶
- Surge 同时向所有 DNS 服务器发起查询(类似 dnsmasq 的
--all-servers模式),使用最先返回的响应 - 如果 2 秒内无响应,再次查询所有服务器
- 重试四次后仍无响应则报告 DNS 错误
- 当 IPv6 启用时,同时发送 A 和 AAAA 请求
本地 DNS 映射¶
[Host] 段落用于本地 DNS 映射,功能比 /etc/hosts 更强大。
静态映射¶
通配符¶
使用 * 前缀通配所有子域名:
通配符匹配规则
Surge 使用简单的字符串匹配。*google.com 会匹配 google.com、foo.google.com 以及 bargoogle.com。而 *.google.com 不会匹配 google.com。
别名 (CNAME)¶
分配 DNS 服务器¶
为指定域名分配特定的 DNS 服务器:
默认情况下,所有 .local 后缀的主机名由系统解析。
引用规则集(Mac 5.10.0+)¶
将 DOMAIN-SET 或 RULE-SET 绑定到 DNS 映射条目:
代理请求使用本地 DNS¶
启用后,对于符合本地 DNS 映射的请求,Surge 使用本地 IP 地址而非原始域名发送代理请求。仅对使用 IP 地址的记录有效。
加密 DNS¶
支持的协议¶
| 协议 | 格式 |
|---|---|
| DNS over HTTPS (DoH) | https://example.com/dns-query |
| DNS over HTTP/3 (DoH3) | h3://example.com/dns-query |
| DNS over QUIC (DoQ) | quic://example.com |
全局加密 DNS¶
指定域名加密 DNS¶
通过代理使用加密 DNS¶
启用后,所有加密 DNS 连接遵循出站模式设置。可以为 DoH 主机名配置规则以使用代理:
虚假 IP (Fake IP)¶
Surge 在 VIF 模式下使用 198.18.0.0/15 地址段作为虚假 IP 地址。DNS 查询会被 Surge 的 DNS 客户端截获并返回虚假 IP,请求实际由 Surge 代理引擎处理。
相关设置¶
hijack-dns¶
默认仅对发送至 Surge DNS 地址 (198.18.0.2) 的 DNS 查询返回虚假 IP。使用 hijack-dns 劫持发送至标准 DNS 的查询:
虚假 DNS 响应器监听地址:
- IPv4: 198.18.0.2
- IPv6: fd00:6152::2