PROTOCOLS
프록시 프로토콜
원격 연결 매개변수와 로컬 프록시 진입점을 구분하고, 인증 및 전송 조건을 확인하세요.
proxies
노드는 프록시 연결을 설정하는 데 필요한 서버 매개변수 모음입니다. 보통 주소, 포트, 프로토콜, 인증 정보가 포함되며 IP 주소 하나만을 뜻하지는 않습니다. 설정의 proxies에서 노드를 정의하고, 프록시 그룹에서 노드 이름을 참조할 수 있습니다. 가져온 뒤 연결되지 않으면 주소 확인, 포트 연결 여부, 인증 정보, 코어의 프로토콜 지원을 각각 살펴보세요. 목록에 이름이 표시된다는 이유만으로 사용 가능하다고 판단해서는 안 됩니다.
type: ss
Shadowsocks는 암호화 프록시 프로토콜입니다. 일반적인 설정 필드에는 server, port, cipher, password가 있습니다. 클라이언트와 서버는 호환되는 암호화 방식과 동일한 인증 정보를 사용해야 합니다. 코어마다 암호화 방식과 확장 기능의 지원 여부가 다를 수 있으므로, 설정을 옮길 때는 서버 주소만 복사하지 말고 실제 코어의 문서를 확인하세요.
type: trojan
Trojan은 TLS를 통해 프록시 통신을 전달합니다. 연결하려면 보통 서버, 포트, 비밀번호, TLS 검증에 사용할 서버 이름이 필요합니다. 서버 주소와 인증서 도메인은 다를 수 있으므로 관련 이름 필드를 임의로 IP 주소로 바꾸지 마세요. 인증서 오류가 발생하면 시스템 시간, 도메인, 인증서 체인을 먼저 확인하세요. 인증서 검증을 끄면 보안 수준이 달라지므로 일반적인 해결 방법으로 사용해서는 안 됩니다.
mixed-port
이 두 프로토콜은 앱이 로컬 프록시 진입점에 연결할 때 자주 사용하며, 원격 노드의 프로토콜과는 다른 계층입니다. mixed-port를 설정하면 하나의 포트에서 HTTP와 SOCKS 프록시를 제공할 수 있지만, 앱은 시스템 설정을 따르거나 프록시 매개변수를 직접 입력해야 합니다. 포트 충돌이 발생하면 먼저 로컬에서 해당 포트를 사용하는 프로그램을 확인하세요. 포트를 변경한 뒤에는 이 진입점을 사용하는 앱의 설정도 업데이트해야 합니다.
RULES & ROUTING
규칙과 트래픽 라우팅
규칙은 트래픽의 경로를 정하고 구독은 설정 내용을 제공합니다. 두 항목을 구분해 확인하세요.
rules
라우팅 규칙은 도메인, 대상 IP 또는 기타 연결 속성에 따라 출구를 선택합니다. rules는 보통 위에서 아래로 확인하며, 처음 일치하는 규칙의 정책이 적용됩니다. DOMAIN-SUFFIX는 도메인 접미사를 기준으로 매칭합니다. 결과는 코어가 연결에 해당하는 도메인을 확인할 수 있는지에 따라서도 달라집니다. 사용자 지정 규칙은 덮어쓸 수 있는 포괄적인 규칙보다 앞에 배치하세요. 저장 후 설정을 다시 불러오고 연결 세부 정보에서 실제로 적용된 규칙을 확인하세요.
direct / reject / match
DIRECT와 REJECT는 각각 직접 연결과 연결 거부에 사용하는 기본 정책입니다. MATCH는 나머지 트래픽에 적용하는 규칙 유형이므로, 세 항목을 같은 종류의 필드로 취급해서는 안 됩니다. MATCH,DIRECT는 나머지 트래픽을 직접 연결한다는 뜻입니다. MATCH,PROXY를 사용하려면 설정에 PROXY라는 이름의 프록시 그룹이나 출구가 있어야 합니다. 기본 규칙은 보통 목록의 마지막에 둡니다.
geoip
GeoIP는 IP 주소를 지역 정보와 연결합니다. 예를 들어 GEOIP,CN,DIRECT는 데이터베이스에서 중국 지역으로 분류한 대상 IP에 직접 연결을 적용합니다. 지역 분류는 데이터베이스 업데이트, 주소 재할당, CDN 라우팅에 따라 달라질 수 있으므로 노드 지연 시간이나 서비스 제공자 신원을 추정하는 데 사용해서는 안 됩니다. 업데이트할 때는 클라이언트가 사용하는 데이터베이스 형식과 출처도 확인하세요. 파일을 교체해도 실행 중인 코어가 이전 데이터를 계속 읽을 수 있습니다.
subscription / proxy-providers
구독 링크는 업데이트 가능한 노드나 전체 설정을 가져올 때 사용하며, proxy-providers는 설정에서 노드 목록을 불러오는 기능입니다. 클라이언트에서 구독을 업데이트하면 설정 전체가 덮어써질 수 있지만, 제공자는 보통 해당 노드 목록만 변경합니다. 따라서 로컬 규칙은 클라이언트가 지원하는 재정의 또는 병합 경로에 추가하세요. 구독 주소에 접근 정보가 포함될 수 있으므로 문제를 확인할 때 전체 주소를 가리고 공개 로그나 스크린샷에 올리지 마세요.
PROXY GROUPS
프록시 그룹
규칙은 프록시 그룹을 참조하고, 프록시 그룹은 노드를 선택합니다. 그룹 유형에 따라 수동 선택, 테스트, 순차 선택 방식이 달라집니다.
type: select
select를 사용하면 후보 노드나 하위 프록시 그룹 중에서 출구를 직접 선택할 수 있어, 특정 경로를 고정해야 하는 앱에 적합합니다. 규칙은 현재 화면에 표시된 노드 이름이 아니라 그룹 이름을 참조하므로, 후보를 바꿀 때 규칙을 수정할 필요는 없습니다. 마지막 선택을 기억할지는 클라이언트와 설정에 따라 다릅니다. 재시작 후 선택이 바뀐다면 선택 저장 설정과 구독 업데이트 동작을 먼저 확인하세요.
type: url-test
url-test는 지정된 테스트 URL에 접속해 결과에 따라 후보 출구를 자동으로 선택합니다. interval은 테스트 간격을 조절하고, tolerance는 작은 지연 시간 차이로 인한 잦은 전환을 줄이는 데 사용할 수 있습니다. 측정값은 해당 시점에 테스트 대상까지 연결된 경로를 나타내며 다운로드 대역폭이나 모든 웹사이트의 접속 가능 여부를 뜻하지는 않습니다. 결과를 비교할 때는 테스트 주소와 네트워크 환경을 동일하게 유지하고, 테스트 시간 초과와 앱 접속 실패를 구분하세요.
type: fallback
fallback은 후보 목록 순서대로 사용 가능한 출구를 선택하므로, 고정된 경로를 우선 사용하고 작동하지 않을 때 예비 경로로 전환하는 경우에 적합합니다. 핵심은 우선순위이며, 후보 중 지연 시간이 가장 낮은 노드를 계속 선택하는 방식이 아닙니다. 사용 전에 주 경로를 목록 앞에 배치하고 테스트 대상이 실제 서비스 접근 상태를 잘 나타내는지 확인하세요. 출구가 바뀌면 기존 연결이 유지된다는 보장은 없습니다.
type: load-balance
load-balance는 선택한 분배 정책에 따라 여러 후보 출구로 연결을 분산합니다. 구체적인 알고리즘은 현재 코어의 지원 여부를 확인해야 합니다. 여러 노드를 하나의 고속 회선으로 합치는 기능은 아니며, 보통 단일 연결은 하나의 출구를 사용합니다. 로그인, 결제, 세션처럼 출구 IP에 민감한 서비스에는 고정 선택 그룹을 사용하는 것이 좋습니다. 요청마다 출구가 바뀌면 추가 인증이 발생할 수 있습니다.
매개변수와 조합 설정: url-test, fallback, load-balance 차이와 설정 방법.
DNS & NETWORK STACK
DNS와 네트워크 스택
트래픽이 코어에 들어오는 방식과 도메인 해석 방식을 구분하고, 프록시 출구 테스트만으로 네트워크 전체를 확인했다고 판단하지 마세요.
tun
TUN은 가상 네트워크 인터페이스와 라우팅을 통해 트래픽을 처리하므로 시스템 프록시를 사용하지 않는 일부 앱도 지원할 수 있습니다. 다만 모든 연결을 처리한다고 보장되지는 않습니다. 데스크톱 클라이언트에는 서비스 구성 요소나 관리자 권한이 필요할 수 있으며, Apple 모바일 기기에서는 보통 시스템이 제공하는 터널 기능을 사용합니다. 사용 후 문제가 발생하면 라우팅, DNS, 다른 VPN과의 충돌을 각각 확인하세요. 기존 시스템 프록시 문제를 파악하기 전에 여러 트래픽 처리 방식을 반복해서 겹쳐 사용하지 않는 것이 좋습니다.
enhanced-mode: fake-ip
Fake-IP는 도메인에 합성 주소를 반환하고 매핑을 유지해, 이후 연결이 코어에 들어올 때 원래 도메인을 식별하여 라우팅에 활용할 수 있게 합니다. 합성 주소는 웹사이트가 실제로 해당 주소에 배포되었다는 뜻이 아니므로 실제 서버 IP의 소유자를 확인하는 데 사용할 수 없습니다. 로컬 네트워크 서비스나 실제 DNS 결과에 의존하는 앱에는 예외 설정이 필요할 수 있습니다. 설정을 바꾼 뒤에는 시스템과 앱의 캐시도 확인해 이전 매핑을 계속 사용하지 않도록 하세요.
dns routing
도메인 조회가 예상된 경로를 우회해 다른 리졸버에 전달되는 현상을 보통 DNS 누수라고 합니다. 문제가 되는지는 미리 정한 DNS 정책을 기준으로 판단해야 합니다. 브라우저의 보안 DNS, 시스템 DNS, 앱 자체 DNS, 코어 DNS가 동시에 사용될 수 있으므로 웹사이트에 접속한 출구 IP만으로 조회 경로가 올바르다고 판단할 수는 없습니다. 리졸버 테스트와 연결 로그를 함께 살펴 실제 조회가 어디로 전송되는지 확인한 다음 트래픽 처리 범위를 조정하세요.
system proxy
시스템 프록시는 운영체제에 프록시 주소와 포트를 등록해 해당 설정을 따르는 앱에서 읽도록 합니다. 모든 트래픽을 강제로 전달하는 기능은 아닙니다. 브라우저, 명령줄 도구, 자체 네트워크 스택을 사용하는 앱은 설정 방식이 다를 수 있으므로 브라우저에서 연결된다고 모든 앱이 프록시를 사용한다는 뜻은 아닙니다. 클라이언트를 종료한 뒤 네트워크 문제가 생기면 시스템 프록시가 중지된 로컬 포트를 가리키고 있는지 확인한 후 설정을 복원하거나 서비스를 다시 시작하세요.
APPLE PLATFORM
Apple 플랫폼 전용 개념
설치 파일 아키텍처, 네트워크 권한, 자격 증명 접근은 각각 따로 확인하세요. 권한을 승인해도 노드 연결이 보장되는 것은 아닙니다.
network extension
Network Extension은 Apple이 제공하는 네트워크 기능 확장 프레임워크입니다. 앱은 관련 기능을 사용해 터널과 트래픽 처리를 구현할 수 있습니다. 클라이언트마다 구현 방식이 다르므로 모든 macOS 클라이언트에서 같은 확장 승인 절차가 필요한 것은 아닙니다. 시스템에서 권한을 요청하면 앱과 개발자 정보를 확인한 뒤 해당 OS 버전의 설정 화면에서 승인하세요. 클라이언트가 다른 보조 서비스를 사용하는 경우에는 실제로 표시되는 권한 요청을 따르세요.
vpn configuration
iOS 클라이언트가 처음 터널을 만들 때는 VPN 구성 추가를 허용해 달라는 메시지가 표시되는 경우가 많습니다. 승인해야 시스템 연결 진입점을 만들 수 있습니다. 이 권한은 원격 노드가 유효하다는 뜻도, 모든 트래픽이 프록시 출구를 사용한다는 뜻도 아닙니다. 실제 경로는 라우팅과 규칙에 따라 결정됩니다. 연결이 설정되지 않으면 먼저 시스템 VPN 상태와 다른 터널과의 충돌을 확인한 뒤 클라이언트 로그와 현재 설정을 살펴보세요.
keychain
키체인은 Apple 시스템에서 비밀번호와 인증서 등 민감한 데이터를 저장하는 기능으로, 클라이언트가 연결에 필요한 정보를 저장하거나 읽을 때 사용할 수 있습니다. 접근 권한 요청이 표시되면 요청 앱과 대상 항목을 확인하고 적절한 범위로 승인하세요. 키체인 접근, 네트워크 확장 승인, 관리자 권한은 서로 별개입니다. 권한 창이 반복해서 표시되는 원인은 앱 신원이나 저장된 항목일 수도 있으므로 키체인 전체를 바로 삭제하지 마세요.
arm64 / x86_64
macOS 설치 파일은 보통 Apple Silicon용 arm64와 Intel용 x86_64로 구분됩니다. Apple 메뉴의 ‘이 Mac에 관하여’에서 칩 또는 프로세서를 확인한 뒤 선택하세요. Apple Silicon에서 일부 Intel 앱은 Rosetta로 실행할 수 있지만, 보조 구성 요소와 네트워크 기능까지 호환된다는 뜻은 아닙니다. 해당 아키텍처에 맞는 기본 설치 파일을 우선 선택하고 최소 시스템 요구 사항도 확인하세요.
권한 설정 위치와 버전별 차이: macOS 네트워크 확장 및 키체인 승인 방법.
CORE & CLIENT
코어와 클라이언트
먼저 실제로 실행 중인 코어를 확인한 다음 필드 파싱 가능 여부와 클라이언트가 설정을 덮어쓰는지 살펴보세요.
mihomo
mihomo는 Clash Meta의 계보를 이어 발전했으며 프로토콜 연결, 규칙 매칭, DNS, 네트워크 처리 등 하위 기능을 담당합니다. GUI 클라이언트에서 사용할 수 있지만 앱 이름만으로 코어 버전을 알 수는 없으므로 클라이언트의 코어 정보를 확인하세요. 필드를 인식하지 못하면 실행 중인 버전과 문서의 적용 범위를 확인한 뒤 클라이언트가 설정을 필터링, 수정 또는 재생성했는지도 살펴보세요.
graphical client
GUI 클라이언트는 구독 관리, 출구 선택, 로그, 시스템 연동을 위한 인터페이스를 제공하고, 코어는 실제 연결을 처리합니다. 두 구성 요소는 서로 다릅니다. 같은 코어를 사용해도 플랫폼마다 권한, 백그라운드 실행 방식, 사용 가능한 설정이 다를 수 있습니다. 클라이언트를 비교할 때는 운영체제 지원, 코어 기능, 설정 관리 방식을 각각 확인하세요. 선택 팁은 비교 리뷰에서 볼 수 있습니다.
config.yaml
YAML은 들여쓰기로 맵과 목록의 관계를 표현하는 형식으로, Clash 생태계에서 자주 사용하는 설정 파일입니다. 같은 계층의 필드는 들여쓰기를 동일하게 맞추고 탭 대신 공백을 사용하세요. 문법 파싱에 성공했다는 것은 구조를 읽을 수 있다는 뜻일 뿐, 현재 코어의 필드 지원 여부나 노드와 정책 참조의 유효성을 보장하지 않습니다. 편집 전에 복구 가능한 사본을 보관하고, 수정 후에는 파싱 오류와 실제 적용된 설정을 확인하세요. 구독 새로 고침으로 로컬 변경 사항이 덮어써지지 않도록 주의하세요.
external-controller
external-controller는 클라이언트나 관리 대시보드에서 상태를 확인하고 정책을 전환하며 연결을 관리하는 데 사용합니다. 이 인터페이스의 수신 포트는 HTTP나 SOCKS 프록시 진입점이 아닙니다. 일반적으로 로컬에서만 접근하도록 제한하고 인증을 설정하세요. 접근 제어를 명확히 이해하는 경우에만 다른 기기에서 접속할 수 있도록 개방해야 합니다. 대시보드가 연결되지 않으면 수신 주소, 인증 정보, 코어 상태를 먼저 확인하세요. 프록시 포트를 제어 인터페이스 설정에 입력하지 마세요.