Sparkle / Mihomo/Clash开启 TUN 后 QQ、微信快捷登录失效的解决方法(Fake‑IP 问题)
Sparkle / Mihomo 开启 TUN 后 QQ、微信快捷登录失效的解决方法(Fake‑IP 问题)
在 Sparkle 中开启 TUN(虚拟网卡)模式后,可能会遇到一个比较典型的问题:
网页可以正常访问;
QQ、微信客户端本身也能正常联网;
但网页中的「QQ 快捷登录」「微信快捷登录」失效;
点击登录按钮后,无法正常识别或拉起本地已登录的 QQ / 微信客户端;
关闭 TUN 后又立即恢复正常。
一开始很容易怀疑是 TUN 路由、回环地址或域名嗅探导致的问题,但实际排查后发现,问题出在 DNS Fake‑IP(虚拟 IP)模式。
一、问题原因
Sparkle / Mihomo 开启 Fake‑IP DNS 模式后,会为域名返回一个虚拟 IP,例如:
198.18.x.x
默认虚拟 IP 地址池通常为:198.18.0.1/16
普通网站使用 Fake‑IP 不会出现异常,Mihomo 会在后续连接过程中通过 Fake‑IP 反向还原出原始域名,再依照代理规则转发处理流量。
但 QQ、微信的网页快捷登录实现机制比较特殊。
客户端在本机登录完成后,会在电脑本地启动一套本地服务,对外提供快捷登录校验、二维码交互等接口。像腾讯视频网页这类业务页面,就会向该本地服务发起请求,检测客户端登录状态并获取用户身份信息。
QQ、微信用于该交互的回环会话使用了特殊域名:
localhost.weixin.qq.com
localhost.ptlogin2.qq.com。
这两个域名表面上为公网域名,实际作用是完成网页浏览器和本地客户端之间的通信交互。实际地址都是127.0.0.1
一旦这两个域名被 Fake‑IP 接管,DNS 解析会返回虚拟地址:
localhost.weixin.qq.com → 198.18.x.xlocalhost.ptlogin2.qq.com → 198.18.x.x
此时浏览器访问的不再是本机的本地服务,而是 Mihomo 分配的 Fake‑IP 虚拟地址。
交互链路变为:
网页 ↓ 微信 / QQ 快捷登录域名 ↓ Fake‑IP ↓ 无法正常完成本地客户端检测 / 登录交互
于是现象表现为:开启 TUN 后 QQ / 微信网页快捷登录失效,关闭 TUN 立刻恢复正常。
问题根源并非 TUN 虚拟网卡本身,而是 TUN + Fake‑IP DNS 共同作用下,这一组本地交互域名错误地被分配了虚拟IP,它们应当直接解析真实IP,不走 Fake‑IP 映射。
二、解决方案
解决办法非常简单: 将 QQ 和微信快捷登录域名加入 Fake‑IP 过滤列表,让它们使用真实 IP。
目前需要加入:
localhost.weixin.qq.com
localhost.ptlogin2.qq.com
三、Sparkle 设置方法
进入: Sparkle → DNS → DNS 设置 → 虚拟 IP 过滤器
在「虚拟 IP 过滤器」中分别加入:
localhost.weixin.qq.com
localhost.ptlogin2.qq.com
设置完成后建议:
关闭一次虚拟网卡;
重新开启 TUN;
关闭并重新打开浏览器;
再次测试 QQ / 微信快捷登录。
正常情况下无需修改:
TUN Stack、Strict Route、MTU、域名嗅探、路由排除、系统代理
即可恢复。
四、对应 Mihomo 配置
如果使用的是 Mihomo YAML 配置,可以直接在 DNS 的 fake‑ip‑filter 中加入:
dns:
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- localhost.weixin.qq.com
- localhost.ptlogin2.qq.com
如果原本已经存在过滤规则,只需要追加这两个域名即可:
不同客户端的配置格式可能略有区别,但核心逻辑完全相同: 不要让这两个域名进入 Fake‑IP 映射。
五、为什么 +.local 无法解决?
很多 Mihomo 配置默认已经存在: +.local
但它只能匹配类似: xxx.local、printer.local、nas.local
而: localhost.weixin.qq.com 真正的域名后缀是: weixin.qq.com
同理: localhost.ptlogin2.qq.com 后缀也是: qq.com
因此: +.local 并不能匹配: localhost.weixin.qq.com 、 localhost.ptlogin2.qq.com
这里的 localhost 只是域名中的一个子域名,并不是 .local 顶级域。 所以需要单独加入过滤规则。
六、是否需要把整个 QQ / 微信域名都排除 Fake‑IP?
通常没必要。
例如不建议直接写: +.qq.com、+.weixin.qq.com
这样会导致大量腾讯业务都绕过 Fake‑IP: QQ、微信、腾讯登录、腾讯图片、腾讯 CDN、腾讯开放平台 范围明显过大。
更合理的方法是只针对存在兼容问题的域名设置: localhost.weixin.qq.com localhost.ptlogin2.qq.com
这样既能保留 Fake‑IP 的正常工作方式,又不会影响 QQ / 微信快捷登录。
七、最终推荐配置
对于 Sparkle 或 Mihomo 或 clash verge 的 TUN (虚拟网卡) 用户,可以保持:
TUN:开启
DNS:开启 Fake‑IP:开启
域名嗅探:开启
只额外添加 Fake‑IP Filter:
localhost.weixin.qq.com
localhost.ptlogin2.qq.com
即可。
八、总结
如果 Sparkle 开启 TUN 后出现: QQ / 微信网页快捷登录无法使用,但关闭 TUN 后恢复正常
不需要折腾 TUN 路由,也不需要把腾讯整个 IP 网段加入排除列表。
问题主要来自: Fake‑IP ↓ 错误接管 QQ / 微信快捷登录域名 ↓ 本地客户端登录交互失效
解决方式就是将: localhost.weixin.qq.com 、 localhost.ptlogin2.qq.com
加入: DNS → Fake‑IP Filter / 虚拟 IP 过滤器
让这两个域名直接解析真实 IP。 这是目前影响范围最小、配置最简单,同时也最干净的处理方式。
