규칙이 도메인 기준으로 매칭되려면 클라이언트가 "이 연결에 해당하는 도메인이 무엇인지"를 알 수 있어야 합니다. 특별한 처리가 활성화되어 있지 않으면 시스템은 해석된 IP만 Clash에 전달할 수 있고, 이 경우 도메인 정보가 이미 사라져 규칙이 도메인 기준으로 매칭될 수 없습니다. 이것이 바로 DNS 설정이 규칙 매칭 정확도에 매우 중요한 이유입니다.

enhanced-mode: 두 모드의 본질적인 차이

모드원리장단점
fake-ip 먼저 애플리케이션에 가상 IP를 반환하고, 연결이 수립될 때 가상 IP로부터 실제 도메인을 역조회하여 규칙 매칭에 사용 속도가 빠르고 도메인 정보를 더 일찍 확보할 수 있음. 실제 IP 반환값에 의존하는 소수의 경우에는 예외 처리가 필요할 수 있음
redir-host 실제 해석 결과를 그대로 반환하며, 트래픽 계층의 도메인 스니핑이나 리다이렉션을 통해 도메인을 확보 호환성이 더 좋지만 실제 DNS 조회에 의존하기 때문에 속도와 프라이버시 면에서 fake-ip보다 떨어짐

현재 주로 권장되는 방식은 fake-ip입니다. 호환성 문제는 주로 "DNS 조회 결과가 반드시 실제 IP여야 하는" 일부 LAN 프로토콜(예: 특정 기기 검색, 화면 공유 프로토콜 등)에서 발생합니다. 이런 문제가 발생하면 해당 도메인을 fake-ip-filter 예외에 추가하면 되며, 몇몇 특수한 경우 때문에 fake-ip 전체의 장점을 포기할 필요는 없습니다.

바로 사용할 수 있는 DNS 설정

dns.yaml
dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - '*.lan'        # LAN 내부 기기 도메인은 실제 해석을 사용해 검색 프로토콜 오류를 방지
    - '*.local'
  default-nameserver: [223.5.5.5, 119.29.29.29]   # DoH/DoT 도메인 자체를 해석하는 데 쓰이는 기본 DNS
  nameserver: ['https://doh.pub/dns-query', 'tls://dot.pub:853']
  fallback: ['https://1.1.1.1/dns-query', 'https://dns.google/dns-query']
  fallback-filter:
    geoip: true
    geoip-code: CN   # 예시일 뿐입니다 — 특정 국가 코드(여기서는 CN)로 필터링하며, 본인의 지역/ISP에 맞게 값을 바꿔야 합니다

DoH / DoT가 해결하는 문제는 무엇인가

기존의 DNS 조회는 평문 UDP 패킷으로 전송되기 때문에 통신사나 중간의 네트워크 장비가 어떤 도메인을 조회하는지 볼 수 있고, 조회 결과를 조작할 수도 있습니다(흔히 말하는 "DNS 오염"). DoH(DNS over HTTPS)와 DoT(DNS over TLS)는 조회 과정을 암호화하여 중간 네트워크 장비가 엿보거나 조작하는 것을 방지합니다.

fallback-filter: 정밀한 오염 방지

fallback-filter의 원리는 다음과 같습니다. 먼저 nameserver에 설정된 서버로 해석을 시도하고, 해석 결과의 IP가 지정된 지역에 속하지 않는다고 판단되면(예: geoip-code: CN을 활성화한 경우, 해당 지역의 IP가 아니라고 판단되면), fallback에 설정된 서버로 다시 해석하여 그 결과를 사용합니다.

이 메커니즘은 주로 "오염된 DNS 서버가 실제와 다른, 마치 로컬인 것처럼 보이는 잘못된 IP를 반환했지만 실제 사이트는 다른 곳에 호스팅되어 있는" 상황을 방지하는 데 사용됩니다. 이 설정을 활성화하면 기본 DNS가 오염되어 잘못된 결과를 반환하더라도, 다른 경로로 해석한 정확한 결과로 자동으로 보정할 수 있습니다.

일반적인 문제 해결 방법

  1. 특정 사이트 규칙을 분명히 올바르게 작성했는데도 적용되지 않는다? 먼저 enhanced-mode가 켜져 있는지, 또는 DNS 설정 전체가 제대로 적용되지 않았는지(예: 시스템 DNS 캐시가 지워지지 않은 경우)를 확인하세요.
  2. 특정 사이트 접속이 간헐적으로 실패해서 마치 하이재킹된 것 같다? 대부분 DNS 오염일 가능성이 높습니다. nameserverfallback 두 서버 그룹의 해석 결과가 일치하는지 각각 테스트해 보세요.
  3. LAN 기기(NAS, 스마트 스피커 등) 검색이 이상하다? 먼저 fake-ip-filter에 해당 도메인이 예외로 추가되어 있는지 확인하세요.
DNS 설정은 자주 바꿀 필요가 거의 없습니다 — 이 로직에 맞춰 한 번 제대로 설정해두면, 대부분의 "접속 이상" 문제는 근본적으로 발생하지 않게 됩니다.