Clash 처음이라면? 공항·구독·노드 차이 쉽게 이해하기
Clash는 인터넷 회선을 직접 제공하는 서비스가 아니라 프록시 연결을 관리하는 클라이언트입니다. 이 글에서 앱, 공항 서비스, 구독 링크, 노드의 차이를 익히고 처음 다운로드하거나 요금제를 고를 때 필요한 기본 판단 기준을 확인해 보세요.
Clash를 이해하는 네 가지 구성 요소
Clash를 처음 접하면 앱을 설치하는 순간 인터넷 연결까지 제공될 것처럼 느껴질 수 있습니다. 하지만 Clash는 회선이나 서버를 판매하는 서비스가 아니라, 이미 가지고 있는 프록시 정보를 불러와 기기의 연결을 관리하는 클라이언트입니다. 따라서 앱을 설치했는데도 노드가 하나도 보이지 않는다면 프로그램이 고장 난 것이 아니라 아직 설정 또는 구독을 가져오지 않은 상태일 가능성이 큽니다.
처음에는 클라이언트, 공항 서비스, 구독 링크, 노드를 서로 다른 것으로 구분해야 합니다. 클라이언트는 설정을 적용하고 트래픽을 전달하는 프로그램입니다. 공항이라고 부르는 서비스는 여러 프록시 서버와 이용량, 요금제를 관리하는 제공 업체입니다. 구독 링크는 업체가 발급한 설정 다운로드 주소이고, 노드는 실제 연결에 사용할 개별 서버 또는 서버 프로필입니다.
| 용어 | 실제 역할 | 없을 때 나타나는 상태 |
|---|---|---|
| Clash 클라이언트 | 구독을 불러오고 규칙에 따라 트래픽을 전달하는 앱 | 설정과 노드를 적용할 프로그램이 없음 |
| 공항 서비스 | 노드, 계정, 데이터 사용량, 요금제를 제공하는 서비스 | 사용할 프록시 서버를 받을 곳이 없음 |
| 구독 링크 | 노드와 규칙이 포함된 설정을 내려받는 인증 주소 | 클라이언트에 노드 목록이 표시되지 않음 |
| 노드 | 실제로 연결할 개별 프록시 서버 또는 서버 프로필 | 선택할 출구 서버가 없음 |
이 네 요소의 관계는 간단합니다. 서비스 제공 업체가 구독 링크를 발급하고, Clash가 그 링크를 통해 설정과 노드 목록을 가져오며, 사용자는 노드나 정책 그룹을 선택해 트래픽을 전달합니다. 어느 한 단계라도 빠지면 정상적인 연결을 만들 수 없습니다. 특히 클라이언트 이름에 Clash가 들어 있다고 해서 해당 앱 안에 무료 노드가 자동으로 포함되는 것은 아닙니다.
Clash는 프록시 제공 업체가 아닙니다
Clash를 설치하는 것과 프록시 서비스를 구독하는 것은 별개의 일입니다. 앱은 공식 다운로드 페이지에서 준비하고, 노드와 구독은 신뢰할 수 있는 서비스 제공 업체의 조건을 별도로 확인해야 합니다.
클라이언트와 커널은 무엇이 다른가
Clash Verge, Clash Verge Rev, ClashX, Clash for Android 같은 이름은 대체로 그래픽 인터페이스를 제공하는 클라이언트입니다. 화면에서 프로필을 선택하고 시스템 프록시나 TUN을 켜는 작업은 클라이언트가 담당하지만, 설정 파일을 읽고 DNS를 처리하며 규칙을 매칭하는 핵심 동작은 내부 커널이 담당합니다. 같은 구독을 사용해도 클라이언트와 커널 조합에 따라 지원되는 프로토콜과 메뉴가 달라질 수 있습니다.
2026년 기준으로 새 설정을 사용할 때는 보통 mihomo 또는 Clash Meta 계열 커널인지 확인하는 것이 좋습니다. 오리지널 Clash는 2023년 11월 이후 업데이트가 중단되어 Hysteria2, TUIC, 최신 TUN 기능 같은 항목을 지원하지 않습니다. 반면 mihomo는 오리지널 설정 문법과 주요 기존 프로토콜을 이어받으면서 TUN, GEOSITE, 도메인 스니핑, 최신 아웃바운드 기능을 확장하고 있습니다.
- 클라이언트: 프로필 가져오기, 노드 선택, 시스템 프록시, TUN, 로그 화면을 제공하는 사용 인터페이스입니다.
- 커널: YAML 설정을 해석하고 DNS, 규칙, 연결 방식, 프록시 프로토콜을 실제로 처리하는 실행 엔진입니다.
- 프로필: 구독으로 가져온 전체 설정입니다. 노드뿐 아니라 프록시 그룹, rules, DNS, 포트 설정이 함께 포함될 수 있습니다.
- 정책 그룹: 여러 노드를 묶은 선택 메뉴입니다. 직접 선택하는 select, 지연 시간을 자동 비교하는 url-test 등이 대표적입니다.
클라이언트를 고를 때는 이름만 보고 판단하지 말고 정보 또는 About 화면에서 커널 이름과 버전을 확인하세요. 프로필에 GEOSITE, RULE-SET, sniffer, tun 같은 항목이 있는데 커널이 이를 지원하지 않으면 가져오기가 실패하거나 일부 설정이 무시될 수 있습니다. 반대로 최신 기능이 필요하지 않은 단순한 HTTP, SOCKS5, Shadowsocks 설정만 사용한다면 오래된 클라이언트에서도 일부 연결이 가능하지만, 유지보수 상태와 운영체제 호환성까지 함께 확인하는 편이 안전합니다.
공항 서비스와 구독 링크의 차이
공항 서비스는 웹사이트나 관리 패널을 통해 계정을 관리하고, 여러 지역의 노드와 요금제를 제공하는 업체를 가리키는 커뮤니티 용어입니다. 여기서 구매하는 것은 Clash 앱이 아니라 프록시 서비스 이용 권한입니다. 요금제에 따라 월간 데이터 한도, 동시 접속 수, 노드 지역, 갱신 주기, 지원 프로토콜이 달라질 수 있으므로 가격만 보고 고르면 안 됩니다.
구독 링크는 업체 계정과 연결된 주소입니다. 링크를 Clash의 Profiles 또는 프로필 메뉴에 등록하면 클라이언트가 해당 주소에서 YAML, Base64 형식 또는 서비스가 변환한 설정을 가져옵니다. 가져온 결과에는 단순 노드 목록만 들어 있을 수도 있고, 노드 그룹과 rules, DNS, 외부 규칙 제공자까지 포함될 수도 있습니다. 따라서 링크를 등록한 뒤에는 프로필을 다운로드하는 것뿐 아니라 목록에서 해당 프로필을 활성화해야 합니다.
- 서비스 관리 화면에서 구독 링크 전체를 복사합니다. 주소 중간의 토큰과 뒤쪽 매개변수를 임의로 삭제하지 않습니다.
- Clash의 Profiles 또는 프로필 메뉴에서 URL 가져오기 입력란을 엽니다.
- 링크를 붙여넣고 확인한 뒤 다운로드가 끝날 때까지 기다립니다. 네트워크 상태에 따라 수 초에서 수십 초가 걸릴 수 있습니다.
- 새로 생긴 프로필을 클릭해 현재 사용 프로필로 적용합니다. 다운로드만 하고 선택하지 않으면 이전 설정이 계속 사용됩니다.
- Proxies 또는 프록시 메뉴에서 정책 그룹을 열고 사용할 노드나 자동 선택 그룹을 지정합니다.
구독 갱신에 실패하면 먼저 링크 만료 여부, 계정의 잔여 데이터, 접속 가능한 네트워크를 확인하세요. 구독 주소 자체가 현재 네트워크에서 열리지 않는 경우에는 잠시 시스템 프록시를 켠 뒤 다시 갱신할 수 있지만, 잘못된 프록시가 적용된 상태에서 같은 주소를 반복 요청하면 원인을 찾기 어려워집니다. YAML 오류가 표시되면 링크가 중간에서 잘렸거나 업체 서버가 잘못된 형식을 반환했을 가능성이 있으므로 내용을 직접 임의 수정하기보다 제공 업체에 새 링크를 요청하는 편이 좋습니다.
구독 링크는 비밀번호처럼 다루세요
구독 링크에는 계정 식별자나 인증 토큰이 포함될 수 있습니다. 단체 채팅, 공개 게시판, 화면 녹화, 공개 저장소에 붙여넣지 말고, 노출이 의심되면 관리 패널에서 링크를 재발급하세요. 링크를 삭제하는 것만으로 이미 복사된 주소가 무효화되는 것은 아니므로 재발급이 필요합니다.
노드 선택과 요금제 판단 기준
노드는 서버의 국가나 도시를 나타내는 이름처럼 보이지만, 실제 성능은 위치 하나로 결정되지 않습니다. 같은 지역 이름을 가진 노드라도 접속 사업자, 혼잡도, 전송 프로토콜, 서버와의 거리, 서비스의 라우팅 품질이 다를 수 있습니다. 따라서 이름에 붙은 “고속”, “전용”, “최적화” 같은 표현보다 실제 연결 지연과 안정성을 확인해야 합니다.
| 확인 항목 | 초보자가 볼 기준 | 주의할 점 |
|---|---|---|
| 데이터 한도 | 월간 총량과 갱신일, 초과 후 속도 제한을 확인 | 무제한 표기라도 특정 시간대 제한이나 공정 사용 정책이 있을 수 있음 |
| 동시 접속 수 | PC, 휴대폰, 태블릿을 동시에 사용할 수 있는지 확인 | 기기 수가 아니라 연결 세션 수로 계산하는 업체도 있음 |
| 노드 지역 | 주로 사용할 서비스와 가까운 지역부터 테스트 | 가까운 지역이 항상 빠르지는 않으며 혼잡도가 영향을 줌 |
| 프로토콜 | mihomo가 제공 업체의 프로토콜을 지원하는지 확인 | Hysteria2, TUIC 등은 구형 커널에서 표시되지 않을 수 있음 |
| 갱신 조건 | 자동 결제, 환불, 데이터 이월 여부를 확인 | 저렴한 장기 요금제가 사용량에 맞지 않으면 오히려 비효율적임 |
처음에는 장기 요금제보다 짧은 기간의 소량 요금제로 테스트하는 것이 좋습니다. 아침, 저녁처럼 사용자가 몰리는 시간에 웹페이지 로딩, 영상 재생, 파일 다운로드를 각각 확인하고, 한 노드만 보고 전체 서비스를 판단하지 마세요. 노드의 지연 시간은 연결이 시작되는 데 걸리는 시간에 가깝고, 실제 다운로드 속도와 동일하지 않습니다. 지연 시간이 80ms인 노드가 항상 150ms인 노드보다 빠른 것도 아니며, 서버 혼잡과 대역폭이 더 큰 영향을 줄 수 있습니다.
정책 그룹이 있다면 처음에는 select 그룹에서 여러 노드를 직접 비교하세요. 연결이 안정적인 후보를 두세 개 찾은 뒤에는 url-test 그룹으로 자동 측정할 수 있습니다. 다만 자동 측정의 결과는 특정 테스트 URL에 대한 지연일 뿐, 모든 웹사이트의 체감 속도를 보장하지 않습니다. 게임, 화상회의, 스트리밍, 일반 웹브라우징은 필요한 특성이 다르므로 용도별 그룹이 제공된다면 각각 시험하는 편이 정확합니다.
처음 사용할 때의 점검 순서
프로필을 적용하고 노드를 선택했는데도 연결되지 않는다면 한 번에 여러 설정을 바꾸지 말고 아래 순서대로 범위를 좁혀 보세요. 먼저 Clash의 연결 상태와 로그를 확인하고, 그다음 시스템 프록시 또는 TUN을 확인해야 합니다.
- 프로필이 실제로 활성화되어 있는지 확인합니다. 프로필 목록에서 선택 표시가 없는 상태라면 노드가 보여도 현재 연결에는 사용되지 않습니다.
- 프록시 그룹에 유효한 노드가 있는지 확인합니다. 만료된 노드, 지원하지 않는 프로토콜, 인증서 오류가 있으면 목록에 남아 있어도 연결되지 않을 수 있습니다.
- 노드를 하나 선택한 뒤 시스템 프록시를 켭니다. Windows와 macOS에서는 브라우저가 시스템 프록시를 따르는지 확인하고, Android에서는 VPN 연결 요청을 허용해야 합니다.
- 브라우저에서 한 사이트만이 아니라 서로 다른 도메인 두세 곳을 열어 봅니다. 특정 사이트만 실패하면 노드 전체보다 규칙이나 DNS 문제일 수 있습니다.
- 로그에서
timeout,connection refused,no route,DNS error같은 메시지를 확인합니다. 오류 유형에 따라 노드 교체, 규칙 점검, DNS 점검의 방향이 달라집니다.
시스템 프록시와 TUN은 같은 기능이 아닙니다. 시스템 프록시는 해당 설정을 따르는 애플리케이션의 HTTP 또는 SOCKS 연결을 전달하지만, 모든 프로그램과 UDP 트래픽을 자동으로 넘겨받지는 않습니다. 게임, 메신저, 일부 런처처럼 시스템 프록시를 무시하는 프로그램까지 포함하려면 mihomo 기반 클라이언트에서 TUN을 사용할 수 있습니다. TUN을 켤 때는 관리자 권한, VPN 권한, DNS 가로채기 설정이 필요할 수 있으며, 다른 VPN 앱과 동시에 사용하면 충돌하기 쉽습니다.
연결이 느릴 때는 무조건 더 먼 지역의 노드로 바꾸기보다 먼저 현재 정책 그룹이 자동 선택 상태인지 확인하세요. 자동 그룹이 계속 실패한 노드를 선택하면 수동으로 안정적인 노드를 지정해 비교할 수 있습니다. DNS 오류가 의심되면 Clash 로그에 도메인 조회가 남는지 확인하고, 브라우저의 별도 보안 DNS가 Clash 경로를 우회하고 있지 않은지도 살펴봐야 합니다.
처음에는 단순한 구성이 가장 좋습니다
처음부터 복잡한 규칙, 여러 개의 DNS 업스트림, 다수의 자동 그룹을 추가하면 문제가 생겼을 때 원인을 추적하기 어렵습니다. 프로필 하나, 수동 선택 그룹 하나, 기본 DNS와 TUN 또는 시스템 프록시 하나로 정상 동작을 확인한 다음 필요한 기능을 단계적으로 추가하세요.
안전한 시작을 위한 최종 체크리스트
Clash를 처음 사용하는 과정은 앱을 다운로드하는 데서 끝나지 않습니다. 먼저 어떤 클라이언트를 설치할지 결정하고, 그 클라이언트가 사용하는 커널이 구독 설정을 지원하는지 확인해야 합니다. 그다음 서비스의 데이터 한도와 동시 접속 조건을 살펴본 뒤 구독 링크를 등록하고, 프로필을 활성화한 다음 노드를 선택해야 합니다.
- 앱과 공항 서비스를 같은 것으로 생각하지 않았는지 확인합니다.
- 구독 링크를 복사할 때 앞뒤가 잘리지 않았는지 확인합니다.
- 프로필을 다운로드한 뒤 실제 사용 프로필로 적용했는지 확인합니다.
- 노드 이름보다 지연, 안정성, 사용 시간대별 속도를 비교합니다.
- 시스템 프록시와 TUN의 차이를 이해하고 필요한 방식만 켭니다.
- 구독 링크를 공개하지 않고, 만료되거나 노출된 링크는 재발급합니다.
설치 파일과 플랫폼별 기본 설정은 다운로드 센터에서 확인할 수 있으며, 프로필을 처음 적용하는 순서는 사용법 확인 페이지의 단계별 안내를 참고하면 됩니다.
자주 나타나는 오류와 원인별 해결법
| 증상 | 가능한 원인 | 확인할 항목 |
|---|---|---|
| 로그인 명령이 즉시 연결 거부 | Clash가 꺼져 있거나 포트가 다름 | mixed-port, HTTP 포트, 로컬 리스닝 상태 |
| 브라우저 인증은 끝났지만 CLI가 대기 | 콜백 주소가 프록시나 보안 프로그램에 의해 차단됨 | localhost를 NO_PROXY에 포함했는지 확인 |
| TLS handshake timeout | 노드 품질 저하, 잘못된 규칙, MTU 문제 | Clash 로그, 다른 노드, TUN 사용 여부 |
| 인증 성공 후 요청만 실패 | API 요청이 다른 호스트로 이동하거나 규칙에서 DIRECT 처리됨 | 요청 도메인의规则匹配 결과와 프록시 그룹 |
| 명령을 찾을 수 없음 | CLI 설치 경로가 PATH에 없음 | codex --help, 운영체제 PATH, 설치 방식 |
| 인증 정보가 반복해서 사라짐 | 권한 문제, 임시 컨테이너, 자격 증명 저장 실패 | 설정 디렉터리 쓰기 권한과 실행 환경 |
로그인 콜백이 멈추는 경우에는 NO_PROXY가 지나치게 넓게 설정되지 않았는지 확인하세요. localhost와 127.0.0.1은 로컬 콜백을 위해 직접 연결하는 것이 일반적이지만, 외부 인증 서버 도메인을 무심코 NO_PROXY에 넣으면 브라우저 인증 페이지와 CLI의 인증 요청이 서로 다른 경로로 나갈 수 있습니다.
반대로 TUN 모드에서 localhost까지 가상 인터페이스로 보내면 콜백 서버가 정상적으로 응답하지 않을 수 있습니다. 이런 환경에서는 DNS 하이재킹과 자동 라우팅을 켜더라도 로컬 주소 예외를 유지하세요. TUN을 켠 뒤 문제가 시작됐다면 TUN을 끄고 환경 변수 방식으로 재시험하면 원인을 빠르게 분리할 수 있습니다.
프록시 오류와 인증 오류를 구분하세요
“connection refused”, “timeout”, “TLS handshake”는 대체로 네트워크 경로 문제이고, 인증 만료·권한 부족·잘못된 계정은 서버가 반환하는 인증 단계의 오류입니다. 전자는 Clash 로그와 포트를 먼저 보고, 후자는 Codex CLI의 로그아웃 후 재로그인과 계정 권한을 확인해야 합니다.
TUN과 DNS를 사용할 때의 추가 점검
Codex CLI가 실행하는 셸 명령이나 패키지 도구까지 같은 네트워크 정책으로 처리해야 한다면 TUN 모드가 편리할 수 있습니다. 다만 TUN은 단순히 브라우저를 프록시로 바꾸는 기능이 아니라 시스템 라우팅과 DNS 흐름을 변경하는 기능입니다. Windows에서는 서비스 모드와 관리자 권한이 필요할 수 있고, macOS에서는 네트워크 확장 또는 VPN 구성 허용이 요구될 수 있습니다.
mihomo 기반 클라이언트에서는 auto-route, auto-detect-interface, dns-hijack 설정이 서로 맞물립니다. 자동 라우팅이 꺼져 있으면 TUN 인터페이스가 만들어져도 일부 트래픽이 기존 네트워크 카드로 빠질 수 있습니다. DNS 하이재킹이 빠지면 도메인 조회는 운영체제 DNS로 남아 규칙 매칭이 불안정해질 수 있습니다. fake-ip을 사용하는 경우 198.18.0.1/16과 같은 가상 대역이 로컬 네트워크 규칙에 의해 차단되지 않는지도 확인하세요.
- Clash 로그에서 DNS 요청이 기록되는지 확인합니다.
nslookup또는dig결과가 매번 바뀌는지, 특정 잘못된 주소가 반복되는지 비교합니다.- 사내 도메인과 로컬 프린터 주소는
NO_PROXY또는 DIRECT 규칙으로 분리합니다. - 패키지 설치 명령이 실패하면 Codex 자체가 아니라 패키지 저장소의 인증서, 별도 프록시 설정, 저장소 정책을 확인합니다.
터미널 명령 실행을 허용할 때는 네트워크가 안정적이라는 이유만으로 모든 명령을 자동 승인하지 마세요. Codex CLI가 파일을 수정하거나 외부 패키지를 설치하도록 설정되어 있다면 프로젝트 디렉터리, 셸 권한, 환경 변수에 저장된 비밀 정보까지 함께 고려해야 합니다. 먼저 읽기 작업으로 검증하고, 변경 작업은 명령별로 확인하는 것이 안전합니다.
FAQ: Codex CLI와 Clash 연결 문제
시스템 프록시를 켰는데도 Codex CLI가 직접 연결되는 이유는 무엇인가요?
터미널 프로그램이나 내부 HTTP 라이브러리가 운영체제의 시스템 프록시를 읽지 않을 수 있습니다. 현재 셸에 HTTP_PROXY와 HTTPS_PROXY를 직접 지정한 뒤 다시 실행하세요. 그래도 로그가 보이지 않으면 TUN 모드로 비교 테스트를 진행해 프로세스가 프록시 변수를 무시하는지 확인할 수 있습니다.
HTTP_PROXY와 HTTPS_PROXY에 서로 다른 포트를 넣어야 하나요?
Clash의 mixed 포트를 사용한다면 두 변수에 같은 HTTP 주소를 넣어도 됩니다. 다만 실제 클라이언트에서 HTTP와 SOCKS 포트가 분리되어 있다면 HTTPS 요청에 SOCKS 포트를 HTTP 주소로 입력하지 않도록 주의하세요. 포트 형식과 프로토콜이 맞지 않으면 연결 거부 또는 TLS 오류가 발생합니다.
Codex 로그인 후에는 환경 변수를 삭제해도 되나요?
로그인 정보가 안전하게 저장되고 이후 요청이 직접 연결로도 허용되는 환경이라면 가능하지만, 인증 후 API 요청도 프록시가 필요한 네트워크라면 환경 변수를 계속 유지해야 합니다. 테스트할 때는 변수를 삭제한 새 셸에서 간단한 요청을 실행해 인증 경로와 실제 작업 경로가 모두 정상인지 구분하세요.
노드를 바꾸면 Codex CLI 인증을 다시 해야 하나요?
일반적으로 노드 변경만으로 저장된 인증 정보가 사라지지는 않습니다. 그러나 출구 지역이나 IP가 바뀌면서 보안 확인이 추가되거나, 이전 연결이 만료되어 재인증이 요구될 수 있습니다. 짧은 시간에 여러 지역의 노드를 반복해서 바꾸기보다 안정적인 하나의 그룹을 선택하고 Clash 로그에서 연결 상태를 확인하세요.
다음 단계: Clash 설정과 Codex 실행 환경 정리
Codex CLI 연결 문제는 대부분 클라이언트 자체보다 로컬 포트, 셸 환경 변수, DNS 경로, 규칙 순서 중 하나에서 발생합니다. 먼저 mixed 포트와 전역 연결을 이용해 기본 경로를 검증한 뒤, 규칙 모드와 TUN 모드로 범위를 좁히면 불필요한 설정 변경을 줄일 수 있습니다. 설치 파일과 클라이언트 선택이 아직 정해지지 않았다면 다운로드 센터에서 플랫폼에 맞는 mihomo 기반 클라이언트를 확인하고, 적용 후에는 단계별 튜토리얼에 따라 프로필과 프록시 모드를 설정하세요.