Clash TUN 모드 완전 가이드: 전역 프록시로 앱이 프록시를 거치지 않는 문제 해결
TUN 모드는 무엇이고, 왜 필요할까요?
TUN 모드는 Clash 계열 클라이언트(특히 Mihomo, 구 Clash Meta 커널)가 운영체제에 가상 네트워크 인터페이스를 만들고, 그 경로로 지나가는 IP 패킷을 커널이 받아 규칙(rule)과 프록시 그룹에 따라 분배하는 방식을 말합니다. 흔히 “투명 프록시” 또는 “전역 라우팅에 가까운 프록시”라고 부르기도 합니다.
브라우저처럼 시스템 HTTP/HTTPS 프록시 설정을 존중하는 프로그램은, 프록시만 켜도 대부분 기대한 노드를 탑니다. 하지만 일부 데스크톱 앱·게임·명령줄 도구는 OS 프록시를 무시하고 직접 연결을 시도합니다. 또 UDP 기반 서비스는 환경에 따라 시스템 프록시 경로와 잘 맞지 않는 경우가 있습니다. 이럴 때 TUN이 트래픽을 한층 위에서 가로채 주면, “프록시를 지원하지 않는다”는 이유로 빠져나가던 흐름도 규칙 안으로 끌어올 수 있습니다.
참고: TUN은 VPN과 비슷하게 보이지만, 본질은 “로컬에서 동작하는 프록시 엔진이 패킷을 처리한다”는 점에서 목적이 다릅니다. 합법적인 용도와 서비스 약관을 지키는 범위에서만 사용해야 하며, 회사망·학교망 정책을 위반하는 구성은 피해야 합니다.
시스템 프록시와 TUN의 차이
시스템 프록시는 Windows·macOS 설정에 HTTP(S) 프록시 서버 주소를 적어 두는 방식입니다. 이 값을 읽는 앱만 영향을 받고, 프록시 API를 쓰지 않는 바이너리는 그대로 직접 나갑니다.
TUN 모드는 라우팅 테이블과 가상 어댑터를 활용해, 지정된 목적지로 향하는 IP 레벨 트래픽을 Clash 쪽으로 보냅니다. 그다음 커널이 도메인 규칙·GEOIP·프록시 그룹 설정을 적용해 DIRECT(직결)나 특정 노드로 넘깁니다. 그래서 “전역에 가깝게” 잡고 싶을 때 선택지가 됩니다.
대신 관리자 권한(Windows)·시스템 확장 또는 네트워크 권한(macOS)·방화벽 예외 등 OS 수준 요구가 늘고, DNS·스택 옵션이 맞지 않으면 “TUN만 켰을 때만 사이트가 안 열린다” 같은 증상이 나올 수 있습니다. 아래에서 그 대응을 나누어 설명합니다.
앱이 프록시를 “안 탄다”고 느껴질 때의 이유
첫째, 앱이 시스템 프록시를 읽지 않도록 설계되었을 수 있습니다. 둘째, 로컬 호스트나 LAN으로만 붙는 통신은 규칙에서 이미 직결이라 TUN을 켜도 변화가 없어 보일 수 있습니다. 셋째, DNS가 클라이언트 바깥에서 해석되면, 규칙의 도메인 기준이 기대와 다르게 동작합니다. 넷째, 다른 VPN·필터 드라이버와 가상 어댑터가 충돌하면 패킷이 엉킵니다.
따라서 TUN은 만능 스위치가 아니라, “트래픽을 Clash 규칙 엔진으로 모으는 통로”로 이해하는 것이 좋습니다. 규칙에서 국내 사이트·스트리밍·은행 앱 도메인을 DIRECT로 두는 식의 정책 설계가 함께 가야 일상 사용이 안정적입니다.
TUN이 트래픽을 처리하는 흐름
활성화되면 Clash(Mihomo)는 TUN 인터페이스에 도착한 패킷을 사용자 공간으로 끌어올려, 내부적으로 프록시 프로토콜(예: SOCKS, HTTP)로 아웃바운드 노드에 넘깁니다. 규칙 매칭 순서는 일반 Clash와 같으며, 매칭되지 않으면 설정된 폴리시 그룹이나 MATCH 줄을 따릅니다.
Mihomo 계열에서는 tun.enable, tun.stack(예: system, gvisor, mixed) 등으로 스택 동작을 조정할 수 있습니다. 특정 환경에서만 연결이 끊기면 스택을 바꿔 보는 것이 문서와 커뮤니티에서 자주 권장되는 첫 단계입니다.
팁: 구독 제공자가 배포하는 프로필에 권장 TUN·DNS 프리셋이 있으면 그것을 기준으로 맞추는 것이 가장 빠릅니다. 커스텀으로 fake-ip와 tun을 동시에 건드릴 때 충돌이 잦습니다.
Windows에서 TUN 켜기
Windows에서는 가상 어댑터 생성·라우팅 변경에 관리자 권한이 필요한 경우가 많습니다. Clash Verge Rev 등 GUI 클라이언트는 트레이 메뉴에서 TUN 토글을 제공하며, 처음에는 UAC 창이 뜰 수 있습니다.
권장 순서
- 클라이언트를 신뢰할 수 있는 출처에서 설치하고, 방화벽에서 차단되지 않았는지 확인합니다.
- 프로필·구독이 정상이고, 시스템 프록시만 켠 상태에서 기본 연결이 되는지 먼저 검증합니다.
- 설정에서 TUN 모드를 켜고, 필요 시 “관리자 권한으로 실행” 또는 앱이 안내하는 서비스 모드를 검토합니다.
- 장치 관리자에 불필요한 가상 어댑터가 중복되어 있지 않은지, 다른 VPN과 동시에 켜져 있지 않은지 확인합니다.
Windows용 클라이언트 패키지는 한국어 다운로드 페이지에서 플랫폼에 맞게 받을 수 있습니다. 설치 후에도 TUN이 회색이면 커널이 Mihomo인지, 구버전인지 확인해 보세요.
macOS에서 TUN 켜기
macOS는 시스템 확장·네트워크 필터 관련 승인이 필요할 때가 많습니다. 설정 앱의 개인정보 보호·보안·네트워크 항목에서 확장을 허용했는지, 로그인 항목과 충돌하지 않는지 확인하세요.
Apple Silicon과 Intel 빌드를 혼동하면 실행 자체가 안 되거나 Rosetta로만 돌아가므로, “이 Mac 정보”에서 칩 종류를 먼저 확인한 뒤 macOS용 빌드를 고릅니다. TUN을 켠 뒤 트래픽이 잡히지 않으면 확장 승인·재부팅 안내를 다시 따라가는 것이 좋습니다.
설정에서 꼭 짚어 볼 키워드
YAML을 직접 볼 수 있다면 다음을 확인합니다. (이름은 커널·버전에 따라 약간 다를 수 있습니다.)
tun.enable: TUN 사용 여부tun.stack: 스택 종류; 환경별로 안정적인 값이 다름- DNS 모드:
redir-hostvsfake-ip— TUN과 조합 시 일부 사이트만 실패하면 DNS 쪽을 의심 - 규칙의
DIRECT: 국내·LAN·스트리밍 예외를 과도하게 프록시에 넣지 않기
대시보드(외부 컨트롤러)를 켠 상태라면 연결 로그에서 어떤 규칙에 걸렸는지 볼 수 있어, “TUN은 켰는데 이 앱만 직결이다” 같은 경우 원인 추적이 쉬워집니다. 기본 사용법은 문서·튜토리얼과 함께 보시면 흐름이 잡힙니다.
규칙과 전역감의 균형
TUN을 켠다고 해서 모든 패킷이 무조건 해외 노드로 가야 하는 것은 아닙니다. 규칙 세트가 국내 IP·지역 도메인을 DIRECT로 나가도록 짜여 있으면, 체감 속도와 지연을 모두 잡을 수 있습니다. 반대로 규칙이 거칠면 불필요한 우회가 늘어납니다.
게임·음성 채팅처럼 UDP가 중요한 앱은 노드 품질과 프로토콜 지원도 함께 봐야 합니다. TUN은 경로를 열어 줄 뿐, 아웃바운드 노드가 UDP를 잘 처리하지 못하면 증상은 그대로일 수 있습니다.
자주 겪는 문제와 점검 순서
TUN 켜자마자 인터넷 전체가 안 됨
DNS 루프·스택 호환·다른 VPN 충돌을 의심합니다. TUN을 끄고 시스템 프록시만으로 정상인지 먼저 비교하세요. tun.stack을 바꿔 보고, 구독 측 권장 DNS로 맞춥니다.
특정 사이트·앱만 실패
fake-ip-filter·도메인 규칙·SNI 관련 이슈일 수 있습니다. 해당 도메인을 직결이나 별도 그룹으로 분리해 실험해 보세요.
권한 창이 반복되거나 TUN이 꺼짐
Windows는 관리자·서비스 등록 상태를, macOS는 시스템 확장 승인과 재시작 요구를 다시 확인합니다.
주의: 알 수 없는 출처의 구독·실행 파일은 멀웨어 위험이 있습니다. 공식·신뢰 가능한 채널만 사용하고, 로그에 이상한 아웃바운드가 보이면 즉시 중단하세요.
마무리
정리하면, Clash TUN 모드는 시스템 프록시의 사각지대를 줄이기 위해 가상 인터페이스에서 패킷을 받아 규칙 엔진에 넘기는 기능입니다. Windows·macOS 모두 권한과 스택·DNS 설정이 맞을 때 가장 안정적으로 돌아갑니다.
비슷한 범주의 도구들과 비교해 보면, Clash·Mihomo 생태계는 규칙 표현력과 프로토콜 지원 면에서 유연한 편이라, TUN을 켠 뒤에도 세밀하게 트래픽을 조정하기 좋습니다. GUI 클라이언트에서 토글 몇 개로 시작하고, 필요할 때만 YAML을 손대는 순서가 부담이 적습니다.
지금 쓰는 OS에 맞는 클라이언트로 바로 시험해 보시려면 Clash를 무료로 다운로드해 설치한 뒤, 시스템 프록시로 연결을 확인하고 단계적으로 TUN을 켜 보시길 권합니다. 매끄러운 전역 프록시 경험은 설정이 맞을 때 비로소 체감됩니다.