CClash 下载中心下载入口

配置笔记

开了 TUN 仍看不到 DNS:dns-hijack 能接管哪些请求

按 UDP/TCP 53、系统局域网 DNS 与 Android 私人 DNS 区分接管范围。

更新于 2026/10/3 · Clash 编辑组

TUN 打开后,网站能访问,但内核 DNS 没有看到预期查询,应先确认应用实际使用哪种 DNS。dns-hijack 根据连接条件把请求导入内部 DNS,它不是对所有解析协议都有效的万能开关。本文依据当前 mihomo 文档,客户端可能对字段作进一步封装。

先解释这两行

tun:
  dns-hijack:
    - any:53
    - tcp://any:53

这是 DNS 劫持字段的教学片段,不是完整 TUN 配置。没有协议前缀时,手册说明按 UDP 处理;第二行指定 TCP。它们针对 53 端口连接,不等于自动覆盖通过 HTTPS 等方式发送的所有 DNS 查询。

不要直接把片段覆盖原 tun 部分,否则可能丢掉已有路由和排除项。先在客户端查看实际配置是否已经包含相应字段,再决定是否需要调整。

平台限制要一起读

手册说明,macOS 和 Windows 无法自动劫持发往局域网的 DNS 请求;Android 开启私人 DNS 时,也无法自动劫持 DNS。遇到这些条件,内核没有记录不一定表示 TUN 整体失败。

例如系统指向路由器局域网 DNS,或者应用启用独立加密解析,应先记录该路径。用于对照时可以在自己管理的设备上临时切换一个解析设置,完成后恢复原值;企业设备需遵守已有管理配置。

用连接记录拆分问题

先看普通目标请求是否进入 TUN,再看 DNS 请求是否进入内部解析器。前者有、后者无,重点核对 DNS 路径;两者都无,继续检查接管、路由和应用排除。网页成功也可能用了缓存,不足以证明这次发生了新解析。

不要因为看不到 DNS 就同时关闭 IPv6、改 MTU、删除网卡。保留系统、客户端、内核版本以及解析方式,一项项验证。相关:代理模式笔记。依据:mihomo TUN 中 dns-hijack 与平台限制。本文未进行跨平台设备测试。

← 返回全部文章