TUN 모드와 시스템 프록시의 차이: 트래픽 처리 메커니즘 완전 분석
많은 사람들이 이 둘을 그냥 "설정 화면의 스위치 두 개" 정도로 여기고 감으로 켜고 끕니다. 시스템 프록시는 앱이 설정을 읽어 프록시 포트에 스스로 연결하는 방식이고, TUN은 네트워크 계층에서 데이터 패킷을 가로채므로 앱이 원하든 말든 상관없습니다. 이 계층 차이가 적용 범위, DNS 동작, 그리고 문제 발생 시 확인해야 할 방향을 결정합니다.
먼저 생태계 구조부터 이해하기: Clash, 코어, 클라이언트의 차이
처음 Clash를 접하면 앱 이름, 코어 이름, 구독 서비스 이름이 한꺼번에 등장해 무엇을 설치해야 하는지 혼란스럽습니다. 가장 먼저 기억할 점은 Clash는 하나의 단일 앱 이름이라기보다 프록시 규칙을 처리하는 생태계와 설정 형식을 가리키는 말로 널리 사용된다는 것입니다. 실제로 기기에 설치하는 것은 Windows, macOS, Android 같은 운영체제에서 실행되는 클라이언트이며, 그 안에서 Clash 계열 코어가 구독 설정을 읽고 노드에 연결합니다.
클라이언트는 화면과 운영체제 연동을 담당합니다. 구독을 추가하고, 프록시 그룹을 선택하고, 시스템 프록시나 TUN 모드를 켜는 작업은 클라이언트 화면에서 진행합니다. 반면 코어는 YAML 설정을 해석하고, DNS를 처리하며, 규칙에 따라 직접 연결할지 프록시 노드를 거칠지 결정합니다. 최근에는 Clash Meta 계열인 mihomo 코어를 사용하는 클라이언트가 많습니다. 따라서 앱 이름만 볼 것이 아니라 해당 앱이 어떤 코어와 플랫폼을 지원하는지도 함께 확인해야 합니다.
핵심 정리: 클라이언트는 조작 화면과 시스템 연동을 제공하고, 코어는 실제 프록시 처리와 규칙 실행을 담당합니다. 같은 구독이라도 클라이언트의 코어가 오래되었거나 지원하지 않는 프로토콜을 사용하면 노드가 보이지 않거나 연결이 실패할 수 있습니다.
구독·노드·프록시 그룹: 세 용어를 분리해서 보기
구독은 서비스 제공자가 발급한 링크를 통해 설정 파일이나 노드 목록을 내려받는 방식입니다. 링크에는 서버 주소, 포트, 인증 정보, 사용 프로토콜, 프록시 그룹과 규칙이 포함될 수 있습니다. 구독 링크를 클라이언트에 추가하면 앱이 해당 주소에 접속해 설정을 가져오고, 사용자는 그 결과를 현재 프로필로 활성화합니다. 그러므로 구독은 특정 노드 하나가 아니라 여러 노드와 설정을 묶어 전달하는 통로에 가깝습니다.
노드는 실제로 연결할 수 있는 하나의 프록시 서버 설정입니다. 노드마다 서버 위치, 프로토콜, 암호화 방식, 포트, 인증 정보가 다를 수 있으며, 같은 서버 제공자의 노드라도 속도와 안정성이 서로 다릅니다. 노드 이름에 국가나 도시가 표시되어도 그것이 실제 접속 위치와 항상 일치한다고 단정해서는 안 됩니다. 이름은 제공자가 정한 표시일 뿐이고, 연결 품질은 시간대와 네트워크 상태에 따라 달라집니다.
프록시 그룹은 여러 노드를 한데 묶어 사용자가 선택하기 쉽게 만든 정책 단위입니다. 예를 들어 Proxy 그룹에서는 특정 노드를 직접 선택할 수 있고, url-test 그룹은 설정된 간격마다 지연 시간을 측정해 조건에 맞는 노드를 고릅니다. fallback은 앞선 노드가 연결되지 않을 때 다음 노드로 넘어가는 방식이며, 실제 이름과 동작은 구독 설정에 따라 달라질 수 있습니다.
| 용어 | 무엇을 의미하는가 | 초보자가 할 일 |
|---|---|---|
| 구독 | 노드와 규칙을 내려받는 링크 또는 설정 묶음 | 신뢰할 수 있는 제공처에서 발급받고 만료일을 확인 |
| 노드 | 실제로 연결할 하나의 서버·프로토콜 설정 | 여러 노드 중 지연과 안정성이 좋은 항목 선택 |
| 프록시 그룹 | 노드를 선택하거나 자동 전환하는 정책 단위 | 현재 트래픽이 어느 그룹을 사용하는지 확인 |
| 규칙 | 도메인·IP·지역 등에 따라 연결 경로를 정하는 조건 | 처음에는 규칙 모드로 두고 전역 모드와 구분 |
클라이언트 선택 기준: 운영체제보다 코어와 유지 상태를 먼저 확인
클라이언트를 고를 때 화면이 예쁘거나 기능 목록이 많다는 이유만으로 결정하지 않는 것이 좋습니다. 첫 번째 기준은 운영체제 지원입니다. Windows에서는 Clash Verge Rev처럼 데스크톱 설정과 시스템 프록시 연동을 제공하는 앱을 검토할 수 있고, macOS에서는 ClashX 계열 또는 mihomo 코어를 지원하는 유지보수 클라이언트를 비교해야 합니다. Android에서는 Clash Meta for Android, FlClash 등 배포 상태와 권한 요구 사항이 서로 다른 앱이 존재하므로, 현재 운영체제 버전과 앱의 최근 유지 여부를 함께 확인하세요.
두 번째 기준은 코어입니다. 구독에 Hysteria2, 최신 TLS 옵션 또는 특정 mihomo 전용 필드가 포함되어 있다면 해당 기능을 지원하는 코어가 필요합니다. 오래된 Clash Premium 기반 앱은 최신 설정과 프로토콜을 제대로 읽지 못할 수 있습니다. 앱이 실행되더라도 노드가 모두 실패할 수 있으므로, 정보 화면에서 코어 이름과 버전을 확인하는 습관을 들이세요.
세 번째는 필요한 기능의 범위입니다. 브라우저처럼 시스템 프록시를 잘 따르는 앱만 사용할 때는 시스템 프록시 모드로 충분할 수 있습니다. 반대로 게임, 터미널, 일부 백그라운드 앱처럼 시스템 프록시를 무시하는 프로그램까지 처리해야 한다면 TUN 모드를 검토할 수 있습니다. TUN은 가상 네트워크 인터페이스와 추가 권한을 사용하므로, 항상 켜두기보다 필요한 경우에만 활성화하는 편이 문제 범위를 줄이는 데 유리합니다.
“Clash”라는 이름이 들어갔다고 같은 앱이거나 같은 코어를 사용하는 것은 아닙니다. 설치 전에 운영체제, 코어 종류, 최근 업데이트 여부, TUN 지원 여부, 설정 파일 호환성을 확인하세요.
직접 해보는 첫 설정: 구독을 넣고 정상 작동까지 확인하기
처음부터 모든 옵션을 바꾸지 말고, 구독을 가져온 뒤 로컬 포트와 연결 상태를 순서대로 확인하세요. 메뉴 이름은 클라이언트마다 다를 수 있지만 작업 흐름은 대체로 비슷합니다.
- 공식적으로 안내된 클라이언트를 설치합니다. 이 사이트의 클라이언트 다운로드 페이지에서 운영체제에 맞는 항목을 확인하고, 검색 광고나 출처가 불분명한 재배포 페이지를 먼저 이용하지 마세요.
- 구독 페이지에서 링크를 추가합니다. 구독 URL을 붙여넣고 업데이트를 실행한 뒤, 노드 수와 프로필 상태가 표시되는지 확인합니다. 다운로드가 성공했다는 메시지만으로는 충분하지 않습니다.
- 프로필을 활성화합니다. 여러 프로필이 있다면 방금 가져온 프로필을 현재 설정으로 지정합니다. 활성화하지 않으면 구독은 저장되어 있어도 다른 설정이 계속 사용될 수 있습니다.
- 프록시 그룹에서 하나의 노드를 선택합니다. 자동 선택 그룹을 바로 사용해도 되지만, 첫 테스트에서는 이름이 명확한 노드를 직접 고르면 문제가 발생했을 때 원인을 좁히기 쉽습니다.
- 시스템 프록시를 켜고 브라우저에서 확인합니다. 클라이언트의 로컬 HTTP 또는 혼합 포트가 열려 있는지 확인한 뒤 시스템 프록시 설정을 활성화합니다. 브라우저를 완전히 종료했다가 다시 실행하면 이전 설정을 캐시한 문제를 줄일 수 있습니다.
- 필요할 때만 TUN을 추가합니다. 브라우저 테스트가 정상인데 특정 앱만 연결되지 않을 때 TUN을 검토하세요. TUN을 켠 뒤 인터넷이 전부 끊기면 다른 VPN, 가상 네트워크 어댑터, DNS 설정과의 충돌을 먼저 의심하고 바로 이전 상태로 되돌립니다.
mixed-port: 7890
mode: rule
log-level: info
위 예시는 개념을 이해하기 위한 간단한 형태입니다. 실제 구독 설정에서는 이미 포트와 DNS, 프록시 그룹, 규칙이 함께 제공될 수 있으므로 기존 값을 무작정 덮어쓰지 마세요. 특히 mode: rule은 규칙에 따라 트래픽을 분기하는 모드이며, 모든 요청을 하나의 노드로 보내는 전역 모드와 다릅니다.
가짜 다운로드와 악성 설정 피하기: 설치 파일보다 링크를 먼저 의심하기
초보자에게 가장 큰 위험은 설정을 잘못 만지는 것보다 출처가 불분명한 파일과 링크를 아무 검토 없이 실행하는 것입니다. 검색 결과 상단에는 공식 페이지처럼 보이는 광고, 오래된 재배포 사이트, 수정된 설치 파일을 제공하는 페이지가 섞일 수 있습니다. 페이지 이름에 “최신판”, “무료 프리미엄”, “인증 우회” 같은 표현이 과도하게 들어가거나, 설치 전에 별도 실행기와 광고 프로그램을 요구한다면 중단하는 것이 안전합니다.
다운로드 페이지에서는 운영체제와 파일 형식을 확인하고, 설치 프로그램이 불필요한 브라우저 확장이나 별도 보안 프로그램을 함께 설치하려 하지 않는지 살펴보세요. 출처가 명확하지 않은 압축 파일 안의 실행 파일, 암호화된 압축 파일, 설치 후 관리자 권한을 반복적으로 요구하는 파일은 특히 주의해야 합니다. 공식 안내와 맞지 않는 파일명이나 비정상적인 설치 절차도 위험 신호입니다.
구독 링크 역시 보안 대상입니다. 구독 URL에는 계정 식별자나 개인별 토큰이 포함될 수 있으므로 공개 게시판이나 메신저에 그대로 올리지 마세요. 링크가 유출되면 다른 사람이 사용량을 소모하거나 설정을 변경할 수 있습니다. 링크를 받아온 뒤에는 클라이언트가 표시하는 서버 주소, 노드 수, 만료 정보가 안내받은 내용과 크게 다른지 확인하고, 이상하면 제공처에 문의하세요.
구독 설정은 단순한 즐겨찾기 파일이 아닙니다. 프록시 경로, DNS 서버, 규칙, 외부 연결 주소가 포함될 수 있습니다. 출처를 모르는 YAML 파일이나 원격 설정 URL을 가져오지 말고, 이미 가져온 프로필이 의심스럽다면 즉시 비활성화한 뒤 프로필 목록과 로컬 오버라이드를 점검하세요.
안정적인 일상 사용: 많이 바꾸지 말고 상태를 기록하기
처음에는 노드 이름, 그룹 이름, 포트 번호를 모두 바꾸기보다 기본 설정으로 동작을 확인하는 것이 좋습니다. 연결이 느릴 때도 곧바로 DNS, TUN, 규칙, MTU를 동시에 수정하면 어떤 변경이 효과가 있었는지 알 수 없게 됩니다. 한 번에 한 항목만 바꾸고, 변경 전후에 브라우저 접속, 터미널 요청, 특정 앱 실행처럼 같은 테스트를 반복하세요.
- 노드가 전부 실패하면 먼저 구독 만료, 로컬 시간, 인터넷 자체 연결, 코어 호환성을 확인합니다.
- 일부 노드만 느리면 전체 설정을 지우기보다 해당 노드를 제외하고 다른 노드와 비교합니다.
- 시스템 프록시가 적용되지 않으면 클라이언트 포트, 시스템 스위치, 브라우저 자체 프록시 설정을 각각 확인합니다.
- TUN을 사용할 때는 다른 VPN이나 가상 네트워크 프로그램을 동시에 실행하지 않는 편이 좋습니다.
- 사용하지 않을 때는 시스템 프록시와 TUN을 끄고, 공용 컴퓨터에서는 구독 토큰과 프로필을 삭제합니다.
Clash를 익히는 순서는 복잡한 설정을 외우는 것이 아니라 구독은 설정 공급원, 노드는 연결 대상, 그룹은 선택 정책, 클라이언트는 조작 화면, 코어는 실제 처리 엔진이라는 관계를 분명히 하는 데서 시작합니다. 이 구조를 이해하면 앱을 바꾸거나 운영체제를 변경해도 같은 방식으로 문제를 분류할 수 있고, 출처가 불명확한 다운로드와 설정을 피하면서 필요한 기능만 안전하게 사용할 수 있습니다.