文档 配置 域名嗅探

域名嗅探

透明代理(TUN/Redir/TProxy)场景下,内核有时只能看到目标 IP,看不到域名,导致 DOMAIN 类规则失效。Sniffer 通过读取连接早期的 TLS SNI / HTTP Host 字段,把域名还原回来。

配置示例

config.yaml YAML
sniffer:
  enable: true
  force-dns-mapping: true
  parse-pure-ip: true
  override-destination: false
  sniff:
    HTTP:
      ports: [80, 8080-8880]
      override-destination: true
    TLS:
      ports: [443, 8443]
    QUIC:
      ports: [443, 8443]
  force-domain:
    - +.v2ex.com
  skip-domain:
    - Mijia Cloud
  skip-src-address:
    - 192.168.0.3/32
  skip-dst-address:
    - 192.168.0.3/32

字段说明

enable必须

是否启用 sniffer 总开关。

sniff必须

按协议配置要嗅探的端口,支持 HTTP/TLS/QUIC 三种。每个协议对象里的 ports 表示端口范围,override-destination 可选,用来覆盖全局设置。

override-destination默认 true

是否使用嗅探结果作为实际访问目标。开启后 DOMAIN/DOMAIN-SUFFIX 等域名规则才能对嗅探出的域名生效,否则规则仍然只看得到原始 IP。

force-dns-mapping可选

redir-host 类型识别的流量进行强制嗅探。

parse-pure-ip可选

对所有未获取到域名的流量(比如客户端已经自己解析过、直接拿着 IP 连接的情况)强制进行嗅探。

force-domain可选

需要强制嗅探的域名列表,支持通配符;默认情况下只对纯 IP 连接进行嗅探,配置这个可以对已知域名也强制重新嗅探。

skip-domain可选

跳过嗅探的域名列表,支持通配符。主要解决部分站点 SNI 字段不是标准域名导致嗅探结果异常的问题,例如米家设备的 Mijia Cloud、苹果推送服务 +.push.apple.com,建议加入名单。

skip-src-address / skip-dst-address可选

跳过嗅探的来源 / 目标 IP 段列表。