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