TUN 모드란 무엇인가요?

기본적인 "시스템 프록시" 모드에서 Clash는 시스템의 HTTP/HTTPS 프록시 설정을 수정하여 작동합니다. 이 방식은 브라우저와 같이 시스템 설정을 따르는 앱만 프록시할 수 있습니다. 반면 명령줄 도구(CLI), 게임 클라이언트, 일부 Electron 기반 앱들은 시스템 프록시 설정을 무시하고 직접 연결되기도 합니다.

TUN(TUNnel) 모드는 운영체제 내에 가상 네트워크 인터페이스를 생성하여 더 낮은 네트워크 계층에서 모든 TCP 및 UDP 트래픽을 가로챕니다. 어떤 앱에서 보낸 요청이든 상관없이 트래픽은 이 가상 인터페이스를 통과하며, 여기서 Clash 코어가 규칙에 따라 프록시 여부를 결정합니다. 이를 통해 진정한 의미의 "글로벌 프록시"를 실현할 수 있습니다.

어떤 경우에 TUN 모드를 사용해야 하나요?

  • 게임 가속: 게임 클라이언트는 대개 시스템 프록시 설정을 따르지 않습니다. TUN 모드를 사용하면 게임 트래픽도 프록시를 거쳐 속도 향상과 지연 시간 감소 효과를 볼 수 있습니다.
  • CLI 개발 도구: npm, pip, git, docker 등의 도구는 기본적으로 시스템 프록시를 읽지 않습니다. TUN 모드는 이런 도구들이 제한된 네트워크 환경에서 외부 서버에 접속하지 못하는 문제를 해결해 줍니다.
  • Electron 앱: VS Code 플러그인 업데이트 등 많은 Electron 기반 앱이 시스템 프록시를 우회합니다. TUN 모드는 이러한 트래픽까지 확실히 커버합니다.
  • UDP 프록시: 일반 시스템 프록시 모드는 UDP 트래픽을 지원하지 않는 경우가 많습니다. TUN 모드는 UDP를 지원하여 화상 통화, 온라인 게임 등 UDP 의존도가 높은 앱에 필수적입니다.
  • 기업 환경 격리: 보안이나 규정 준수를 위해 모든 트래픽을 특정 프록시를 통해 라우팅해야 할 때 TUN 모드가 가장 확실한 선택입니다.

Windows: Clash Verge Rev에서 TUN 활성화

Windows에서 TUN 모드를 켜려면 관리자 권한이 필요합니다. Clash Verge Rev는 이를 자동으로 처리합니다.

  1. Clash Verge Rev가 올바르게 설치되었고 유효한 구독 프로필이 있는지 확인합니다.
  2. 왼쪽 탐색 바에서 '설정'(Settings) 탭을 클릭합니다.
  3. 시스템 설정 섹션에서 'TUN 모드' 스위치를 찾아 켭니다.
  4. UAC 권한 요청 팝업이 뜨면 '예'를 클릭하여 관리자 권한을 부여합니다.
  5. Clash Verge Rev가 Wintun 드라이버를 설치합니다(최초 1회). 스위치가 녹색으로 바뀌면 활성화된 것입니다.
💡

Windows에서 Clash Verge Rev는 Wintun 드라이버를 사용합니다. 이는 이전의 TAP 방식보다 성능과 호환성이 우수합니다. 만약 시작에 실패한다면 설정에서 TUN 스택 모드를 gVisor 또는 Mixed로 변경해 보세요.

macOS: Clash Verge Rev에서 TUN 활성화

macOS에서도 TUN 활성화 시 시스템 권한이 필요합니다.

  1. Clash Verge Rev를 열고 '설정' 페이지로 이동합니다.
  2. 'TUN 모드'를 찾아 켭니다.
  3. macOS에서 네트워크 확장 프로그램 허용 요청이 뜨면 지침에 따라 '시스템 설정 → 개인정보 보호 및 보안'에서 '허용'을 클릭합니다.
  4. 변경 사항을 적용하려면 대개 Clash Verge Rev를 재시작해야 합니다.
  5. 활성화 후 활성 상태 보기(Activity Monitor)에서 utun이라는 이름의 가상 인터페이스가 생성되었는지 확인할 수 있습니다.
⚠️

macOS 14 (Sonoma) 이상 버전은 네트워크 확장 프로그램 제어가 엄격합니다. '시스템 설정 → 개인정보 보호 및 보안 → 네트워크 확장 프로그램' 메뉴에서 수동으로 허용해야 할 수도 있습니다.

Android: Clash for Android에서 TUN 활성화

안드로이드는 네이티브 VPN 인터페이스를 지원합니다. Clash for Android는 VpnService API를 사용하여 TUN과 동일한 투명 프록시를 구현하므로 매우 사용하기 쉽습니다.

  1. Clash for Android를 열고 프로필이 있는지 확인합니다.
  2. 홈 화면의 커다란 'Stopped' 버튼을 탭합니다.
  3. VPN 연결 요청 팝업이 뜨면 '확인'을 눌러 승인합니다.
  4. 상단 바에 열쇠 아이콘이 생기면 Clash가 VPN 모드(기능적으로 TUN과 동일)로 작동 중인 것입니다.

TUN 스택 모드 선택

Clash Verge Rev는 세 가지 TUN 스택 모드를 제공합니다.

  • System: 운영체제 커널의 TCP/IP 스택을 직접 사용합니다. 성능이 가장 좋고 호환성이 뛰어나 대부분의 사용자에게 권장됩니다.
  • gVisor: 구글의 gVisor 유저공간 네트워크 스택을 사용합니다. 시스템 커널과 격리되어 안정성이 높지만 CPU 점유율이 약간 높을 수 있습니다.
  • Mixed: TCP는 System, UDP는 gVisor를 사용하는 하이브리드 방식입니다. UDP를 많이 사용하는 환경에서 성능과 안정성의 균형이 좋습니다.

TUN 모드를 위한 DNS 설정

TUN 모드를 켜면 DNS 해결 방식이 바뀝니다. DNS 쿼리가 프록시를 우회하는 DNS 유출을 막으려면 enhanced-mode: fake-ip 또는 redir-host 사용을 권장합니다. 다음은 권장 DNS 설정 예시입니다.

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 114.114.114.114
    - 8.8.8.8
  fallback:
    - tls://8.8.4.4:853
    - https://cloudflare-dns.com/dns-query

fake-ip 모드는 가짜 IP 주소를 반환하여 DNS 유출을 원천 차단하며, fallback 설정은 해외 도메인에 대해 암호화된 DNS 확인을 보장합니다.

TUN 모드 일반적인 문제

트래픽 루프 (인터넷 접속 불가)

TUN을 켠 후 모든 인터넷 연결이 끊긴다면 Clash 자신의 트래픽이 TUN 인터페이스에 다시 갇히는 루프백(Loopback)이 발생했을 수 있습니다. 해결 방법은 Clash 프로세스를 직접 연결(Direct) 규칙에 추가하는 것입니다. 최신 Clash Verge Rev는 이를 자동으로 처리합니다.

게임 지연 시간 증가

TUN 모드 자체가 게임을 물리적으로 가속하는 것은 아닙니다. 단지 트래픽이 프록시를 타게 할 뿐입니다. 지연 시간이 늘어난다면 선택한 노드가 게임에 적합한지 확인하세요. 일반 노드보다는 게임 최적화 BGP 노드나 전용 IPLC 회선을 권장합니다.

Android 배터리 소모

Clash for Android가 VpnService로 실행 중일 때는 백그라운드에서 항상 활성화되어야 하므로 배터리 소모가 늘어날 수 있습니다. 사용하지 않을 때는 Clash를 끄거나 '액세스 제어' 기능을 통해 프록시가 필요 없는 앱은 제외 설정하는 것이 좋습니다.

왜 Clash Verge Rev의 TUN 환경이 최고인가요?

Clash 클라이언트에 따라 TUN 모드의 구현 품질은 천차만별입니다. 중단된 Clash for Windows는 TUN 구현이 다소 무거워 메모리 사용량이 높고 간혹 충돌이 있었습니다. 반면 Clash Verge Rev는 Mihomo 코어의 TUN 구현에 최적화되어 Windows의 Wintun 드라이버 지원, 가벼운 gVisor 스택, 효율적인 전력 관리 및 정밀한 DNS 가로채기를 제공합니다. 실제로 Clash Verge Rev의 TUN 모드는 훨씬 안정적이고 메모리 누수가 적으며 On/Off 전환이 매우 매끄럽습니다. 다른 클라이언트에서 TUN 모드에 실망했다면 반드시 Clash Verge Rev를 사용해 보시기 바랍니다.