DNS가 중요한 이유
DNS(Domain Name System, 도메인 네임 시스템)는 인터넷의 「전화번호부」로, example.com과 같은 읽기 쉬운 도메인 이름을 컴퓨터가 인식할 수 있는 IP 주소로 변환하는 역할을 합니다. 브라우저에서 URL을 입력하거나 앱을 열 때, 가장 먼저 일어나는 과정이 바로 DNS 조회입니다. 올바른 IP를 얻어야만 이후의 TCP 연결과 HTTPS 핸드셰이크가 가능합니다.
Clash와 같은 프록시 도구에서 DNS는 단순히 「도메인 이름을 해석」하는 것 이상의 역할을 합니다. DNS는 트래픽 분기 결정에 직접 참여합니다. Clash의 규칙은 도메인 기반(DOMAIN), IP 대역 기반(IP-CIDR), GeoIP 기반(GEOIP) 매칭을 지원합니다. DNS 해석 결과가 잘못되면 전체 트래픽 분기 체인이 함께 오류를 일으킵니다.
잘못된 설정은 보통 두 가지 문제를 유발합니다:
- DNS 유출: 프록시를 통해야 할 도메인이 로컬 또는 ISP DNS로 해석되어, 접속 의도가 노출될 수 있고 DNS 오염으로 잘못된 IP를 얻어 연결 실패나 프록시 우회 문제가 생깁니다.
- 트래픽 분기 오류: IP 기반 규칙(예: GEOIP,PRIVATE,DIRECT)은 올바른 해석 결과에 의존합니다. 프록시가 필요한 도메인이 로컬 CDN 노드 IP로 해석되면 직접 연결로 잘못 처리될 수 있고, 반대로 로컬 도메인이 예상치 않은 IP로 해석되면 불필요하게 프록시 트래픽을 소모합니다.
따라서 DNS 설정은 Clash 고급 최적화에서 빼놓을 수 없는 부분입니다. 원리를 이해하면 「왜 특정 사이트가 갑자기 직접 연결되는지」, 「왜 스트리밍이 열리지 않는지」와 같은 일반적인 현상을 설명할 수 있습니다. 이 글에서는 오염 원인부터 해석 모드, 실전 설정까지 Clash DNS의 완전한 사용법을 체계적으로 안내합니다.
DNS 오염과 암호화 DNS
암호화되지 않은 UDP/TCP DNS 쿼리에서는 요청이 평문으로 전송되어 중간 네트워크 장치가 반환 결과를 변조할 수 있습니다. 이것이 흔히 말하는 DNS 오염입니다. 오염된 도메인은 잘못된 IP(흔히 0.0.0.0 또는 특정 차단 주소)를 반환하여 웹사이트에 접근할 수 없거나 잘못된 서버로 연결됩니다.
오염에 대응하기 위해 Clash는 DoH(DNS over HTTPS)와 DoT(DNS over TLS) 같은 암호화 DNS 프로토콜을 지원합니다. 암호화 후에는 쿼리 내용이 변조되기 어려워 해석 결과가 더욱 신뢰할 수 있습니다. Clash의 nameserver와 fallback 메커니즘은 「주 DNS 빠른 해석 + 암호화 폴백으로 신뢰성 향상」이라는 아이디어를 중심으로 설계되었습니다.
default-nameserver는 nameserver와 fallback 내 DoH 도메인 자체를 해석하는 데 사용됩니다(예: dns.google의 IP 해석). 신뢰할 수 있는 UDP DNS를 설정하여 「닭이 먼저냐 달걀이 먼저냐」의 문제를 피합니다.
Clash의 두 가지 해석 모드
redir-host
redir-host 모드에서 Clash는 먼저 DNS 서버에 실제 해석 요청을 보내고, 실제 IP를 얻은 후 규칙에 따라 프록시를 통할지 직접 연결할지 결정합니다. 논리가 직관적이고 이해하기 쉬우며, GEOIP 판단을 위해 실제 IP가 필요한 경우에도 적합합니다.
하지만 단점도 분명합니다: 프록시 대상 도메인을 해석할 때 오염을 만나 잘못된 IP를 얻기 쉽고, 매 연결 전 DNS 응답을 기다려야 해 첫 패킷 지연이 증가하며, 일부 앱의 DNS 캐시가 Clash의 트래픽 분기 전략과 충돌할 수 있습니다.
fake-ip(권장)
fake-ip 모드에서 Clash는 해석할 각 도메인에 예약 대역 내의 「가짜 IP」(기본값 198.18.0.0/16, IANA 예약 주소로 실제 공인 IP와 충돌하지 않음)를 할당합니다. 앱이 fake-ip를 받아 연결을 시도하면, Clash가 로컬에서 해당 연결을 가로채 도메인 매핑 테이블에 따라 프록시를 통할지 직접 연결할지 결정한 후 실제 연결을 생성합니다.
장점은: 실제 DNS 응답을 기다리지 않고 앱에 빠르게 응답할 수 있으며, 도메인 정보가 Clash 내부에 보존되어 트래픽 분기가 더 정확하고, 스트리밍·규칙 분기와의 호환성이 더 뛰어나 현재 커뮤니티에서 가장 주류인 선택입니다.
추천 설정
아래는 많은 사용자에게 검증된 DNS 설정 템플릿으로, Clash 설정 파일에 바로 추가할 수 있습니다(상위 DNS는 네트워크 환경에 따라 미세 조정 가능):
각 필드의 의미를 간략히 설명합니다:
- nameserver: 주 DNS. 거주 지역에 가까운 암호화 DNS 서버를 선택하면 낮은 지연으로 해석할 수 있습니다.
- fallback: nameserver의 결과가 「신뢰할 수 없다」고 판단될 때(예: GeoIP가 설정한 지역과 불일치), fallback으로 다시 해석합니다. 암호화 DNS를 사용해 신뢰성을 높입니다.
- fallback-filter.geoip: GeoIP 필터 활성화. nameserver가 반환한 IP의 귀속 국가가 geoip-code(국가 코드로 변경하세요. 예: KR)와 일치하지 않으면 fallback을 트리거합니다.
- fake-ip-filter: fake-ip가 필요 없는 도메인을 제외합니다. LAN의 *.lan, 실제 IP가 필요한 일부 로컬 서비스 등입니다.
자주 발생하는 문제와 해결
자주 사용하는 사이트가 열리지 않거나 느려짐
fallback이 잘못 트리거되어 로컬 도메인이 예상치 않은 DNS로 해석되는 경우일 수 있습니다. fallback-filter가 올바른지 확인하거나, 직접 연결 도메인 규칙 앞에 DOMAIN 직접 연결 규칙을 추가하세요. nameserver-policy에서 특정 도메인에 전용 DNS를 지정할 수도 있습니다.
스트리밍 지역 제한 오류
일부 스트리밍 서비스는 DNS와 IP가 일치하는지 확인합니다. 스트리밍 관련 도메인이 프록시를 통해 전달되고 DNS 해석도 프록시 측에서 처리되는지 확인하세요. 필요에 따라 규칙에서 Netflix, Disney+ 등을 개별적으로 설정하세요.
LAN 장치 간 접근 불가
fake-ip는 mDNS, Bonjour 등의 LAN 검색 프로토콜에 영향을 줄 수 있습니다. *.local, *.lan을 fake-ip-filter에 추가하거나 해당 대역에 redir-host를 사용하세요. Chromecast, AirPlay 등의 기기가 있는 경우 관련 도메인도 filter에 추가하여 화면 미러링과 검색 기능이 정상 작동하도록 하세요.
IPv6 관련 참고 사항
네트워크 환경에서 IPv6가 아직 필요하지 않다면 ipv6: false를 유지하여 일부 앱이 IPv6를 우선 사용해 트래픽 분기 이상이 발생하는 것을 방지하세요. IPv6를 완전히 활성화한 경우 true로 설정하고 nameserver-policy에서 IPv6 도메인에 전용 해석 경로를 지정하여 v4/v6 트래픽이 모두 올바르게 분기되도록 하세요.
설정 적용 확인
설정 완료 후 다음 단계로 확인하는 것을 권장합니다:
- DNS 유출 검사 사이트(예: dnsleaktest.com)에 접속하여 해석 출구가 예상과 일치하는지 확인하세요. 프록시 활성화 시 로컬 ISP DNS가 노출되지 않아야 합니다.
- 자주 사용하는 로컬 사이트와 프록시를 통해 접속할 사이트에 각각 접속하여 전자는 직접 연결, 후자는 프록시를 통하는지, 속도가 정상인지 확인하세요.
- Clash 대시보드 또는 로그에서 연결 기록을 확인하여 도메인과 규칙 매칭이 예상과 일치하는지 확인하세요.
- 프록시를 끄고 다시 켠 후 앱이 여전히 정상적으로 해석되는지 확인하여 DNS 캐시로 인한 이상을 배제하세요.
정리
올바른 DNS 설정은 안정적인 프록시 경험의 기초입니다. fake-ip 모드를 「주 지역 DNS + 암호화 폴백 + GeoIP 필터」 트래픽 분기 전략과 함께 사용하면 유출 방지, 오염 방지와 양호한 접속 속도를 동시에 달성할 수 있습니다. LAN 또는 특수 앱 문제가 생기면 fake-ip-filter와 nameserver-policy를 활용해 세밀하게 조정하세요. 설정 후 반드시 실제 테스트로 검증하고, 실제 네트워크 환경에 따라 지속적으로 최적화하세요. DNS 설정을 숙달하면 대부분의 해석 관련 연결 이상을 독립적으로 해결할 수 있으며, 이후 규칙 분기와 프록시 그룹 최적화를 위한 탄탄한 기반이 됩니다.
Clash를 시작할 준비가 되셨나요?
Clash 공식 사이트에서 무료 클라이언트를 다운로드하고 구독을 가져오기만 하면 됩니다. Windows, macOS, Android, iOS, Linux 모든 플랫폼을 지원하며 몇 분 만에 시작할 수 있습니다.