文件 設定 網域嗅探

網域嗅探

透明代理(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 段列表。