TUN 모드란? 가상 NIC 프록시의 작동 원리
TUN(Tunnel, 터널)은 OS 커널이 제공하는 가상 네트워크 장치입니다. Clash Verge Rev에서 TUN 모드를 활성화하면 시스템이 로컬에 가상 NIC(Mihomo 코어는 이를 Windows/Linux에서 Mihomo, macOS에서 utun으로 명명)를 생성하고, 모든 아웃바운드 트래픽이 이 가상 NIC를 통해 Clash 코어로 전달되도록 OS에 라우팅 규칙을 주입합니다.
기존의 HTTP 프록시나 SOCKS5 프록시와 달리 TUN 모드는 네트워크 계층(OSI 3계층)에서 작동합니다. 앱이 OS의 프록시 설정을 "준수"하는지 여부에 의존하지 않습니다. 패킷이 머신을 떠나는 순간 가상 NIC가 이를 가로채 Clash의 규칙 엔진으로 전달하여 라우팅합니다.
TUN 모드 vs 시스템 프록시: 핵심 차이점
TUN 모드를 활성화하기 전에 일반 시스템 프록시(HTTP/SOCKS)와의 근본적인 차이를 이해해야 합니다. 시스템 프록시를 활성화해도 일부 트래픽이 "누출"되는 경우가 많은데, 근본 원인은 시스템 프록시의 한계에 있습니다.
| 비교 항목 | 시스템 프록시 (HTTP/SOCKS) | TUN 모드 |
|---|---|---|
| 동작 계층 | 응용 계층 (7계층) | 네트워크 계층 (3계층) |
| TCP 트래픽 | 프록시 설정을 준수하는 앱만 | 모두 캡처, 예외 없음 |
| UDP 트래픽 | 일반적으로 지원 안 함 | 완전 지원 (게임/DNS/실시간 통신) |
| 네이티브 앱 우회 | 프록시를 우회하는 앱의 트래픽 누출 | 우회 불가, 모든 트래픽 통합 처리 |
| 설정 복잡도 | 간단, 추가 권한 불필요 | 관리자/root 권한 필요, 최초 1회 인증 |
간단히 말해서: 가끔 특정 사이트에 접속하는 정도라면 시스템 프록시로 충분합니다. 하지만 DNS 쿼리, 게임 UDP 패킷, 시스템 프록시를 사용하지 않는 IDE 플러그인과 Git 클라이언트 등 모든 트래픽을 Clash로 통합 관리하려면 TUN 모드가 필요합니다.
TUN 모드 활성화 전 준비 사항
버전 확인
TUN 모드는 Mihomo 코어가 제공합니다. Clash Verge Rev 1.7.x 이상 버전에는 완전한 TUN 구현이 내장되어 있습니다. 최신 버전을 사용하면 최적의 호환성과 성능을 얻을 수 있습니다. 구버전이나 레거시 Clash Premium의 TUN 지원은 불안정하므로 문제가 발생하면 코어를 먼저 업그레이드하세요.
시스템 권한
- Windows: Clash Verge Rev를 관리자로 실행해야 합니다. 아이콘을 우클릭하여 "관리자로 실행"을 선택하거나, 설정에서 "관리자로 시작"을 활성화하세요.
- macOS: TUN 모드를 처음 활성화할 때 시스템이 Network Extension 설치 허가를 요청하는 대화상자를 표시합니다. 비밀번호를 입력하여 확인하면 됩니다(이 작업은 한 번만 필요합니다).
- Linux:
CAP_NET_ADMIN권한 또는 root 권한이 필요합니다.
설정 파일 백업
시스템 수준 네트워크 설정을 변경하기 전에 Clash Verge Rev의 설정 관리 화면에서 현재 config.yaml을 내보내 백업하는 것을 강력히 권장합니다. TUN 모드는 시스템 라우팅 테이블을 변경하므로 설정 오류 시 일시적인 네트워크 중단이 발생할 수 있습니다. 백업이 있으면 빠르게 롤백할 수 있습니다.
Clash Verge Rev에서 TUN 모드 활성화 방법
준비를 마쳤다면 다음 단계를 따르세요:
-
Clash Verge Rev를 열고 "설정" 페이지로 이동 — 왼쪽 사이드바의 톱니바퀴 아이콘을 클릭하거나 단축키
Ctrl/Cmd + ,를 사용합니다. - "TUN 모드" 스위치 찾기 — "시스템 프록시" 섹션 아래에 일반적으로 별도의 "TUN 모드" 토글이 있습니다. 활성화하세요.
- 시스템 권한 대화상자 확인 — macOS에서는 비밀번호를 입력하여 Network Extension 설치를 허가하세요. Windows에서는 UAC 메시지가 표시되면 "예"를 클릭합니다.
-
가상 NIC 생성 확인 — Windows의 "네트워크 연결"에
Clash Mihomo라는 가상 어댑터가 나타나야 합니다. macOS에서는 터미널에서ifconfig | grep utun을 실행하여 새 utun 인터페이스를 확인할 수 있습니다. - 프록시 라우팅 정상 작동 확인 — 해외 사이트와 국내 사이트에 동시에 접속하여 모두 정상적으로 접속되고 서로의 지연에 영향을 미치지 않는지 확인합니다.
DNS 하이재킹 및 누출 방지 설정
TUN 모드에서 DNS 설정이 성패를 좌우합니다. DNS 쿼리가 Clash를 우회하여 ISP의 DNS 서버에 직접 도달하면 ISP가 도메인 이름 쿼리 기록을 남길 수 있습니다. 또한 얻은 IP가 오염되지 않은 해외 IP라도 GEOIP 규칙이 직접 연결로 잘못 판단하여 연결에 실패할 수 있습니다.
권장 DNS 설정 블록
config.yaml의 DNS 섹션 권장 설정:
dns:
enable: true
listen: 0.0.0.0:1053
ipv6: false # Disable IPv6 DNS to prevent direct leaks
enhanced-mode: fake-ip # Recommended: fake-ip prevents real DNS from leaking
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- 'localhost.ptlogin2.qq.com'
default-nameserver:
- 114.114.114.114 # Bootstrap DNS for resolving nameservers below
- 8.8.8.8
nameserver:
- https://doh.pub/dns-query # Domestic encrypted DNS
- https://dns.alidns.com/dns-query
fallback:
- https://8.8.8.8/dns-query # Fallback for overseas domains
- https://1.1.1.1/dns-query
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
fake-ip 모드 vs redir-host 모드
fake-ip 모드(권장): Clash는 실제 DNS 해석을 수행하지 않고 요청된 각 도메인에 대해 fake-ip-range의 가짜 IP를 반환합니다. 앱이 해당 가짜 IP에 연결을 시도하면 Clash가 이를 가로채 규칙에 따라 프록시 또는 직접 연결을 결정하고, 프록시 노드에서 실제 DNS 해석을 수행합니다. ISP에는 일반 텍스트 DNS 쿼리가 전혀 보이지 않습니다.
redir-host 모드: Clash가 먼저 DNS 해석을 수행하여 실제 IP를 얻은 후 규칙 매칭을 실행합니다. 이 모드에서 DNS 쿼리가 암호화 채널을 통하지 않으면 누출 위험이 있습니다. TUN 모드 단독 사용 시에는 권장하지 않습니다.
IPv6 직접 연결 문제 및 라우팅 최적화
TUN 모드를 활성화해도 일부 해외 사이트 접속이 비정상인 사용자가 많으며, 원인은 대부분 IPv6 트래픽이 TUN에 의해 캡처되지 않는 것입니다. 현대의 가정용 브로드밴드와 모바일 네트워크는 IPv6를 광범위하게 배포하고 있는데, 브라우저가 IPv6 주소를 선호하여 대상 사이트에 접속하지만 Clash의 TUN 라우팅 규칙이 IPv4만 커버하는 경우, 해당 IPv6 트래픽은 프록시를 우회하여 직접 연결됩니다.
빠른 해결 방법
- DNS 설정에서 IPv6 비활성화:
ipv6: false를 설정하여 Clash가 AAAA 레코드를 해석하지 않도록 합니다. 브라우저는 자동으로 IPv4로 폴백합니다. - 시스템 수준에서 IPv6 비활성화(더 철저함): Windows에서는 NIC 속성에서 IPv6 체크를 해제합니다. macOS에서는 활성 NIC에 대해
networksetup -setv6off Wi-Fi를 실행합니다. - TUN의 IPv6 라우팅 설정: IPv6 기능을 유지해야 하는 경우 Clash의 TUN 설정에서
inet6-address를 활성화하고 IPv6 기본 경로도 가상 NIC를 가리키도록 설정합니다.
문제 해결 가이드
문제 1: TUN 활성화 후 로컬 네트워크(LAN)에 접속할 수 없음
TUN 라우팅 규칙이 LAN 서브넷을 실수로 덮어쓸 수 있습니다. 해결책: 규칙 세트 최상단에 LAN IP 범위 직접 연결 규칙을 명시적으로 추가합니다:
rules:
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
# ... other rules follow
문제 2: 브라우저에서 "ERR_NAME_NOT_RESOLVED" 표시
이는 일반적으로 DNS가 Clash에 올바르게 라우팅되지 않는 것을 의미합니다. 확인 사항: dns.enable: true를 확인하고, DNS 리스닝 포트가 방화벽에 의해 차단되지 않았는지 확인합니다. fake-ip 모드를 사용하는 경우 enhanced-mode: fake-ip가 적용되었는지 확인합니다(Clash Verge Rev의 연결 패널에서 fake-ip 주소를 확인할 수 있습니다).
문제 3: Windows에서 TUN 가상 NIC를 생성할 수 없음
WinTun 드라이버가 올바르게 설치되지 않았을 수 있습니다. Clash Verge Rev 설정에서 "서비스 설치"를 찾아 "서비스 제거"를 실행한 후 "서비스 설치"를 실행하고, 관리자 권한으로 Clash Verge Rev를 재시작합니다.
문제 4: macOS 시스템 업그레이드 후 TUN 모드가 작동하지 않음
대규모 OS 업데이트로 Network Extension 인증이 재설정될 수 있습니다. 시스템 설정 → 개인 정보 보호 및 보안으로 이동하여 Clash 관련 시스템 확장 항목을 찾아 "허용"을 클릭하여 재인증합니다.
문제 5: TUN 활성화 후 게임 지연이 증가함
TUN이 게임 UDP 트래픽을 캡처한 후 규칙 세트가 게임 서버 IP를 잘못 "프록시"로 판단하면 지연이 증가합니다. 해결책: GEOIP,CN,DIRECT를 사용하여 국내 서버를 직접 연결하고, 게임 플랫폼 도메인이나 IP 범위에 개별 직접 연결 규칙을 추가합니다.
적합한 Clash 클라이언트 선택하기
TUN 모드의 강력한 기능은 잘 설계되고 지속적으로 유지 관리되는 클라이언트에서만 충분히 발휘됩니다. Clash Verge Rev는 현재 커뮤니티에서 가장 활발하게 유지 관리되는 데스크톱 클라이언트 중 하나이지만, 유일한 선택지는 아닙니다. iOS 미지원, Android UI가 초보자에게 불친절, 유지 관리 중단 시 호환성 문제 등 자체적인 한계가 있습니다.
모든 플랫폼을 지원하고 안정적으로 유지 관리되며 대부분의 사용자에게 적합한 Clash 클라이언트를 찾고 있다면 저희가 제공하는 버전 사용을 고려해보세요. Mihomo 코어를 기반으로 하며 원클릭 TUN 모드 스위치 내장으로 YAML 수동 편집 없이 이 가이드의 모든 작업을 완료할 수 있습니다. 시각적인 구독 관리로 노드 업데이트가 더 직관적이며, DNS 누출 문제가 감지되면 UI에서 직접 알림과 수정 제안을 표시합니다.
Windows, macOS, Android, iOS, Linux 전 플랫폼에 대응 버전이 있으며 동기 업데이트됩니다. 이 가이드에서 배운 모든 TUN 모드 기술은 저희 클라이언트에서 완벽하게 실천할 수 있습니다.