Clash와 VPN의 출발점 이해하기
Clash와 VPN은 모두 인터넷 연결 경로를 바꾸는 도구로 소개되지만, 같은 종류의 제품은 아닙니다. VPN은 일반적으로 기기와 VPN 서버 사이에 암호화된 터널을 만들고, 그 터널을 통해 네트워크 트래픽을 전달하는 기술 또는 서비스입니다. 반면 Clash는 여러 프록시 서버를 등록하고, 도메인·IP·프로세스·포트와 같은 규칙에 따라 트래픽을 서로 다른 경로로 나누는 클라이언트와 네트워크 코어의 생태계를 가리킵니다.
쉽게 말하면 VPN은 “기기의 네트워크를 하나의 원격 터널로 연결하는 방식”에 가깝고, Clash는 “트래픽마다 어느 프록시와 정책을 사용할지 선택하는 중계 도구”에 가깝습니다. Clash에서 사용하는 서버 정보는 대개 구독 설정으로 제공되며, 해당 설정에는 서버 주소, 포트, 인증 정보, 프로토콜, 프록시 그룹과 규칙이 포함됩니다. Clash 자체가 서버를 제공하거나 익명성을 자동으로 보장하는 서비스는 아닙니다.
클라이언트와 코어도 따로 확인하기
FlClash, Clash Verge Rev, ClashX, Clash for Android와 같은 프로그램은 보통 그래픽 클라이언트입니다. 클라이언트는 설정 가져오기, 프록시 그룹 선택, 시스템 프록시 전환, 로그 표시와 권한 요청을 담당합니다. 실제로 YAML 설정을 읽고 로컬 포트를 열며 규칙을 적용하는 부분은 코어입니다. 최신 환경에서는 mihomo 코어를 사용하는 클라이언트가 많지만, 같은 이름의 프로그램이라도 포함된 코어와 지원 기능이 다를 수 있습니다.
따라서 “Clash를 설치했다”는 사실만으로 연결이 완료되었다고 판단하면 안 됩니다. 클라이언트가 실행 중인지, 설정이 정상적으로 파싱되었는지, 코어가 127.0.0.1:7890과 같은 로컬 포트에서 대기하는지, 선택한 프록시 노드가 실제로 연결되는지를 순서대로 확인해야 합니다.
트래픽 전달 방식의 차이
VPN은 운영체제에 가상 네트워크 인터페이스를 만들거나 시스템 네트워크 계층에 터널을 등록하는 방식이 일반적입니다. OpenVPN과 WireGuard가 대표적인 예이며, 연결이 활성화되면 운영체제의 라우팅 테이블에 따라 여러 애플리케이션의 트래픽이 터널로 들어갑니다. VPN 서비스에 따라 전체 트래픽을 보내거나 특정 네트워크만 터널에 포함하는 분할 터널링을 선택할 수 있습니다.
Clash는 가장 기본적인 형태에서 로컬 HTTP, SOCKS 또는 mixed 포트를 열고 애플리케이션이 이 포트를 프록시로 사용하도록 만듭니다. 예를 들어 설정에 다음과 같은 항목이 있다면 7890은 웹 프록시와 SOCKS 프록시를 함께 처리하는 로컬 수신 포트가 됩니다.
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
이 방식에서는 애플리케이션이 시스템 프록시 설정을 읽어야 합니다. 브라우저와 대부분의 일반적인 데스크톱 프로그램은 시스템 프록시를 따르지만, 일부 게임·명령줄 도구·업데이트 프로그램·샌드박스 앱은 이를 무시할 수 있습니다. 이런 프로그램까지 Clash의 규칙으로 처리하려면 클라이언트에서 TUN 모드를 사용해야 할 수 있습니다.
시스템 프록시와 TUN의 차이
| 방식 | 처리 범위 | 장점 | 주의점 |
|---|---|---|---|
| 시스템 프록시 | 프록시 설정을 따르는 앱 | 설정이 단순하고 권한 부담이 적음 | 일부 프로그램은 프록시를 무시함 |
| Clash TUN | 운영체제 네트워크 계층에 가까운 넓은 범위 | 프록시를 지원하지 않는 앱도 처리 가능 | 관리자 권한, 라우팅과 DNS 충돌을 확인해야 함 |
| VPN 터널 | VPN 라우팅 정책에 포함된 트래픽 | 기기 전체 연결을 일관되게 구성하기 쉬움 | 서비스·서버·터널 프로토콜에 의존함 |
TUN은 VPN과 비슷하게 보일 수 있지만 개념적으로 동일하지 않습니다. Clash의 TUN은 가상 인터페이스에서 트래픽을 받아 코어의 규칙 엔진과 프록시 아웃바운드로 전달하는 기능입니다. 실제 동작은 사용하는 코어, 운영체제, DNS 모드와 자동 라우팅 설정에 따라 달라집니다. TUN을 켰는데 인터넷이 끊긴다면 무조건 노드 문제라고 단정하지 말고, 기존 VPN 앱 종료 여부, DNS 하이재킹, IPv6 경로와 라우팅 충돌을 함께 살펴봐야 합니다.
어떤 상황에서 Clash를 선택할까
Clash의 가장 큰 장점은 목적에 따라 트래픽을 나눌 수 있다는 점입니다. 국내 서비스는 직접 연결하고 특정 해외 도메인은 프록시로 보내거나, 스트리밍·업무·개발 도구마다 다른 정책 그룹을 적용할 수 있습니다. mode: rule을 사용하면 rules 항목을 위에서부터 검사해 먼저 일치하는 규칙의 정책을 적용합니다.
mode: rule
rules:
- DOMAIN-SUFFIX,example.com,Proxy
- GEOIP,KR,DIRECT
- MATCH,Proxy
위 예시는 설명을 위한 단순한 형태입니다. 실제 설정에서는 구독 제공자가 사용하는 정책 그룹 이름과 규칙 문법을 확인해야 합니다. 정책 그룹에 없는 이름을 규칙에서 참조하면 연결은 되더라도 의도한 분기가 작동하지 않을 수 있습니다. 또한 규칙이 너무 복잡하면 DNS 결과와 실제 연결 대상이 예상과 달라질 수 있으므로 처음에는 제공자가 만든 기본 규칙을 그대로 사용하고, 필요한 항목만 조금씩 수정하는 편이 안전합니다.
- 세밀한 분기가 필요할 때: 국가, 도메인, 서비스 유형별로 직접 연결과 프록시를 나누고 싶은 경우 Clash가 편리합니다.
- 여러 노드를 관리할 때: 하나의 구독에서 여러 노드를 받아 지연 시간 테스트나 수동 선택을 적용할 수 있습니다.
- 앱별 네트워크 차이가 클 때: 브라우저는 프록시로 보내고 사내 시스템이나 로컬 기기는 직접 연결하는 식의 구성이 가능합니다.
- 설정을 직접 조정할 때: DNS, 규칙 제공자, 정책 그룹, TUN 매개변수를 한 설정 체계에서 관리할 수 있습니다.
반대로 복잡한 분기 없이 모든 트래픽을 하나의 서버로 보내고 싶거나, 네트워크 설정을 직접 만지고 싶지 않다면 일반적인 VPN 앱이 더 이해하기 쉬울 수 있습니다. VPN 서비스는 계정 로그인, 서버 선택, 연결 버튼처럼 사용 절차가 단순한 경우가 많습니다. 기업용 VPN처럼 조직이 인증서와 접근 정책을 관리하는 환경에서도 전용 VPN 클라이언트가 요구되는 경우가 많습니다.
VPN이 더 적합한 경우
- 노트북이나 휴대전화의 거의 모든 연결을 동일한 터널로 보내려는 경우
- 회사·학교 네트워크에 접근하기 위해 특정 VPN 프로토콜과 인증 절차가 필요한 경우
- 프록시 설정을 지원하지 않는 앱까지 별도 규칙 없이 연결하려는 경우
- 서버 주소와 인증 정보를 직접 관리하지 않고 서비스 제공자의 앱을 사용하려는 경우
처음 사용하기 전 확인할 항목
Clash를 처음 시작할 때는 프로그램부터 실행하기보다 설정 출처와 사용할 코어를 먼저 확인하는 것이 좋습니다. 구독 링크는 일반적으로 노드와 설정을 내려받는 인증 URL이며, 설치 파일이나 VPN 계정과는 다릅니다. 링크에 포함된 토큰이 노출되면 다른 사람이 사용량을 소비하거나 설정을 재발급받을 수 있으므로 메신저·스크린샷·공개 저장소에 그대로 공유하지 마세요.
- 사용 중인 운영체제에 맞는 신뢰할 수 있는 Clash 클라이언트를 설치합니다.
- 클라이언트의 코어 정보에서 mihomo 또는 제공자가 안내한 지원 코어를 확인합니다.
- 구독을 가져온 뒤 설정 오류, 노드 목록, 정책 그룹과 마지막 업데이트 시간을 확인합니다.
- 처음에는 TUN을 끄고 시스템 프록시 모드에서 연결을 테스트합니다.
- 브라우저에서 IP 확인 페이지와 일반 웹사이트를 각각 열어 연결 상태를 비교합니다.
- 필요한 경우에만 TUN을 켜고 운영체제 권한, DNS와 라우팅 변화를 점검합니다.
시스템 프록시를 켤 때는 기존 VPN 앱이나 다른 프록시 프로그램이 동시에 실행되고 있지 않은지 확인하세요. 두 프로그램이 같은 포트나 DNS 설정을 사용하면 연결이 반복적으로 끊기거나, 한 프로그램을 종료한 뒤에도 잘못된 프록시 주소가 남을 수 있습니다. 일반적인 로컬 프록시 포트는 127.0.0.1:7890이지만 설치한 클라이언트의 실제 mixed-port 값을 우선해야 합니다.
연결 테스트는 한 번의 속도 측정만으로 판단하지 않는 것이 좋습니다. 선택한 노드의 지연 시간이 낮아도 패킷 손실, UDP 차단, DNS 응답 지연 또는 특정 서비스와의 호환성 때문에 실제 체감 속도가 떨어질 수 있습니다. 웹페이지 접속, 파일 다운로드, 영상 재생처럼 서로 다른 유형의 요청을 짧게 시험하고, 문제가 생긴 시각과 로그의 오류를 함께 기록하면 원인을 좁히기 쉽습니다.
안전한 초기 설정 원칙
처음에는 외부 장치가 로컬 프록시에 접근하지 못하도록 allow-lan: false를 유지하는 것이 좋습니다. LAN 공유가 필요한 경우에만 허용하고, 수신 주소를 모든 인터페이스로 열 때는 방화벽과 인증 설정을 함께 검토해야 합니다. 외부 제어 인터페이스를 사용하는 경우에도 127.0.0.1에 바인딩하고 강한 secret을 설정하세요. 제어 포트는 일반 프록시 포트가 아니므로 브라우저 프록시 주소로 입력하면 안 됩니다.
allow-lan: false
external-controller: 127.0.0.1:9090
secret: replace-with-a-long-random-value
DNS는 초기부터 여러 옵션을 동시에 켜기보다 현재 구독과 클라이언트가 안내하는 기본값으로 시작하는 편이 좋습니다. DNS 모드, 가상 IP 범위, TUN의 DNS 하이재킹 설정을 무리하게 섞으면 특정 도메인만 열리지 않거나 로컬 네트워크 장치가 검색되지 않을 수 있습니다. 사내망·가정용 NAS·프린터를 사용한다면 직접 연결이 필요한 도메인과 사설 IP 대역을 별도로 확인하세요.
마지막으로 Clash나 VPN을 보안 프로그램의 대체품으로 생각해서는 안 됩니다. 악성 파일 차단, 계정 보호, 운영체제 업데이트, HTTPS 인증서 검증은 별도의 보안 영역입니다. 공식 배포 경로에서 클라이언트를 받고, 구독 제공자를 확인하며, 모르는 YAML의 스크립트와 과도한 권한 요청은 검토한 뒤 사용하세요. 플랫폼별 설치와 기본 설정은 빠른 시작 보기에서 순서대로 확인할 수 있습니다.