1 WireGuard 오버레이와 Clash TUN이 겹치는 지점
Tailscale은 호스트에 가상 터널 인터페이스를 만들고, 피어·서브넷 라우터·Exit Node 정책에 맞춰 라우팅 테이블에 더 구체적이거나 우선순위가 높은 경로를 붙입니다. 한편 Clash의 TUN 모드는 커널이 선택하기 직전에 트래픽을 가로채 규칙(분할)에 따라 프록시·DIRECT로 보냅니다. 둘 다 «이 패킷은 어디로」를 바꾸므로, 메트릭·바인딩 인터페이스·exclude/bypass 목록이 한 번이라도 어긋으면 증상이 갈립니다.
또한 Tailscale의 MagicDNS는 기기 이름·테일넷 전용 이름을 100.64.0.0/10 대역의 피어 주소로 풀어 주는 역할을 합니다. Clash 쪽에서 fake-ip 범위나 nameserver 폴리시가 이 흐름과 충돌하면 «내부 기기 이름은 안 잡힌다»거나 반대로 공인 도메인이 127.0.0.1 스텁으로만 돌다 NXDOMAIN처럼 보이는 일이 생깁니다. 핵심은 패킷 경로(OS)와 이름→IP(리졸버)를 같은 표에서 보지 말고, 단계를 나눈다는 점입니다.
2 증상 네 가지로 원인 후보 줄이기
- 전체 단절: 기본 경로가 Exit·다른 어댑터로 잘못 잡혔거나, Clash TUN이 모든 IPv4/IPv6를 먹은 뒤 DNS까지 막힌 경우.
- 테일넷만 이상: 피어 간 UDP·DERP은 되는데 브라우저만 실패하면 DNS나 HTTP 프록시 쪽을 의심.
- 일부 공인 사이트만: 규칙 분할에서 해당 DOMAIN-SUFFIX가 잘못 잡혔거나, DoH·브라우저 보안 DNS가 Clash 스텁을 건너뛰는 경우.
- 간헐적 느림·타임아웃: 헤어핀(hairpin)·비대칭 라우팅·MTU 문제가 겹칠 때 흔합니다.
3 1단계: 라우팅 테이블과 인터페이스 메트릭
Windows에서는 연결 전후로 route print -4 또는 PowerShell Get-NetRoute -AddressFamily IPv4 | Sort-Object RouteMetric, DestinationPrefix로 0.0.0.0/0과 Tailscale 어댑터, 물리 NIC의 메트릭을 비교합니다. Tailscale이 서브넷 라우팅을 올리면 특정 접두사가 터널 쪽으로 더 긴(prefix) 경로로 붙습니다. Clash TUN이 동시에 기본 경로를 자신에게 붙이면 «누가 0.0.0.0/0을 가졌는가»가 순간적으로 바뀌어 일부 앱만 틀어질 수 있습니다.
Get-NetRoute -AddressFamily IPv4 | Sort-Object RouteMetric | Select-Object DestinationPrefix, NextHop, InterfaceAlias, RouteMetric
macOS에서는 netstat -rn -f inet로 기본 라우트를 보고, 필요하면 scutil --dns로 리졸버 순서를 함께 적어 둡니다. Wi‑Fi 재연결·슬립 깨우기 직후 스냅샷을 한 장 저장해 두면 간헐 이슈 추적이 쉬워집니다.
실무 팁으로, Tailscale만 잠시 끄고 Clash만 켠 상태와 Clash TUN만 끄고 Tailscale만 켠 상태를 번갈아 재현해 보면 충돌 축이 빨리 드러납니다. 둘 다 필요할 때는 Clash에서 LAN·테일넷 대역(예: 100.64.0.0/10)을 TUN 처리에서 제외하거나 규칙 최상단에 DIRECT로 두는 패턴이 안전합니다. 자세한 TUN 동작은 TUN 모드 가이드와 맞춰 읽으세요.
4 Tailscale 쪽에서 손댈 곳
관리 콘솔·클라이언트 설정에서 Exit Node를 켜 두면 기본 인터넷 출구가 피어 쪽으로 바뀌어, Clash가 기대하던 로컬 ISP 경로와 어긋납니다. 서브넷 승자(subnet router)를 쓰는 환경에서는 해당 RFC1918·VPC 대역이 Tailscale 인터페이스로 향하는지 확인하고, Clash 규칙에서 같은 대역을 이중으로 프록시하지 않도록 합니다.
MagicDNS는 Tailscale 전용 이름 공간을 편하게 만들지만, 시스템 리졸버가 Clash의 로컬 DNS(Redir·FakeIP)와 중첩되면 «스플릿 호라이즌»이 깨질 수 있습니다. 가능하다면 Tailscale CLI·GUI에서 “Use Tailscale DNS settings”를 켠 상태에서 실제로 어떤 upstream이 선택되는지 확인하고, Clash dns 섹션의 nameserver/fallback과 겹치지 않게 정리합니다. Split DNS를 쓰는 조직이라면 내부 접미사는 Tailscale·회사 리졸버로, 나머지는 사용자가 의도한 공용·DoH로 가게 맞추는 것이 목표입니다.
5 Clash 쪽: 분할 규칙과 TUN 우선순위
규칙 분할은 RULE-SET·DOMAIN-SUFFIX·IP-CIDR 순서가 곧 정책입니다. 100.64.0.0/10·사설 대역·Tailscale 헬스 체크에 쓰는 호스트는 상단에서 DIRECT로 보내 피어 간 통신이 노드로 빨려 가지 않게 합니다. 반대로 해외 전용 도메인 묶음은 기존대로 프록시 그룹에 두면 됩니다.
TUN과 시스템 프록시 중 무엇을 쓸지는 앱 범위에 따라 갈립니다. 브라우저·IDE만 쓸 거면 시스템 프록시만으로 Tailscale과의 충돌 면적을 줄일 수 있지만, 터미널·네이티브 앱까지 동일하게 가져가려면 TUN이 필요합니다. TUN 사용 시에는 Mihomo 문서의 route exclude·stack 등 환경별 키를 버전에 맞게 확인하세요.
6 2단계: DNS·MagicDNS를 나눠 읽기
증상이 «IP로는 되는데 도메인만 안 된다»면 DNS 축입니다. Windows의 Ethernet/Wi‑Fi DNS, Tailscale이 주입하는 DNS, Clash의 listen 포트·enhanced-mode, 브라우저 보안 DNS(Chrome/Edge)가 동시에 존재합니다. 한 레이어만 빠져도 응답이 엇갈립니다. Clash 내부에서 fake-ip를 쓰는 경우 브라우저나 OS가 Clash 스텁을 우회하면 규칙 매칭과 실제 접속 IP가 달라져 이상한 현상이 납니다.
점검 순서 예시는 다음과 같습니다. (1) nslookup 또는 dig로 같은 이름을 시스템 기본과 127.0.0.1(Clash가 리슨 중이면) 양쪽에서 조회. (2) Tailscale MagicDNS가 켜져 있으면 테일넷 이름이 기대한 100.x로 오는지 확인. (3) DoH 전용 레코드가 필요한 사이트는 fallback 체인이 막히지 않았는지 로그로 확인. 심화 내용은 Meta DNS·FakeIP 유출 방지 글의 도표를 참고하면 체인 설계가 수월합니다. 데스크톱 브라우저 보안 DNS는 Chrome·Edge 보안 DNS와 Clash 조합 이슈와도 연결됩니다.
7 DNS 가로채기·가짜 응답 의심할 때
일부 접속 환경에서는 ISP 캐시가 잘못된 응답을 주거나, 보안 SW가 53번 포트를 가로챕니다. Clash를 켠 뒤에만 특정 도메인이 광고 IP·차단 페이지로 향한다면, nameserver를 신뢰할 수 있는 DoH로 바꾸고, Clash 로그에서 실제로 어떤 서버에 물었는지 추적합니다. Tailscale Exit를 켠 상태에서는 Exit 쪽 DNS 정책까지 포함되므로, Exit on/off를 비교 실험하는 것이 빠릅니다.
8 트래픽 루프·비대칭 징후
Clash로 보낸 트래픽이 다시 Clash 입력으로 돌아오거나, Tailscale 경로와 물리 경로가 왕복마다 달라지면 패킷이 증폭·드랍됩니다. 로그에 같은 소스/목적이 반복되거나, CPU만 오르고 속도가 0에 가깝다면 루프를 의심하세요. 해결 방향은 (1) 충돌 대역을 TUN exclude, (2) 해당 트래픽을 한동안 DIRECT로 고정해 경로를 단순화, (3) Exit Node·서브넷 라우팅을 잠시 끄고 재현 여부 확인입니다.
9 현장 체크리스트
- Tailscale 연결 전·후와 Clash TUN on/off 각각에서 라우팅 스냅샷 저장
100.64.0.0/10·사설 대역이 규칙 분할 상단에서 DIRECT인지 확인- Exit Node·서브넷 라우터 사용 여부와 기본 경로 변화 확인
- MagicDNS on 시 이름이 기대한 피어 IP로 풀리는지 nslookup으로 검증
- Clash dns·브라우저 보안 DNS·OS DNS의 우선순위 충돌 여부 확인
- 증상 재현 시 코어 로그에서 해당 도메인의 policy·dns 한 줄 확보
10 정리
Tailscale은 오버레이·MagicDNS·Exit로 라우팅·이름 공간을 바꾸고, Clash는 TUN과 규칙으로 트래픽을 나눕니다. 두 스택을 동시에 쓸 때 «한쪽만 고쳤는데도 남는」 증상은 대부분 라우팅 우선순위 또는 DNS 체인이 어긋난 경우입니다. 본문의 순서대로 표를 두 장(라우트, DNS) 그려 두면 이후 트러블슈팅 시간이 크게 줄어듭니다.
클라이언트는 로그·프로필 관리가 쉬운 Clash Verge Rev 계열이 유지보수에 유리합니다. 설치 패키지는 GitHub 릴리스 직링크보다 사이트 허브를 거치는 편이 출처 관리에 낫습니다.
→ Tailscale과 병행해 규칙 분할·DNS를 한 화면에서 다시 맞춰 보려면 Clash를 무료로 받아 보세요 — 실행 파일은 다운로드 페이지를 우선하고, 오픈 소스 저장소는 이슈·릴리스 노트 확인용으로 두면 버전 정리가 수월합니다.