当 Clash TUN 遇上 Tailscale:一次 macOS 下 DNS 劫持失效的排查记录

date
Mar 21, 2026
slug
clash-tun-tailscale-dns-hijack
status
published
summary
macOS 同时运行 Clash Verge TUN 模式和 Tailscale 时,终端翻墙失效的根因分析。解法:tailscale set --accept-dns=false
tags
macOS
网络
DNS
Tailscale
Clash
type
技术博客
URL

当 Clash TUN 遇上 Tailscale:一次 macOS 下 DNS 劫持失效的排查记录

在 macOS 上同时运行 Clash Verge(TUN 模式)和 Tailscale,是不少技术人的日常。但如果你发现开了 TUN 模式后终端依然无法翻墙,这篇文章可能会帮你省掉几个小时。

症状

Clash Verge 的 TUN(虚拟网卡)模式已开启,浏览器通过系统代理可以正常访问,但在终端执行 `wget www.google.com` 时,连接始终超时:
Connecting to www.google.com (www.google.com)|199.16.158.12|:80... connected.
HTTP request sent, awaiting response... No data received.
Retrying.
注意那个 IP:`199.16.158.12`——这不是 Google 的真实 IP,而是 DNS 污染返回的假地址。

排查过程

第一步:确认 TUN 设备和路由是否生效

ifconfig | grep utun
netstat -rn | grep utun
结果显示 `utun1024` 设备正常运行,路由表中可以看到经典的 split route(1/8, 2/7, 4/6 ... 128.0/1),等效于全局接管。**路由没有问题。**

第二步:怀疑 DNS

既然路由正常,流量应该已经被 TUN 接管了,但 wget 拿到的却是被污染的 IP。在 Clash 的 fake-ip 模式下,DNS 查询应该返回 `198.18.x.x` 段的虚拟地址,再由 Clash 内部做真实解析和代理转发。返回真实(且被污染的)IP,说明 DNS 查询根本没经过 Clash。
nslookup www.google.com
Server:         100.100.100.100
Address:        100.100.100.100#53

Name:   www.google.com
Address: 157.240.17.35
两个关键信息浮出水面:
  1. 系统 DNS 服务器是 `100.100.100.100`——这是 **Tailscale 的 MagicDNS**

第三步:检查 Clash DNS 配置

打开 Clash Verge 的配置文件,DNS 段的关键配置如下:
dns:
  enable: true
  listen: 0.0.0.0:1053
  fake-ip-range: 198.18.0.1/15
  nameserver:
    - https://...
看起来没问题?但仔细一看——**缺少 `enhanced-mode: fake-ip`**。
虽然配了 `fake-ip-range` 和 `fake-ip-filter`,却没有告诉 Clash 启用 fake-ip 模式。补上这一行后,问题仍然存在。这说明根因不在这里。

第四步:找到真正的根因

关键线索在 Clash 的官方文档里:
DNS hijacking might result in a failure if the system DNS is at a **private IP address**, since auto-route does not capture private network traffic.
`100.100.100.100` 属于 CGNAT 地址段(100.64.0.0/10,RFC 6598),这是**私有地址**。而 Clash TUN 的 `auto-route` 设计上不会捕获私网流量——因为如果捕获了,局域网通信就全断了。
于是真相大白:
  1. Tailscale 开启 MagicDNS 后,将 macOS 的系统 DNS 设为 `100.100.100.100`
  1. 该地址属于私网段,Clash TUN 的 auto-route 不拦截
  1. `dns-hijack: any:53` 形同虚设——流量根本没进 Clash 的 TUN 设备

解决方案


© Ying Bun 2021 - 2026