튜토리얼 · 예상 읽기 15분

Clash Meta Sniffer 켜기:
HTTPS가 잘못된 정책으로 갈 때 SNI로 분할 수정

TUNFakeIP, 프록시 그룹을 써도 일부 HTTPS만 다른 노드·직접 연결로 가는 경우, 첫 판단이 IP에만 기대고 TLS SNI가 뒤늦게 보이기 때문일 수 있습니다. 본문에서는 Mihomo(Clash Meta)에서 Sniffer를 켜고 override-destination을 이해하며 DNS·skip-domain과 함께 점검하는 순서를 정리합니다.

Clash Meta Sniffer · HTTPS · SNI · 스니핑 · 프록시 그룹

1 TUN·FakeIP를 켰는데도 HTTPS만 엉뚱한 정책 그룹으로 가는 이유

Clash 계열 규칙은 대부분 도메인을 전제로 작성됩니다. DOMAIN-SUFFIX, GEOSITE 등은 코어가 접속의 호스트명을 알 때 비로소 의도대로 매칭됩니다. 그러나 TUN·투명 프록시, 특히 FakeIP를 쓰면 첫 라우팅 판단 시점에는 목적지가 IP(가짜 풀 주소 포함)로만 보이는 경우가 많습니다. TLS에서는 ClientHello 안의 SNI에 호스트명이 실리는데, 코어가 너무 이른 단계에서 IP 위주로 한 번 결정해 버리면 도메인 규칙이 뒤늦게 등장해 「도메인 규칙을 썼는데 일부 HTTPS만 직접 연결·다른 노드로 간다」는 현상이 납니다.

이는 「노드가 느리다」「URL-Test가 틀렸다」와는 다른, 정보가 나타나는 순서 문제입니다. 사이트 내《DNS 유출 방지: Meta DoH + FakeIP》는 해석 측에서 FakeIP·DoH를 정리합니다. 본문은 TLS 측에서 보완하여, 규칙에 필요한 도메인이 아직 없고 연결이 IP로만 보일 때 Clash Meta Sniffer로 핸드셰이크에서 실제 호스트명을 되살리는 흐름을 설명합니다.

2 Sniffer가 읽는 것: TLS SNI, HTTP Host, QUIC

Sniffer(스니퍼)는 Mihomo / Clash Meta에서 지정 포트의 아직 복호화하지 않아도 되는 첫 부분을 파싱해 TLS SNI, 평문 HTTP Host, 환경에 따라 QUIC 관련 정보를 뽑아 규칙에 쓸 호스트명으로 연결합니다. HTTPS 중간자 공격(MITM)이 아니라 핸드셰이크 메타데이터만 읽으며, 페이로드는 건드리지 않습니다. 구독·룰셋을 대신해 주지는 않고, 「라우팅 시점에 도메인이 비어 있다」는 틈을 메웁니다. 노드 자동 선택은《Clash URL-Test·Fallback》글과 함께 이해하면 레이어가 나뉩니다.

한 줄 요약 HTTPS 분할에는 도메인이 필요하고, 스니핑은 TLS에 실린 이름을 규칙 엔진에 일찍 넘겨 IP만 보고 오판하는 일을 줄입니다.

3 최소 설정: sniffer: 블록과 포트

설정 루트(dns:, proxies:와 동일 레벨)에 sniffer:를 두고 enable: truesniff: 아래에 TLS·HTTP 등 프로토콜별 포트를 선언합니다. 브라우저 위주라면 TLS 443이 중심입니다. Mihomo 버전마다 필드명이 조금씩 다를 수 있으니 업그레이드 뒤에는 반드시 구성 검증을 돌리세요.

skip-domain에는 스니핑을 건너뛸 호스트를 넣습니다. IoT·사내망 등 호환 문제가 있는 도메인을 제외하면 불필요한 재시도를 줄일 수 있습니다. force-dns-mapping은 FakeIP와 강하게 연결되므로 DNS 섹션만 바꾸지 않고 Sniffer만 켜면 로그가 엇갈릴 수 있습니다.

YAML (sniffer, 예시)
sniffer:
  enable: true
  sniff:
    TLS:
      ports:
        - 443
        - 8443
    HTTP:
      ports:
        - 80
        - 8080-8880
  skip-domain:
    - '+.lan'
  force-dns-mapping: true
  parse-pure-ip: false

리로드 후 로그에서 파싱 오류가 없는지, 문제 사이트 연결에 호스트명이 찍히는지 확인하세요. 효과가 없으면 실제 트래픽이 목록에 없는 비표준 HTTPS 포트를 쓰는지 먼저 의심합니다.

4 override-destination: 스니핑 결과로 목적지 덮어쓰기

SNI를 읽었다고 해서 곧바로 도메인으로 최종 라우팅이 다시 계산되는 것은 아닙니다. override-destination(또는 동일 기능 플래그)이 켜져 있어야 스니핑한 이름으로 DOMAIN 규칙과 HTTPS 분할·프록시 그룹 선택이 맞물립니다. 꺼 두면 로그에만 나오고 출구는 그대로인 경우가 생깁니다.

문제 사이트 하나만 골라 로그를 보며 켜고 끄는 식으로 검증하고, 게임·금융 앱과 충돌하면 해당 도메인을 skip-domain에 넣거나 일시적으로 끕니다. OS 프록시 예외·LAN 바이패스는 「Clash에 들어오느냐」이고, override는 「규칙이 IP를 보느냐 도메인을 보느냐」입니다.

5 DNS·FakeIP·redir-host와의 정렬

DNS는 「이름을 어떤 IP로 풀 것인가」, Sniffer는 「이 연결이 TLS에서 무엇이라고 이름을 올리는가」를 다룹니다. FakeIP 필터·DoH 업스트림이 어긋나면 SNI는 맞는데 캐시·해석이 흔들리는 것처럼 보일 수 있습니다. fake-ip-filter, nameserver-policy, fallback을 손볼 때는 Sniffer 변경과 한 번에 한 축만 바꾸고 기록해 두세요.

redir-host 모드에서도 도메인 규칙을 쓰면 Sniffer는 여전히 유용합니다. 같은 사이트·같은 노드에서 Sniffer와 override만 번갈아 켜고 로그의 정책 매칭을 비교하면 원인 분리가 쉽습니다. 시스템 프록시를 무시하는 프로세스는《Clash Verge Rev TUN 모드》로 터널에 먼저 넣어야 합니다. 코어에 도달하지 않는 트래픽은 Sniffer 이전의 문제입니다.

6 자주 하는 실수

  • 포트 누락: 비표준 HTTPS 포트면 TLS 스니퍼가 동작하지 않습니다.
  • 규칙 순서: 앞선 IP-CIDR·넓은 MATCH가 먼저 잡으면 도메인 규칙에 닿지 않습니다.
  • ECH 등: SNI가 안 보이면 DNS·엔드포인트 쪽으로 돌아가야 합니다.
  • skip-domain 과다: 제외가 많을수록 수정이 안 되는 호스트가 늘어납니다.
  • Meta가 아닌 코어: 스니퍼 필드를 무시하는 포크도 있습니다.
준수 스니핑은 로컬 라우팅용으로만 사용하고, 기업·규제 환경에서는 정책에 맞게 운영하세요.

7 정리

Clash Meta Sniffer는 FakeIP 등으로 연결이 처음에 IP로만 보일 때 TLS SNI 등 메타데이터를 되살려 HTTPS 분할프록시 그룹이 도메인 규칙과 맞도록 돕습니다. override-destinationDNS·fake-ip-filter·DoH를 함께 맞춰야 루프가 닫힙니다. URL-Test 글은 「어느 노드로 보낼지」, 본문은 「규칙이 보는 이름이 맞는지」를 담당합니다.

GUI 클라이언트는 리로드와 로그 확인이 편합니다. 설치 파일은 사이트 다운로드 페이지를 이용하세요. 운영용 프로필은 수정 전 YAML 백업을 권장합니다.

Sniffer와 DNS 중 한 가지만 바꾸고 현상을 기록해 두면 공항·룰셋이 바뀐 뒤에도 원인 추적이 빨라집니다.

→ Clash 무료 다운로드로 빠르고 안정적인 연결 경험하기

태그: Clash Meta Sniffer HTTPS 분할 SNI 스니핑 프록시 그룹 Mihomo
Clash 客户端 Logo

Clash Verge Rev

新一代 Clash 客户端 · 免费开源

内建 TUN、支持 Mihomo 内核与 Sniffer,HTTPS 走错分流时可配合本文与 DNS 专题一键重载验证。Windows、macOS、Linux 全平台可用,适合需要 FakeIP 与规则协同的进阶用户。

TUN 全流量接管 Mihomo 高效能核心 Sniffer 与规则协同 策略组可视化 多订阅管理

相关阅读