빠른 시작에서 Clash의 규칙 기반 매칭 기초를 설명했습니다. 이 장에서는 최신 Clash 버전에서 사용할 수 있는 모든 규칙 유형을 소개합니다.
# 类型,参数,策略(,no-resolve)
TYPE,ARGUMENT,POLICY(,no-resolve)no-resolve 옵션은 선택 사항이며 규칙의 DNS 확인을 건너뜁니다. 도메인을 즉시 IP 주소로 확인하지 않고 GEOIP, IP-CIDR, IP-CIDR6, SCRIPT 규칙을 적용할 때 유용합니다.
정책
현재 정책 유형은 다음 네 가지입니다:
- DIRECT: 시스템 라우팅 테이블을 조회하지 않고
interface-name에 지정된 인터페이스로 대상에 직접 연결 - REJECT: 패킷을 폐기합니다.
- Proxy: 패킷을 지정한 프록시 서버로 라우팅합니다.
- Proxy Group: 패킷을 지정한 정책 그룹으로 라우팅합니다.
규칙 유형
다음 절에서는 각 규칙 유형과 사용 방법을 설명합니다:
DOMAIN 도메인
DOMAIN,www.google.com,policy 규칙은 www.google.com 도메인을 policy로 라우팅합니다.
DOMAIN-SUFFIX 도메인 접미사
DOMAIN-SUFFIX,youtube.com,policy 규칙은 youtube.com 문자열로 끝나는 모든 도메인을 policy로 라우팅합니다.
이 경우 www.youtube.com 및 foo.bar.youtube.com 모두 policy로 라우팅됩니다.
DOMAIN-KEYWORD 도메인 키워드
DOMAIN-KEYWORD,google,policy 규칙은 google 키워드가 포함된 모든 도메인을 policy로 라우팅합니다.
이 경우 두 도메인 www.google.com 및 googleapis.com 모두 policy로 라우팅됩니다.
GEOIP IP 지리적 위치(국가 코드)
GEOIP 규칙은 대상 IP 주소의 국가 코드를 기준으로 패킷을 라우팅합니다. Clash는 이를 위해 MaxMind GeoLite2 데이터베이스를 사용합니다.
경고
이 규칙을 사용하면 Clash가 도메인을 IP 주소로 확인한 뒤 해당 IP 주소의 국가 코드를 조회합니다. DNS 확인을 건너뛰려면 no-resolve 옵션을 사용하세요.
GEOIP,CN,policy 규칙은 대상 IP 주소가 중국인 모든 패킷을 policy로 라우팅합니다.
IP-CIDR IPv4 주소 대역
IP-CIDR 규칙은 패킷의 대상 IPv4 주소를 기준으로 라우팅합니다.
경고
이 규칙을 사용하면 Clash가 도메인을 IPv4 주소로 확인합니다. DNS 확인을 건너뛰려면 no-resolve 옵션을 사용하세요.
IP-CIDR,127.0.0.0/8,DIRECT 규칙은 대상 IP 주소가 127.0.0.0/8인 모든 패킷을 DIRECT로 라우팅합니다.
IP-CIDR6 IPv6 주소 대역
IP-CIDR6 규칙은 패킷의 대상 IPv6 주소를 기준으로 라우팅합니다.
경고
이 규칙을 사용하면 Clash가 도메인을 IPv6 주소로 확인합니다. DNS 확인을 건너뛰려면 no-resolve 옵션을 사용하세요.
IP-CIDR6,2620:0:2d0:200::7/32,policy 규칙은 대상 IP 주소가 2620:0:2d0:200::7/32인 모든 패킷을 policy로 라우팅합니다.
SRC-IP-CIDR 소스 IP 주소 대역
SRC-IP-CIDR 규칙은 패킷의 소스 IPv4 주소를 기준으로 라우팅합니다.
SRC-IP-CIDR,192.168.1.201/32,DIRECT 규칙은 소스 IP 주소가 192.168.1.201/32인 모든 패킷을 DIRECT로 라우팅합니다.
SRC-PORT 소스 포트
SRC-PORT 규칙은 패킷의 소스 포트를 기준으로 라우팅합니다.
SRC-PORT,80,policy 규칙은 소스 포트가 80인 모든 패킷을 policy로 라우팅합니다.
DST-PORT 대상 포트
DST-PORT 규칙은 패킷의 대상 포트를 기준으로 라우팅합니다.
DST-PORT,80,policy 규칙은 대상 포트가 80인 모든 패킷을 policy로 라우팅합니다.
PROCESS-NAME 소스 프로세스 이름
PROCESS-NAME 규칙은 패킷을 보낸 프로세스 이름에 따라 패킷을 라우팅합니다.
경고
현재 macOS, Linux, FreeBSD 및 Windows만 지원합니다.
PROCESS-NAME,nc,DIRECT 규칙은 nc 프로세스에서 발생한 모든 패킷을 DIRECT로 라우팅합니다.
PROCESS-PATH 소스 프로세스 경로
PROCESS-PATH 규칙은 패킷을 보낸 프로세스 경로에 따라 패킷을 라우팅합니다.
경고
현재 macOS, Linux, FreeBSD 및 Windows만 지원합니다.
PROCESS-PATH,/usr/local/bin/nc,DIRECT 규칙은 경로가 /usr/local/bin/nc인 프로세스의 모든 패킷을 DIRECT로 라우팅합니다.
IPSET IP 집합
IPSET 규칙은 IP 집합으로 패킷을 매칭하고 라우팅합니다. IPSET 공식 웹사이트의 설명은 다음과 같습니다:
IP 집합은 Linux 커널의 프레임워크이며 ipset 프로그램으로 관리할 수 있습니다. 유형에 따라 IP 주소, 네트워크, (TCP/UDP) 포트 번호, MAC 주소, 인터페이스 이름 또는 이들의 조합을 저장해 집합 항목을 매우 빠르게 매칭할 수 있습니다.
따라서 이 기능은 Linux에서만 작동하며 ipset 설치가 필요합니다.
경고
이 규칙을 사용하면 Clash가 도메인을 IP 주소로 확인한 뒤 해당 IP 주소가 IP 집합에 포함되는지 검사합니다. DNS 확인을 건너뛰려면 no-resolve 옵션을 사용하세요.
IPSET,chnroute,policy 규칙은 대상 IP 주소가 IP 집합 chnroute에 포함된 모든 패킷을 policy로 라우팅합니다.
RULE-SET 규칙 집합
정보
이 기능은 Premium 버전에서만 사용할 수 있습니다.
RULE-SET 규칙은 Rule Providers 규칙 집합의 결과에 따라 패킷을 라우팅합니다. Clash는 지정된 Rule Providers에서 규칙을 불러와 패킷과 매칭합니다. 일치하는 규칙이 있으면 지정된 정책으로 패킷을 보내고, 없으면 이 규칙을 건너뜁니다.
경고
RULE-SET을 사용할 때 규칙 집합 유형이 IPCIDR이면 Clash가 도메인을 IP 주소로 확인합니다. DNS 확인을 건너뛰려면 no-resolve 옵션을 사용하세요.
RULE-SET,my-rule-provider,DIRECT 규칙은 my-rule-provider에서 모든 규칙을 불러옵니다
SCRIPT 스크립트
정보
이 기능은 Premium 버전에서만 사용할 수 있습니다.
SCRIPT 규칙은 스크립트 결과에 따라 패킷을 라우팅합니다. Clash가 이 규칙을 사용하면 지정한 스크립트를 실행한 뒤 패킷을 스크립트의 출력으로 라우팅합니다.
경고
SCRIPT를 사용하면 Clash가 도메인을 IP 주소로 확인합니다. DNS 확인을 건너뛰려면 no-resolve 옵션을 사용하세요.
SCRIPT,script-path,DIRECT 규칙은 패킷을 스크립트 script-path의 출력으로 라우팅합니다.
MATCH 전체 매칭
MATCH 규칙은 남은 모든 패킷을 라우팅합니다. 이 규칙은 필수이며 보통 마지막 규칙으로 사용합니다.
MATCH,policy 규칙은 나머지 패킷을 policy로 라우팅합니다.
