一、先对齐现象:哪些算「Sniffer 可疑」
并不是所有 HTTPS 报错都该怪嗅探。下面几类在已开启 Sniffer、且关代理就恢复时,把嗅探列入怀疑名单才划算:
- 浏览器报证书与域名不符、中间人一类提示,而同一机器不经代理访问同一站正常。
- 页面停在白屏或资源(脚本、API)孤立的 TLS 失败,开发者工具网络面板里大量红色,且 Host 属于同一主域的不同子域。
- Clash 日志里能看到嗅探或 TLS 相关行,而关闭嗅探后同一规则集下该站突然可访。
若你的症状是「任何站都慢」而不仅是少数金融/政务域,更优先查节点质量、SNI 与规则,可先读 TLS Handshake Timeout 与节点、SNI 排查,再回本文做嗅探维度的对照。
二、嗅探在 Clash 里到底做了什么
在 Meta 系等内核里,sniffer 模块典型用途是:在流量已加密、应用未暴露明文 Host 时,从 TLS Client Hello 等位置恢复域名,让「基于域名的规则」仍有机会命中。没有嗅探时,很多连接在日志里只有 IP,分流与统计会「看不清是谁」。
副作用在于:恢复主机名的路径要与目标站点的 TLS 实现、HTTP/2、多证书、双向认证兼容。对网银、数字证书、硬件 Key、政务统一登录等场景,握手链更长、子域更多,嗅探与后续处理若与 fake-ip 或 DNS 映射叠在一起,更容易出现你肉眼可见的「链路上某环不对」。更完整的 fake-ip 与 DNS 关系见 fake-ip-filter 与 DNS 逐步排查;本文不重复其 YAML,只强调嗅探是另一把独立旋钮。
skip-domain 时只加必要后缀,避免拍脑袋写一长串不相关的通配。
三、第一步:关嗅探做 A/B 对照
排障时一次只改一个变量。在 YAML 中通常是把 sniffer 下的 enable 设为 false,或在图形界面中关闭「嗅探 / Sniffer」总开关,然后重载配置并重启 TUN/系统代理(见后文「图形界面」一节)。
若关嗅探后问题消失,即可认定嗅探在该环境、该核心版本下与目标流不兼容,下一步不应长期全局关闭,而应分域名摘出。若关嗅探后问题仍在,则回到 节点、SNI、fake-ip、DNS、规则顺序,不要和嗅探死磕。对照实验时尽量别同时改节点与 DNS,否则无法归因。
四、第二步:分域名从嗅探中排除
在多数 Mihomo/Clash Meta 系配置中,可以通过 sniffer 下的 skip-domain(或随版本演进的等效键名,请以你内核文档为准)按域名后缀排除嗅探。思路是:仅对「已确认有问题的根域/后缀」停止嗅探,其他流量仍保留嗅探以维持分流与日志可读性。
下面示意仅作结构说明,键名、缩进以你正在运行的核心与示例配置为准,导入前请自行核对发行版说明:
sniffer:
enable: true
# skip sniffer for sensitive banking / gov site suffixes (examples only)
skip-domain:
- '+.example-bank.com'
- '+.example-gov.cn'
sniff:
TLS:
ports:
- 443
QUIC:
ports:
- 443
列表里 +. 前缀在常见实现中表示匹配该域及其子域;具体语法请对照你当前核心版本的官方文档。没有把握时,先用最小集(只加根域一条)验证,再按浏览器网络面板里实际请求的子域补全。
收窄端口与协议
部分用户会把 sniff 下的端口列得极宽。若你只想让嗅探服务常规网页 HTTPS,可先把 TLS 443 等必要项保留,把明显用不到的端口从嗅探中拿掉,观察政务站是否随范围收窄而恢复。这与「分域名」是两个独立动作,可以分两天试,减少变量纠缠。
五、政务与网银的多子域与静态资源
很多门户一站登录会跳转到多个子域与不同 CDN 主机。你只对主页域名做了排除,若静态资源、接口仍在另一子域上被嗅探,就会表现为「半拉页面、接口全红」。用浏览器「网络」筛选出全部失败请求的主机名,把它们的公共后缀或具体主机按策略加入 skip 列表,比盲目增加节点更对症。
部分客户端会把「嗅探结果」与 force-dns-mapping 一类选项联动;若你曾在 fake-ip 文 里动过相关段落,改嗅探时记得整段一起复查,避免只改一半又抱怨「时好时坏」。
六、和 fake-ip、TLS 日志的界限
Fake-ip 解决的是「先给假 IP 再让下游解析与规则协作」;Sniffer 解决的是「流已经起来了我仍要猜域名」。两者常同时开,但症状不叠加成同一个词:证书类问题多看嗅探与 TLS 栈;全站只有 DNS 异常多看 fake-ip-filter 与 DNS 上游。日志里若反复出现 TLS handshake 相关字样,可并行阅读 TLS 专文 中的「缩小变量」部分,和本文对照实验合起来用。
若你使用 TUN 模式,与系统其他 VPN 或安全软件叠罗汉,也会把「少数域异常」伪装成嗅探问题。可临时仅开系统代理做小范围 A/B,仍建议配合 TUN 与路由排查 中关于排除项的说明,避免只改一项就下结论。
七、图形界面里改完为何要重载
许多衍生客户端在 UI 里暴露「嗅探」开关,底层仍写回同一份 运行时配置。修改后若只点「应用」而没有重载核心或重绑 TUN,旧行为可能仍留在内核里。分域名排除时,也建议在保存后观察连接日志一两条,确认新访问不再走嗅探路径,再继续加第二组域名。
需要查阅通用名词与模式说明时,可打开 本站文档与教程索引,再回到你自己的 YAML 逐段核对,避免从论坛复制大段不兼容的嗅探段。
八、排查清单
- 关嗅探后,问题是否稳定消失?若否,先回到节点与 DNS。
- 浏览器里失败的请求Host 是否集中在少数几个后缀?是则按后缀配置
skip-domain。 - 是否只改了主页域名而遗漏资源子域?用网络面板补全名单。
sniff端口是否远宽于需要?先收窄到常规 HTTPS 再试。- 同机是否还开着会改 TLS 的安全软件/抓包?会则先关掉再试嗅探组合。
| 你看到的现象 | 优先尝试 |
|---|---|
| 仅少数银行/政务站证书或白屏 | 关嗅探对照 → 为对应域配置 skip-domain → 补全子域 |
| 关嗅探后仍失败 | 查 节点、SNI、fake-ip-filter 与 规则命中;见 TLS 与 fake-ip 专文 |
| 开嗅探时日志里域名乱跳 | 合并 force-dns 与 fake-ip 设置;检查是否多 VPN 抢栈 |
九、小结
Clash Sniffer 让「看不见 Host 的加密流」也能被规则与日志读懂,是进阶分流的利器;但遇到网银、政务、强认证 HTTPS 时,它也可能成为与个别站点 TLS 实现不兼容的敏感开关。用关嗅探对照 → 分域名 skip → 收敛端口与假 IP 联动这一条线排下来,你能在不牺牲整网分流精度的前提下,把少数域从嗅探里安全摘出。
相比其他把代理当成黑盒的「一体化加速器」,Clash 与 Mihomo 系工具让你能看清「嗅探、DNS、规则」各层的输入输出;把每一次异常域记下来,你的配置会越用越稳,而不是每次出问题就只能全局关功能。