트래픽 진입 경로와 프록시 모드 구분하기

시스템 프록시와 TUN은 ‘앱 트래픽을 Clash 코어로 어떻게 전달할까’를 결정합니다. 규칙·전역·직접 연결 모드는 ‘코어에 들어온 트래픽을 어떤 경로로 내보낼까’를 결정합니다. 서로 다른 계층의 설정입니다. TUN을 켜도 규칙 모드를 사용할 수 있으며, 한국 내 웹사이트는 DIRECT로 연결하고 그 밖의 트래픽은 정책 그룹에 따라 처리할 수 있습니다. 반대로 전역 모드를 켜더라도 프록시 설정을 읽지 않는 게임이 자동으로 코어를 거치는 것은 아닙니다.

이 문서의 설정 예시는 Clash Meta의 후속 프로젝트인 mihomo 코어를 기준으로 합니다. Clash는 코어와 클라이언트 생태계를 통칭하는 이름으로 널리 쓰이며, 그래픽 인터페이스에서 제공하는 기능은 실제 코어와 운영체제에 따라 달라집니다. 구버전 Clash 설정과 최신 mihomo의 TUN 항목이 완전히 호환된다고 볼 수는 없습니다. 먼저 클라이언트의 코어 정보를 확인한 다음 해당 문서를 참고하세요.

시스템 프록시: 앱이 로컬 프록시 포트에 직접 연결

시스템 프록시를 켜면 클라이언트가 보통 운영체제에 127.0.0.1:7890 같은 로컬 프록시 주소를 등록합니다. 이 설정을 따르는 브라우저는 해당 포트에 연결하고, 코어가 직접 연결 또는 프록시 경로를 선택합니다. HTTPS는 일반적으로 HTTP CONNECT로 터널을 생성합니다. 시스템 프록시를 사용한다고 HTTPS 내용이 복호화되는 것은 아니며, 일반적인 프록시 전달에 인증서를 설치할 필요도 없습니다.

앱에 따라 달라지는 적용 범위

  • 브라우저: 대부분의 브라우저는 기본적으로 시스템 프록시를 사용하지만, 확장 프로그램·기업 정책·브라우저 자체 설정이 이를 덮어쓸 수 있습니다.
  • 명령줄: curl, Git, 패키지 관리자가 시스템 설정을 따르는지는 도구와 빌드 방식에 따라 다릅니다. 명령줄 옵션이나 환경 변수를 명시하면 적용 여부를 확인하기 쉽습니다.
  • 게임과 음성 채팅: 많은 프로그램은 소켓으로 직접 통신하며 시스템 HTTP 프록시를 읽지 않습니다. 시스템 프록시만 켜서는 UDP 트래픽 경로가 바뀌지 않는 경우가 많습니다.

mixed-port는 HTTP와 SOCKS 프록시 연결을 모두 받는 수신 포트입니다. 다음 설정은 로컬 앱이 7890 포트를 통해 코어에 연결할 수 있음을 뜻합니다. 시스템 프록시가 자동으로 등록되거나 다른 기기에서 해당 포트에 연결할 수 있다는 뜻은 아닙니다.

로컬 리스닝 설정 예시
mixed-port: 7890
allow-lan: false
mode: rule

시스템 프록시의 장점은 변경 범위가 비교적 작다는 점입니다. 일반적인 웹 프록시 사용을 위해 가상 인터페이스를 만들 필요가 없고, 끄면 보통 시스템 프록시 설정만 되돌리면 됩니다. 한계도 분명합니다. 앱이 이 경로를 사용하지 않으면 코어는 해당 연결을 처리할 수 없습니다.

TUN: 가상 인터페이스와 라우팅으로 연결 처리

TUN은 3계층 가상 네트워크 인터페이스를 만들고 운영체제가 해당 인터페이스로 라우팅한 IP 패킷을 받습니다. 코어가 트래픽을 처리한 뒤 규칙에 따라 실제 연결을 설정합니다. 따라서 앱에 프록시 옵션이 없어도 트래픽을 처리할 수 있습니다. 모든 프로그램이 HTTP 프록시를 사용하도록 바꾸는 방식이 아니라, 더 낮은 네트워크 계층에서 트래픽 경로를 바꾸는 방식입니다.

데스크톱 운영체제에서 가상 인터페이스를 만들고 라우팅을 변경하려면 일반적으로 관리자 권한, 권한이 부여된 서비스 또는 관련 시스템 기능이 필요합니다. Android 클라이언트는 보통 시스템 VPN 인터페이스를 이용해 트래픽을 처리하며, 동일한 사용자 공간에서는 이러한 VPN을 두 개 동시에 켜지 못하는 경우가 많습니다. 구체적인 동작은 플랫폼과 클라이언트 구현에 따라 다릅니다.

mihomo TUN 설정 예시

기존 설정에 병합할 내용이며, 전체 구독 파일이 아닙니다
tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
  • stack: mixed는 mihomo에서 지원하는 혼합 프로토콜 스택 구현을 선택합니다. 이름만 보고 다른 스택보다 반드시 빠르다고 판단하지 마세요.
  • auto-route는 트래픽을 처리할 라우트를 자동으로 설정하도록 요청합니다. auto-detect-interface는 외부로 나가는 인터페이스를 자동으로 찾는 설정이며, 지원 여부와 동작은 플랫폼마다 다릅니다.
  • dns-hijack는 지정된 기존 DNS 요청을 코어의 DNS 처리로 전달합니다. DNS 모듈도 함께 활성화하고 올바르게 설정해야 하며, 이 예시는 모든 암호화 DNS 경로를 다루지 않습니다.

시스템 프록시와 TUN 비교

비교 항목시스템 프록시TUN
코어로 들어가는 조건앱이 프록시 설정을 읽거나 프록시를 명시적으로 지정운영체제가 해당 패킷을 가상 인터페이스로 라우팅
주요 적용 대상프록시 설정을 따르는 브라우저 및 기타 앱프록시 설정을 지원하지 않는 앱도 포함하지만 라우팅 범위에 따라 제한
UDP일반 시스템 HTTP 프록시는 보통 UDP를 처리하지 않으며, SOCKS UDP는 앱 지원이 필요UDP를 처리할 수 있지만 노드 프로토콜과 서버도 전달을 지원해야 함
권한 및 시스템 변경주로 사용자 프록시 설정 변경일반적으로 권한, 가상 인터페이스, 라우팅 설정이 필요
DNS 문제 해결 시 확인할 항목앱에서 직접 DNS를 조회하는지, 프록시에 맡기는지DNS 처리, 코어의 DNS 조회, 암호화 DNS 및 IPv6 경로
주요 충돌 원인잘못된 프록시 포트, 남아 있는 설정, 앱별 프록시 설정다른 VPN, 가상 인터페이스, 외부 인터페이스 탐지 및 라우팅 충돌

어느 방식도 노드 대역폭을 저절로 늘려 주지는 않습니다. TUN은 패킷 처리 단계를 추가하며, 자원 사용량은 프로토콜 스택·운영체제·연결 수에 따라 달라집니다. 브라우저가 이미 프록시를 제대로 사용하고 있다면 TUN으로 바꾸는 것만으로 다운로드 속도가 두 배가 되거나 지연 시간이 반드시 줄어들 것이라고 기대해서는 안 됩니다.

게임·터미널·UWP 사용 상황별 선택

웹 브라우징과 일반 다운로드: 시스템 프록시부터 사용

브라우저와 프록시를 직접 설정할 수 있는 다운로드 도구가 주 용도라면 시스템 프록시로 충분한 경우가 많습니다. 먼저 브라우저 요청이 연결 패널에 표시되는지 확인한 뒤, 일치한 규칙과 실제 연결 경로를 살펴보세요. 특정 사이트에 접속할 수 없다면 TUN을 추가하기 전에 노드·DNS·규칙부터 확인하세요.

터미널 도구: 일부 도구만 쓴다면 프록시를 명시적으로 지정

Windows PowerShell에서는 curl.exe를 사용하면 일부 환경에서 발생하는 curl 별칭 차이를 피할 수 있습니다. 아래 두 명령은 각각 HTTP 프록시와 SOCKS5 프록시를 통해 테스트합니다. 두 번째 명령은 프록시 쪽에서 대상 도메인의 DNS를 조회합니다. 포트 번호는 클라이언트의 실제 수신 포트와 일치해야 합니다.

Windows PowerShell
curl.exe --proxy http://127.0.0.1:7890 --connect-timeout 10 -I https://example.com
curl.exe --proxy socks5h://127.0.0.1:7890 --connect-timeout 10 -I https://example.com

Git이나 패키지 관리자만 프록시가 필요하다면 해당 도구에 개별 설정을 적용하세요. 여러 명령줄 프로그램·자식 프로세스·개발 도구의 트래픽을 한꺼번에 처리해야 한다면 TUN을 고려할 수 있습니다. 환경 변수는 이를 읽는 프로세스에만 영향을 주며, 적용을 위해 터미널을 다시 시작해야 할 수도 있습니다.

게임과 음성 채팅: UDP 지원 및 서버 지역부터 확인

TUN은 프록시 옵션이 없는 게임의 트래픽을 처리하는 데 적합할 수 있지만, ‘트래픽을 잡아내는 것’과 ‘게임 연결이 되는 것’은 별개의 문제입니다. 노드 프로토콜과 노드 설정, 서버 모두 필요한 UDP 전달을 지원해야 합니다. 게임이 실제로 연결하는 서버 지역과 적용된 정책도 확인해, 가까운 서버로 직접 연결할 수 있는 트래픽이 먼 지역의 출구를 경유하지 않도록 하세요. 지연 시간 테스트에서 50ms가 표시되어도 게임 서버 왕복 지연이 50ms라는 뜻은 아닙니다. 이는 수치의 의미를 설명하는 예시이며 실제 측정 결과가 아닙니다.

UWP 앱: 프록시 설정과 루프백 제한 구분하기

Windows의 일부 UWP/AppContainer 앱은 로컬 루프백 주소에 접근하지 못할 수 있습니다. 시스템 프록시가 127.0.0.1:7890을 가리키더라도 앱에서 제대로 사용하지 못할 수 있습니다. TUN을 사용하면 앱이 로컬 HTTP 프록시에 직접 연결해야 하는 경로를 피할 수 있지만, 모든 UWP 네트워크 문제가 루프백 제한 때문에 발생하는 것은 아닙니다. 클라이언트의 루프백 예외 도구를 사용한다면 실제로 필요하고 지원되는 앱에만 적용하세요. 여러 앱을 일괄 예외 처리하는 것을 기본 절차로 삼지 마세요.

TUN 사용 후 연결 확인 및 문제 해결

먼저 시스템 프록시가 작동하는 기준 상태를 만든 다음 TUN을 별도로 검증하는 것이 좋습니다. 두 기능을 동시에 켠다고 반드시 루프가 생기는 것은 아니지만, 요청이 어떤 경로로 들어오는지 파악하기 어려워집니다. 특히 프록시 환경 변수를 직접 설정한 터미널은 시스템 프록시를 꺼도 로컬 포트로 계속 연결할 수 있습니다.

  1. 기본 네트워크 연결을 확인합니다. 두 가지 트래픽 처리 기능을 잠시 끄고 로컬 네트워크·게이트웨이·직접 연결 사이트가 정상인지 확인해 기본 연결 문제를 제외합니다.
  2. 시스템 프록시를 확인합니다. 시스템 프록시를 켜고 명시적인 --proxy 옵션으로 요청을 보내 7890 수신 포트·노드·규칙이 정상인지 확인합니다.
  3. TUN만 테스트합니다. 시스템 프록시를 끄고 테스트 프로그램의 개별 프록시 설정을 지운 다음 TUN을 켭니다. 프록시 옵션을 명시하지 않은 프로그램으로 새 연결을 시도하세요.
  4. 트래픽 처리 여부를 확인합니다. 연결 패널이나 로그에서 대상 연결을 찾아 규칙·정책 그룹·출구를 확인합니다. Windows에서는 Get-NetAdapter로 인터페이스를, route print로 라우팅을 확인할 수 있습니다. 트레이 아이콘만 보고 판단하지 마세요.
  5. DNS와 IPv6를 확인합니다. 기존 연결은 정상인데 도메인 접속이 실패한다면 DNS 로그를 중점적으로 살펴보세요. IPv4는 정상인데 일부 앱에서 트래픽이 우회한다면 IPv6 라우팅과 관련 설정도 함께 적용되는지 확인해야 합니다.

연결 기록은 있지만 접속되지 않는 경우

적어도 일부 요청이 코어에 들어온 것이므로 REJECT 규칙에 걸렸는지, 사용할 수 없는 노드를 선택했는지, 서버가 연결을 거부했는지 확인하세요. HTTPS는 되는데 UDP 게임이 안 된다면 UDP 지원부터 점검하세요. HTTP 테스트 성공만으로 모든 프로토콜이 작동한다고 볼 수는 없습니다.

해당 연결 기록이 전혀 없는 경우

먼저 패널이 현재 실행 중인 코어에 연결되어 있는지 확인하고, TUN 서비스 권한·자동 라우팅 적용 여부·앱의 물리 네트워크 인터페이스 지정 여부·기본 경로를 차지하는 다른 VPN이 있는지 살펴보세요. Windows 11에서는 「설정」→「네트워크 및 인터넷」→「프록시」에서 시스템 프록시 설정이 남아 있는지 확인할 수 있습니다. 다른 Windows 버전에서는 메뉴 이름이 다를 수 있습니다.

최종 선택: 앱의 트래픽 범위에 맞추기

  • 브라우저만 사용: 시스템 프록시부터 설정하고 규칙 모드를 유지한 뒤 로컬 포트와 현재 정책 그룹을 확인하세요.
  • 일부 터미널 도구만 사용: 프록시 옵션을 명시하거나 도구 자체 설정을 사용하면 개별적으로 확인하고 되돌리기 쉽습니다.
  • 게임·음성 채팅·프록시 미지원 앱: TUN을 고려하고 UDP·DNS·IPv6·라우팅 범위를 함께 확인하세요.
  • 기업 VPN 또는 복잡한 가상 네트워크 사용: 먼저 라우팅 충돌 가능성을 살펴보세요. 시스템 프록시는 대체로 영향을 더 쉽게 제어할 수 있습니다.

선택 기준은 어떤 설정이 더 ‘전역’처럼 보이는지가 아니라 앱이 네트워크에 연결되는 방식입니다. 이미 작동을 확인한 트래픽 경로를 유지하고, 설정을 한 번에 하나씩만 변경한 뒤 연결 기록과 규칙 일치 여부를 확인하세요. 모든 옵션을 동시에 켜는 것보다 문제를 찾기 쉽습니다. 처음 설정한다면 시작 가이드를 참고하고, 규칙과 설정 구성을 알아보려면 초보자부터 고급 사용자까지를 확인하세요.