ドキュメント 設定 ドメインスニッフィング

ドメインスニッフィング

透過プロキシ(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 の3種類に対応。各プロトコルオブジェクト内の 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 デバイスの Mijia Cloud や Apple のプッシュ通知サービス +.push.apple.com をリストに加えることをお勧めします。

skip-src-address / skip-dst-addressオプション

スニッフィングをスキップする送信元 / 宛先 IP 範囲のリスト。