Clash 클라이언트
Client application구독 가져오기, 정책 선택, 연결 관리를 위한 인터페이스를 제공하는 앱입니다. 화면에서 수행한 작업은 대개 설정 파일이나 커널 제어 요청으로 변환됩니다. 실제 지원 기능은 클라이언트와 커널 조합에 따라 달라집니다. 클라이언트마다 설정 위치, 오버라이드 방식, 백그라운드 실행 방식이 다를 수 있으므로 한 클라이언트의 메뉴 경로를 다른 클라이언트에 그대로 적용하면 안 됩니다.
mihomo, 구독, 규칙, TUN, Fake-IP를 설정에서의 역할에 따라 찾아보고 화면 옵션, 커널 동작, 원격 서비스의 차이를 확인하세요.
이 페이지에는 자주 쓰이는 용어 25개가 정리되어 있습니다. 카드 제목을 눌러 원하는 항목으로 이동할 수 있습니다. 실제 설정 방법은 시작 가이드에서, 여러 매개변수를 조합하는 방법은 고급 설정에서 확인하세요.
클라이언트는 사용자 인터페이스와 설정 관리를, 커널은 연결 처리를 담당합니다. 기능 차이를 확인할 때는 두 구성 요소를 함께 살펴봐야 합니다.
구독 가져오기, 정책 선택, 연결 관리를 위한 인터페이스를 제공하는 앱입니다. 화면에서 수행한 작업은 대개 설정 파일이나 커널 제어 요청으로 변환됩니다. 실제 지원 기능은 클라이언트와 커널 조합에 따라 달라집니다. 클라이언트마다 설정 위치, 오버라이드 방식, 백그라운드 실행 방식이 다를 수 있으므로 한 클라이언트의 메뉴 경로를 다른 클라이언트에 그대로 적용하면 안 됩니다.
프록시 연결, 규칙 매칭, DNS 요청을 처리하는 네트워크 프록시 커널입니다. 과거에는 Clash.Meta라는 이름을 사용했습니다. 그래픽 클라이언트에서 실행하거나 독립적으로 실행할 수 있습니다. 튜토리얼의 설정 항목을 사용할 수 있는지는 우선 현재 커널의 지원 여부에 달려 있습니다. 화면에 옵션이 있다고 해서 이전 버전 커널도 해당 기능을 지원하는 것은 아닙니다.
Clash.Meta는 mihomo 프로젝트에서 과거에 사용하던 이름입니다. 이전 튜토리얼이나 일부 클라이언트 이름에는 여전히 Meta가 남아 있습니다. Meta라는 표기가 커널의 옛 이름인지 특정 클라이언트의 이름인지 구분해야 합니다. 예를 들어 Clash Meta for Android는 안드로이드 클라이언트 이름이며, 이름만으로 실제 포함된 커널 버전이나 기능 범위를 판단할 수 없습니다.
클라이언트나 제어판에서 상태 확인, 정책 전환, 연결 관리를 할 때 사용하는 API입니다. 보통 external-controller에서 수신 주소를 지정합니다. 브라우저 트래픽을 전달하는 프록시 포트와는 다릅니다. 로컬에서만 사용할 때는 루프백 주소로 제한해야 합니다. 다른 기기에서 접속할 수 있도록 열기 전에는 인증을 설정하고 접속 가능한 출처를 제한하세요.
로컬 앱이 프록시 진입점에 연결하는 방식과 커널이 원격 노드에 연결할 때 사용하는 프로토콜은 서로 다른 계층입니다.
앱이 요청을 프록시 서버에 전달하는 방식입니다. HTTPS 사이트에 접속할 때는 보통 CONNECT로 터널을 만듭니다. 로컬 HTTP 프록시 진입점과 클라이언트가 원격 노드에 연결할 때 사용하는 프록시 프로토콜은 서로 다릅니다. 브라우저가 컴퓨터의 HTTP 프록시 포트에 연결하면 mihomo가 규칙에 따라 직접 연결하거나 다른 프로토콜로 원격에 접속할 수 있습니다.
앱과 프록시 사이에서 대상 주소를 협의하는 프로토콜입니다. TCP 전달에 사용할 수 있고 UDP 전달 방식도 정의합니다. 앱이 프록시를 통해 도메인을 조회하는지는 별도로 확인해야 합니다. SOCKS5 자체는 연결을 암호화하지 않으며, UDP 전달 여부는 앱, 로컬 진입점, 선택한 아웃바운드, 네트워크 환경이 모두 지원하는지에 따라 달라집니다.
암호화 프록시 프로토콜입니다. 노드 설정에는 보통 서버 주소, 포트, 암호화 방식, 비밀번호가 포함됩니다. 클라이언트가 서버에서 사용하는 구체적인 방식과 확장 기능을 지원해야 합니다. 가져온 뒤 연결되지 않으면 노드 이름이나 규칙 모드만 바꾸기보다 암호화 방식, 인증 정보, 전송 옵션을 확인하세요.
일반적으로 TLS로 암호화 연결을 설정하는 프록시 프로토콜입니다. 서버 주소와 비밀번호뿐 아니라 인증서 검증, 서버 이름, 전송 설정이 서로 맞는지도 확인해야 합니다. 인증서 오류가 발생하면 기기 시간, 인증서에 연결된 도메인, 구독 매개변수를 확인하세요. 인증서 검증을 건너뛰는 방법을 상시 해결책으로 사용하지 않는 것이 좋습니다.
규칙은 연결을 어디로 보낼지 정하고, 정책 그룹은 사용할 출구를 선택합니다. 규칙 순서와 참조 이름이 최종 결과에 영향을 줍니다.
도메인, IP, 프로세스 등의 조건에 따라 연결에 프록시, 직접 연결, 차단 등의 아웃바운드 정책을 적용합니다. 규칙은 보통 위에서부터 순서대로 매칭되며, 먼저 일치한 규칙이 연결 처리 방식을 결정합니다. 예를 들어 DOMAIN-SUFFIX,github.com,Proxy는 설정에 Proxy라는 정책 이름이 있을 때 해당 도메인과 하위 도메인의 연결을 그 정책으로 보냅니다.
노드, 다른 정책 그룹 또는 내장 정책을 묶어 규칙에서 참조할 수 있는 출구 이름을 만듭니다. select는 직접 선택하고, url-test는 테스트 결과에 따라 선택하며, fallback은 보통 후보 순서대로 사용 가능한 출구를 고릅니다. 자동 정책의 결과는 테스트 주소와 조건에 따라 달라지며 모든 웹사이트에서 같은 효과를 보장하지 않습니다.
IP 주소가 속한 지역을 기준으로 매칭하는 데이터와 규칙 방식입니다. 결과는 사용하는 데이터 파일에 따라 달라지며, 이를 통해 웹사이트 운영 주체나 사용자의 실제 위치를 판단할 수는 없습니다. GEOIP,CN,DIRECT는 해당 지역 데이터와 일치하는 대상을 직접 연결 정책으로 보냅니다. CDN, 주소 변경, 데이터 업데이트 지연에 따라 판단이 달라질 수 있습니다.
매칭 조건을 별도 파일에 모아 rule-providers로 설정에 불러옵니다. rules에서 RULE-SET으로 해당 이름을 참조하고, 일치했을 때 적용할 정책을 지정합니다. 불러올 때 파일 내용이 선언한 형식 및 동작 유형과 맞는지 확인해야 합니다. 규칙 세트 업데이트는 노드 구독 업데이트와 다르며, 두 기능의 내용과 용도도 서로 다릅니다.
DIRECT와 REJECT는 각각 직접 연결과 연결 거부를 뜻하는 내장 아웃바운드 정책입니다. MATCH는 나머지 모든 연결을 매칭하는 규칙 유형으로, 뒤에 적용할 정책을 지정해야 합니다. 예를 들면 MATCH,Proxy와 같습니다. 일반적으로 규칙 목록의 마지막에 둡니다. 너무 앞에 두면 뒤에 있는 일반 규칙이 매칭될 기회를 얻지 못합니다.
도메인 조회, 트래픽 가로채기, 아웃바운드 선택은 서로 맞물리도록 설정해야 합니다. 스위치 하나만 켰다고 전체 접속 경로가 바뀌는 것은 아닙니다.
도메인을 IP 주소 등의 레코드로 변환하는 시스템입니다. mihomo의 DNS 모듈은 라우팅 설정과 연동해 조회 경로를 선택할 수 있지만, 이 모듈을 켰다고 모든 앱이 이를 사용하는 것은 아닙니다. 시스템 리졸버, 브라우저 보안 DNS, 앱 내장 리졸버가 서로 다른 경로를 사용할 수 있으므로 문제를 확인할 때는 조회가 향하는 곳과 최종 연결 대상 주소를 함께 살펴봐야 합니다.
합성 IP 주소로 도메인과 연결의 매핑 정보를 저장한 뒤, 커널이 연결을 받으면 원래 도메인을 복원하는 방식입니다. 합성 주소는 대상 웹사이트의 실제 주소가 아니므로 올바른 트래픽 가로채기 경로와 함께 사용해야 합니다. 일부 로컬 네트워크 서비스나 실제 DNS 조회 결과에 의존하는 앱은 fake-ip-filter에 추가해야 할 수 있습니다. 도메인 처리를 통째로 끄기보다 구체적인 호환성 문제에 맞춰 설정하세요.
가상 네트워크 인터페이스로 IP 패킷을 받아 트래픽을 가로채는 방식입니다. 시스템 프록시 설정을 따르지 않는 일부 앱의 트래픽도 처리할 수 있습니다. 실제 적용 범위는 라우팅, 권한, 제외 항목, 운영체제 제한에 따라 달라집니다. 전역 프록시 모드와 같은 의미는 아닙니다. TUN으로 전달된 연결도 규칙에 따라 직접 연결, 프록시, 차단할 수 있으며 다른 VPN과의 라우팅 충돌에도 유의해야 합니다.
도메인 조회가 의도한 경로로 전송되지 않고 다른 DNS 서비스에 도달하는 현상입니다. 문제를 확인할 때는 시스템 DNS, 브라우저 보안 DNS, 앱 내부 조회, TUN의 트래픽 가로채기 범위를 살펴봐야 합니다. 검사 페이지에 표시된 DNS 서비스 위치만으로 결론을 내리지 말고, 예상한 정책, 연결 로그, IPv6 우회 경로가 있는지도 함께 확인하세요.
운영체제가 앱에 제공하는 프록시 서버 설정입니다. 이 설정을 따르는 앱은 지정된 진입점으로 연결을 전달하지만, 설정을 따르지 않는 앱은 직접 인터넷에 연결할 수 있습니다. 따라서 시스템 프록시를 켰다고 모든 트래픽이 가로채지는 않습니다. 클라이언트를 종료한 뒤 브라우저에서 인터넷에 접속할 수 없다면, 시스템에 종료된 포트를 가리키는 설정이 남아 있는지도 확인하세요.
일부 연결의 핸드셰이크나 프로토콜 메타데이터에서 대상 도메인을 알아내 도메인 규칙 매칭을 돕는 기능입니다. 확인할 수 있는 정보는 프로토콜, 암호화 방식, 클라이언트 설정에 따라 달라집니다. HTTPS 본문을 복호화하는 기능이 아니며 모든 연결에서 도메인을 알아낼 수 있는 것도 아닙니다. 기능을 켠 뒤에도 DNS 매핑과 연결 로그를 함께 확인해 실제로 어떤 규칙이 적용됐는지 살펴봐야 합니다.
구독은 설정을 가져오는 출처이고, YAML은 설정 구조를 표현하며, 로컬 오버라이드는 기기별 차이를 유지합니다. 수정하기 전에 현재 적용 중인 설정 파일을 확인하세요.
원격 주소에서 노드 목록이나 전체 설정을 가져와 업데이트하는 방식입니다. 구독 응답은 YAML, 인코딩된 노드 목록 등 여러 형식일 수 있으므로 링크 모양만으로 호환 여부를 판단할 수 없습니다. 가져오기에 성공해도 내용이 읽혔다는 뜻일 뿐 노드가 실제로 작동한다는 보장은 없습니다. 구독 주소에 접속 정보가 포함될 수 있으니 로그나 스크린샷을 공유할 때 전체 링크를 가리세요.
원격 프록시 연결 설정 하나를 뜻하며, 보통 서버, 포트, 프로토콜, 인증 정보가 포함됩니다. 노드 이름은 단순한 라벨이므로 실제 위치, 출구 특성, 연결 품질을 보장하지 않습니다. 테스트에 성공해도 모든 사이트에 접속할 수 있다는 뜻은 아닙니다. 대상 사이트의 제한, 조회 경로, 규칙에서 선택한 정책에 따라 결과가 달라집니다.
클라이언트가 지정한 테스트 방식으로 요청을 보내고 응답을 받을 때까지 걸리는 시간입니다. 테스트 주소, DNS, 핸드셰이크 과정, 회선 상태에 따라 달라지며 다운로드 속도와는 다릅니다. 클라이언트마다 테스트 결과를 직접 비교하기 어려울 수 있습니다. 테스트가 실패해도 테스트 주소에 연결할 수 없는 경우가 있으므로 실제 대상과 연결 로그를 함께 확인해 노드 상태를 판단하세요.
들여쓰기로 계층을 표현하는 텍스트 데이터 형식입니다. Clash 설정은 보통 config.yaml로 저장합니다. 들여쓰기에는 공백을 사용하고 같은 단계의 키를 맞춰야 하며, 목록 항목과 문자열도 형식 규칙을 따라야 합니다. YAML 문법으로 파싱되더라도 커널이 해당 설정 항목을 지원한다는 뜻은 아닙니다. 저장한 뒤 설정이 정상적으로 로드됐는지, 오류가 어디에서 발생했는지 확인하세요.
구독 원본 설정과 별도로 클라이언트가 지정한 항목을 병합하거나 수정하는 방식입니다. 로컬 규칙, DNS, 포트 설정을 유지하는 데 유용하지만 구체적인 병합 방식은 클라이언트 구현에 따라 달라집니다. 배열을 대체할 수도, 기존 항목에 추가할 수도 있습니다. 수정한 뒤 최종 적용 설정을 확인해 구독 업데이트나 중복 규칙이 예상한 매칭 순서를 바꾸지 않았는지 살펴보세요.
mixed-port로 설정하는 로컬 수신 포트입니다. 하나의 포트에서 HTTP 프록시와 SOCKS5 연결을 모두 받을 수 있습니다. 외부 제어 API와는 역할이 다르므로 같은 수신 주소와 포트를 함께 사용할 수 없습니다. 포트를 변경하면 프록시를 수동으로 설정한 앱도 함께 수정해야 합니다. 다른 기기에서 사용하려면 수신 범위, 로컬 네트워크 접근 권한, 방화벽도 확인하세요.