1 Rule Provider로 규칙을 «구독»하는 이유
Clash 계열 코어는 rules 배열을 위에서 아래로 평가해 첫 일치 항목의 정책을 적용합니다. 도메인·IP·지역별 예외가 늘어날수록 설정 파일이 길어지고, 한 줄만 어긋나도 특정 앱만 끊기거나 광고만 새는 식의 부분 실패가 생깁니다. Rule Provider는 규칙 본문을 URL에서 내려받아 로컬 캐시(path)에 두고, 본문이 갱신되면 interval 주기로 다시 받아옵니다. 덕분에 노드 구독과 마찬가지로 규칙 세트도 외부에서 관리할 수 있습니다.
ACL4SSR 저장소는 오랫동안 중국 본토·해외 혼합 회선에서 쓰이는 분할 패턴을 정리해 왔으며, 로컬망 직통·스트리밍·광고·텔레그램 등 용도별 YAML을 나눠 제공합니다. 한국 사용자도 Netflix·Disney+·YouTube Premium 등 지역 잠금이 있는 서비스를 쓸 때 동일한 «도메인 목록 + 정책 이름」 패턴을 그대로 가져다 쓰기 좋습니다. 다만 최종 아웃바운드는 본인의 프록시 그룹 이름과 맞춰야 하고, 공항 구독이 Clash YAML이 아니라면 구독 변환 가이드로 먼저 호환 형식을 맞추는 것이 안전합니다.
rule-providers와 RULE-SET 행을 편집기에 씁니다. 개념을 이해하면 클라이언트를 바꿔도 이식이 쉽습니다.2 ACL4SSR 파일 형식과 behavior 선택
ACL4SSR의 Clash용 파일은 대부분 클래식 규칙 목록(예: DOMAIN-SUFFIX, DOMAIN-KEYWORD, IP-CIDR 등)을 payload: 아래에 나열하는 형태입니다. Rule Provider를 선언할 때는 코어 버전에 맞게 behavior: classical(또는 문서에서 권장하는 동등 설정)을 지정하는 경우가 많습니다. domain·ipcidr 전용 ruleset 포맷과 혼동하지 말고, 다운로드한 YAML이 어떤 스키마인지 저장소 README나 파일 헤더를 한 번 확인하세요.
CDN 미러로는 cdn.jsdelivr.net/gh/ACL4SSR/ACL4SSR@master/... 형태가 흔합니다. GitHub raw URL도 동작하지만 레이트 리밋이 걸릴 수 있어 클라이언트가 주기 갱신할 때는 미러를 쓰는 편이 안정적인 경우가 있습니다. URL은 저장소 구조 변경 시 바뀔 수 있으므로, 장기 운영 시에는 가끔 원본 저장소를 열어 경로가 유효한지 점검하는 습관이 필요합니다.
3 rule-providers 최소 예시
아래는 교육용 스켈레톤입니다. path는 작업 디렉터리 기준 상대 경로로 두고, 클라이언트가 자동 생성한 rulesets 폴더를 쓰면 권한 문제가 적습니다. URL은 실제 저장소의 최신 경로로 바꿔야 합니다.
rule-providers:
acl4ssr_proxy_media:
type: http
behavior: classical
format: yaml
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/ProxyMedia.yaml"
path: ./ruleset/acl4ssr_proxy_media.yaml
interval: 86400
acl4ssr_ban_ad:
type: http
behavior: classical
format: yaml
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/BanAD.yaml"
path: ./ruleset/acl4ssr_ban_ad.yaml
interval: 86400
ProxyMedia.yaml에는 Netflix·Disney+·YouTube 등 해외 미디어 관련 도메인이 묶여 있는 경우가 많고, BanAD.yaml은 광고·추적 호스트를 REJECT로 보내기 위한 목록입니다. 더 공격적인 차단이 필요하면 저장소의 BanProgramAD.yaml 등을 추가하되 오탐을 감수해야 합니다. interval은 초 단위이며, Meta 구버전에서 format: yaml을 인식하지 못하면 클라이언트 문서에 맞게 키를 조정하거나 코어를 올리세요. GitHub 접속이 불안정하면 신뢰할 수 있는 미러 URL로 바꿀 수 있으나 파일 무결성은 반드시 스스로 검증해야 합니다.
4 Netflix·Disney+ «잠금 해제»를 규칙만으로 이해하기
규칙 세트는 어떤 트래픽을 어느 정책으로 보낼지만 정합니다. Netflix나 Disney+가 특정 국가 카탈로그를 보여 주려면, 해당 정책이 선택하는 출구 노드의 IP가 그 국가에 속해야 합니다. ACL4SSR의 Clash/Providers/ProxyMedia.yaml은 Netflix·Disney+ 등 미디어 도메인 묶음을 한 RULE-SET으로 프록시 그룹에 태우도록 설계된 경우가 많습니다. 사용자 설정에서는 upstream이 기대하는 정책 이름을 자신의 proxy-groups 이름과 일치시키거나, RULE-SET 줄의 마지막 인자를 실제 그룹(예: 🎥 해외 미디어)으로 바꿉니다.
Disney+는 지역·결제·디바이스 정책이 복잡해, 규칙이 맞아도 앱이 자체 DNS·IPv6로 우회하는 경우가 있습니다. TUN 모드 가이드처럼 시스템 전체 트래픽을 가상 인터페이스로 모으면 예외가 줄어드는 경우가 많습니다. 스마트 TV·콘솔은 클라이언트 설치가 어려우므로, PC에서 Allow LAN 게이트웨이를 쓰는 등 별도 토폴로지를 검토해야 할 수 있습니다.
5 광고·추적 차단을 한 번에 넣기
ACL4SSR의 BanAD.yaml·BanProgramAD.yaml 계열은 브라우저·앱이 끌어오는 광고·분석 호스트를 REJECT로 내도록 모아 둔 경우가 많습니다. RULE-SET으로 연결할 때는 스트리밍·업무 도메인보다 위쪽에 두어, 광고 도메인이 먼저 걸러지게 하는 편이 일반적입니다. 다만 지나치게 공격적인 목록은 정상 결제·캡차·본인 확인 페이지까지 막아 오탐을 일으킬 수 있으므로, 문제가 생기면 해당 RULE-SET만 잠시 비활성화해 원인을 좁히세요.
HTTPS 광고는 연결 자체는 열리지만 도메인 단위 차단으로 상당 부분 줄일 수 있습니다. DNS 수준의 차단과 병행하려면 Meta DNS·FakeIP 가이드와 충돌하지 않게 fake-ip-filter를 조정해야 합니다. 규칙과 DNS가 서로 다른 경로를 보면 «페이지만 하얗게 뜨는» 현상이 남을 수 있습니다.
# Order matters: LAN / DIRECT exceptions first, then REJECT, then media
rules:
- RULE-SET,acl4ssr_ban_ad,REJECT
- RULE-SET,acl4ssr_proxy_media,🎥 해외 미디어
- GEOIP,CN,DIRECT
- MATCH,PROXY
🎥 해외 미디어는 예시 이름입니다. 실제 proxy-groups에 맞게 바꾸고, RULE-SET의 첫 번째 인자는 rule-providers 키와 정확히 동일해야 합니다. Netflix와 Disney+를 서로 다른 지역 노드로 내려면 ProxyMedia를 더 잘게 쪼갠 Provider나 단일 도메인 규칙을 추가해야 하며, 한 덩어리 RULE-SET은 보통 같은 출구를 가정합니다.
6 rules 배열 순서를 설계하는 법
흔한 패턴은 (1) 로컬·LAN·직통 예외, (2) 광고·악성 도메인 REJECT, (3) 스트리밍·소셜 등 목적별 RULE-SET, (4) GEOIP나 국가 코드, (5) 마지막 MATCH 기본값 순입니다. ACL4SSR을 여러 개 붙일 때 서로 모순되는 규칙이 없는지 확인하세요. 예를 들어 같은 도메인을 한쪽은 DIRECT, 다른 쪽은 PROXY로 내면 위쪽에 있는 쪽이 항상 승리합니다.
구독에서 내려온 rules와 로컬 RULE-SET을 합칠 때는 편집기에서 한 파일로 병합하거나, 클라이언트의 «프로필 병합» 기능에 맡깁니다. 병합 순서가 뒤바뀌면 «방금 넣은 ACL4SSR이 전혀 안 먹는» 상황이 되므로, 변경 후에는 코어 로그에서 매칭된 규칙 이름을 한 번 확인하는 것이 좋습니다.
7 DNS·IPv6와의 정렬
스트리밍 서비스는 CDN 이름을 여러 단계로 바꿔 쓰기 때문에, DNS만 로컬 ISP로 새 나가면 규칙은 프록시로 보냈는데 실제 연결은 다른 경로로 열리는 불일치가 생길 수 있습니다. Rule 모드에서 dns.enable과 FakeIP를 쓰는 구성은 앞서 인용한 DNS 가이드와 같이 읽는 것이 좋습니다. IPv6가 활성화되어 있고 IPv4만 프록시하면, 앱이 AAAA 레코드로 우회하는 사례도 있으니 환경에 맞게 IPv6 정책을 통일하세요.
8 문제 해결 체크리스트
- 규칙이 적용되지 않음:
rule-providers키 이름과RULE-SET첫 인자가 같은지, 로컬path파일이 생성됐는지 확인합니다. - HTTP 404로 갱신 실패: ACL4SSR 쪽 경로 변경 여부를 보고 URL을 고칩니다. 미러를 바꿔 테스트해 봅니다.
- 스트리밍만 오류: 노드 국가·UDP 지원·DNS 일관성을 의심합니다. 동일 계정으로 브라우저와 TV 앱이 다른 출구를 쓰면 카탈로그가 엇갈릴 수 있습니다.
- 사이트가 안 열림: 광고 목록 오탐일 수 있으므로
BanADRULE-SET을 잠시 끄고 재현해 봅니다.
9 정리
ACL4SSR을 Rule Provider로 붙이면 도메인 지식은 커뮤니티에 맡기고, 사용자는 프록시 그룹 설계·순서·DNS에 집중할 수 있습니다. Netflix·Disney+는 규칙과 출구 IP가 동시에 맞아야 하고, 광고 차단은 목록 공격성과 오탐 사이에서 균형을 잡아야 합니다. 한 번 잘 짜 둔 rule-providers 블록은 노드 구독만 갈아 끼워도 오래 재사용됩니다.
GUI 클라이언트는 편집기에 숨은 YAML을 덜 보이게 할 뿐, 동작 원리는 같습니다. 플랫폼별 패키지와 최신 빌드는 다운로드 페이지에서 비교할 수 있으며, TUN·DNS·규칙을 한 클라이언트에서 묶어 두면 스트리밍과 일상 트래픽을 섞지 않고도 운영하기 쉽습니다. 여러 단일 목적 앱을 겹쳐 쓰는 방식보다, 한 코어에 규칙과 노드를 정리하는 편이 장기적으로 덜 지치는 경우가 많습니다.