1 TUN 모드란?
설정에 들어가기 전에 먼저 한 가지 개념을 명확히 합시다. 시스템 프록시와 TUN 모드는 어떤 차이가 있을까요?
일상적으로 Clash를 사용할 때 대부분은 '시스템 프록시'를 켭니다. 이 모드는 본질적으로 운영 체제 수준에서 HTTP/SOCKS5 프록시 주소를 설정하는 것입니다. 브라우저나 일부 앱은 이 설정을 자동으로 읽어 트래픽을 보내지만, 많은 프로그램 특히 명령줄 도구들은 이 규칙을 전혀 인식하지 못합니다. 브라우저 서핑은 잘 되는데 터미널에서 npm install이나 git clone을 하면 여전히 매우 느리거나 시간 초과가 발생하는 이유가 바로 이것입니다.
TUN 모드(Tun Mode)의 방식은 완전히 다릅니다. 시스템에 가상 네트워크 카드(보통 Meta 또는 utun으로 명명됨)를 생성하여 운영 체제의 모든 송신 트래픽을 이 가상 카드로 끌어들입니다. 그런 다음 Clash 커널이 설정된 규칙에 따라 각 연결을 프록시로 보낼지 직접 연결할지 결정합니다. 하위 트래픽 관점에서 보면 머신의 네트워크가 완전히 Clash에 의해 제어되므로 어떤 프로그램도 이를 우회할 수 없습니다.
gvisor 또는 system 두 가지 스택을 기반으로 하며 안정성과 호환성 면에서 구버전 Clash Premium 커널보다 뛰어납니다.
2 왜 TUN 모드가 필요한가?
다음 중 하나라도 해당된다면 TUN 모드는 거의 필수입니다.
- 터미널 개발자:
npm,pip,cargo,brew등 패키지 매니저가 시스템 프록시를 따르지 않을 때 - Git 사용자: GitHub/GitLab에
git clone,git push시 자주 시간 초과가 발생할 때 - Docker 사용자: Docker Hub 이미지 풀링이나 빌드 중 의존성 패키지 다운로드에 실패할 때
- 게이머: Steam, Epic 등 클라이언트의 UDP 트래픽이 시스템 프록시로 처리되지 않을 때
- 원격 접속: SSH나 일부 VPN 클라이언트가 프록시 설정을 지원하지 않을 때
한마디로 '프록시를 켰는데도 일부 소프트웨어가 우회되지 않는' 문제에 직면했다면 TUN 모드가 궁극적인 해결책입니다.
3 활성화 전제 조건
소프트웨어 버전 요구 사항
- Clash Verge Rev 1.7.0 이상버전 (최신 버전 사용 권장)
- Windows 시스템은 Npcap 설치 또는 WinTUN 드라이버 활성화 필요
- macOS 시스템은 「네트워크 콘텐츠 필터」 권한 필요
관리자 권한
가상 네트워크 카드를 생성하려면 시스템 수준의 권한이 필요합니다. Windows 사용자는 Clash Verge Rev를 관리자 권한으로 실행하거나 설정에서 「관리자 권한으로 실행」 옵션을 켜주세요 (후자를 권장합니다). macOS는 처음 TUN을 켤 때 시스템 권한 요청 팝업이 뜨면 「허용」을 클릭하면 됩니다.
4 Windows에서 TUN 모드 활성화하기
1단계: 관리자 권한으로 Clash Verge Rev 실행
바탕화면 아이콘 우클릭 → 「관리자 권한으로 실행」 선택. 또는 Clash Verge Rev의 「설정」 → 「시스템 설정」 → 「관리자 권한으로 실행」 스위치를 켜면 이후 실행 시 자동으로 권한이 승격됩니다.
2단계: Service Mode (서비스 모드) 설치
설정 → 시스템 설정 → 서비스 모드 순으로 클릭하고 「설치」 버튼을 누릅니다. 서비스 모드는 Clash가 시스템 백그라운드에서 서비스로 실행되게 하며, TUN 드라이버 설치에 필요합니다. 설치 후 상태가 「설치됨」으로 표시되면 됩니다.
3단계: TUN 모드 활성화
메인 화면으로 돌아와 「TUN 모드」 스위치(보통 홈 화면이나 「설정 → 커널 설정」에 있음)를 켭니다. 처음 켤 때 Clash가 자동으로 WinTUN 가상 드라이버를 설치하며, 이 과정에서 작업표시줄 아이콘이 잠시 깜박일 수 있으나 정상입니다.
WinTUN Userspace Tunnel 또는 Meta라는 이름의 가상 어댑터가 보이면 드라이버 준비가 완료된 것입니다.
4단계: 추천 TUN 파라미터 설정
Clash Verge Rev의 「오버라이드 설정」 또는 구독 YAML을 직접 편집하여 다음 TUN 섹션을 추가하세요.
tun:
enable: true
stack: mixed # mixed가 호환성이 가장 좋음 (gvisor + system 혼합)
dns-hijack:
- any:53 # 모든 DNS 요청을 가로채어 DNS 유출 방지
auto-route: true # 라우팅 규칙 자동 추가
auto-detect-interface: true # 출력 네트워크 카드 자동 감지
stack: mixed 모드를 가장 권장합니다. TCP 트래픽은 gvisor 사용자 공간 프로토콜 스택(호환성 우수)을 거치고, UDP 트래픽은 system(성능 우수)을 거쳐 각자의 역할을 수행합니다. 일부 UDP 앱에서 문제가 발생하면 stack: gvisor로 통일하여 처리할 수 있습니다.
5 macOS에서 TUN 모드 활성화하기
1단계: 시스템 권한 부여
macOS의 TUN 구현은 시스템의 「네트워크 콘텐츠 필터」(Network Extension)에 의존합니다. 처음 TUN 스위치를 누르면 권한 요청 팝업이 뜨며, 「시스템 설정」 → 「개인정보 보호 및 보안」 하단에서 「허용」을 클릭하면 됩니다.
2단계: TUN 스위치 켜기
승인 후 Clash Verge Rev 메인 화면으로 돌아와 「TUN 모드」 버튼을 클릭합니다. 파란색으로 활성화되면 성공입니다. 메뉴바 아이콘 옆에 작은 방패 모양이 나타나면 TUN이 작동 중이라는 표시입니다.
3단계: YAML 설정은 Windows와 동일
macOS의 YAML 설정은 Windows와 완전히 동일합니다. 마찬가지로 stack: mixed, auto-route: true, dns-hijack 설정을 권장하며 상세 예시는 위의 Windows 섹션을 참조하세요.
6 TUN 모드 작동 여부 확인하기
활성화 후 바로 사용하지 말고, TUN이 모든 트래픽을 제어하고 있는지 간단히 확인해 봅시다.
방법 1: 터미널 curl 테스트
명령 프롬프트(Windows) 또는 터미널(macOS)을 열고 다음을 실행하세요.
curl -v https://www.google.com
정상적으로 응답(HTTP 200)이 오면 터미널 트래픽이 프록시를 거치고 있는 것입니다. TUN이 없다면 이 명령은 대개 시간 초과되거나 연결 거부 오류가 발생합니다.
방법 2: 현재 IP 주소 위치 확인
curl https://ip.sb
반환된 IP 주소는 자신의 통신사 IP가 아닌 노드가 위치한 해외 IP여야 합니다. 둘이 같다면 TUN이 작동하지 않는 것이므로 관리자 권한 실행 여부를 확인하세요.
방법 3: Clash 연결 패널에서 확인
Clash Verge Rev의 「연결」 패널을 열고 터미널 명령을 실행한 후 대응하는 연결 기록이 나타나는지 확인합니다. TUN 모드에서는 curl, git, npm 등의 명령으로 발생한 연결과 프로세스 이름이 목록에 즉시 표시됩니다.
방법 4: Docker 이미지 풀링 테스트
docker pull hello-world
Docker Desktop에서 별도로 프록시를 설정하지 않고도 Docker Hub에서 이미지를 정상적으로 가져올 수 있다면 TUN이 Docker의 트래픽을 성공적으로 제어하고 있는 것입니다.
7 고급: 정밀한 분할 규칙
TUN이 모든 트래픽을 제어할 때는 합리적인 분할 규칙이 더욱 중요합니다. 국내 사이트를 프록시로 보낼 필요가 없으며 오히려 지연 시간만 늘어나기 때문입니다. 다음은 추천하는 정밀 설정입니다.
로컬 네트워크 및 국내 IP 직접 연결 유지
rules:
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- GEOIP,CN,DIRECT
- MATCH,Proxy
GEOIP,CN,DIRECT 규칙은 한국(또는 해당 국가)에 속한 모든 IP를 프록시 없이 직접 연결하게 합니다. 이는 국내 사이트, 온라인 게임, 뱅킹 앱 접속에 매우 중요합니다.
특정 프로세스 직접 연결 예외 설정
Mihomo 커널은 PROCESS-NAME 규칙을 지원하여 특정 프로세스 이름에 대해 예외를 설정할 수 있습니다.
rules:
- PROCESS-NAME,WeChat,DIRECT # 카카오톡 직접 연결
- PROCESS-NAME,QQ,DIRECT # 네이버 메신저 직접 연결
- PROCESS-NAME,Thunder,DIRECT # 다운로드 프로그램 직접 연결
Rule Provider를 사용하여 커뮤니티 규칙 세트 구독
규칙을 수동으로 관리하는 것은 누락이 발생하기 쉬우므로, 를 통해 ACL4SSR 규칙 세트를 도입하는 것을 권장합니다. 수만 개의 도메인을 아우르는 정밀 분할과 Netflix, YouTube 잠금 해제, 광고 차단 기능을 즉시 이용할 수 있습니다.
DNS 유출 방지 설정
TUN을 켜면 DNS 유출 문제가 시스템 프록시 모드보다 두드러질 수 있습니다. FakeIP 모드와 DoH를 동시에 설정하는 것을 권장하며 자세한 방안은「DNS 유출 완벽 차단」글을 참조하세요.
8 자주 발생하는 문제 해결
Q: TUN 활성화 후 인터넷이 완전히 끊깁니다.
가장 흔한 원인은 관리자 권한으로 실행하지 않았거나 WinTUN 드라이버 설치 실패입니다. TUN 스위치를 끄고 「장치 관리자」에 가상 네트워크 카드가 있는지 확인하세요. 없다면 서비스 모드를 재설치한 후 다시 시도하세요.
Q: 국내 사이트 접속이 느려졌습니다.
분할 규칙에 GEOIP,CN,DIRECT가 올바르게 설정되어 있는지 확인하세요. 또한 GeoIP 데이터베이스(Country.mmdb)가 최신 버전인지 확인하세요. Clash Verge Rev 설정에서 한 번의 클릭으로 업데이트할 수 있습니다.
Q: 게임이나 음성 채팅 앱에서 UDP 문제가 발생합니다.
stack을 mixed에서 system으로 변경해 보거나, 해당 앱 프로세스에 대해 PROCESS-NAME,xxx,DIRECT 규칙을 추가하여 UDP 트래픽을 직접 연결해 보세요.
Q: macOS에서 TUN 스위치를 눌러도 반응이 없습니다.
「시스템 설정 → 개인정보 보호 및 보안 → 네트워크」에서 Clash Verge Rev가 목록에 있고 권한이 켜져 있는지 확인하세요. 일부 macOS 버전은 앱을 재실행해야 권한이 적용될 수 있습니다.
Q: Docker Desktop에서 여전히 이미지를 가져오지 못합니다.
Docker Desktop은 자체적인 가상 네트워크 레이어를 사용하므로 일부 버전에서는 Docker Desktop 설정에서 수동으로 프록시를 설정해야 할 수도 있습니다. Docker 설정의 HTTP/HTTPS Proxy를 http://127.0.0.1:7890으로 설정하고 TUN 모드와 병행하여 사용하세요.
9 요약
TUN 모드는 '충분한 도구'에서 '진정으로 편리한 도구'로 넘어가는 분기점입니다. 시스템 프록시가 80%의 상황을 해결한다면, TUN은 나머지 20%의 골치 아픈 문제들—터미널, Git, Docker, 게임 클라이언트 등 '일반적인 경로를 따르지 않는' 트래픽을 해결하여 프록시 규칙 아래에 통합합니다.
설정 단계가 많아 보이지만 실제로는 5분도 걸리지 않습니다. 서비스 모드 설치, TUN 스위치 활성화, 위의 YAML 스니펫을 오버라이드 설정에 붙여넣기만 하면 됩니다. 한 번 설정해 두면 더 이상 특정 소프트웨어가 프록시를 타지 않아 고민할 필요가 없습니다.
드라이버 설정을 수동으로 작성하거나 제3자 도구를 사용해야 하는 다른 클라이언트와 달리, Clash Verge Rev는 TUN 설정을 GUI에 통합하여 몇 개의 스위치만으로 완료할 수 있습니다. 이것이 개발자들 사이에서 인기가 높은 이유 중 하나입니다. 아직 시도하지 않았다면 지금이 시작하기 가장 좋은 때입니다.