"특정 카테고리의 사이트는 전부 같은 규칙으로 처리하고 싶다"거나 "흔한 광고 도메인은 모두 통일해서 처리하고 싶다"는 경우, DOMAIN-SUFFIX를 수십 줄 직접 작성하는 건 현실적이지 않습니다. 이미 커뮤니티에서 이런 규칙 세트를 지속적으로 관리하고 업데이트하는 사람들이 있습니다. Rule Provider는 설정 파일에서 이런 원격 규칙 세트를 "참조"할 수 있게 해주는 기능으로, 로컬에는 참조 한 줄만 작성하면 규칙 내용은 원격 파일에서 자동으로 갱신됩니다.
01기본 작성법
Rule Provider는 두 단계로 이루어집니다. 먼저 rule-providers에서 규칙 세트의 출처를 선언하고, rules에서 RULE-SET으로 이를 참조합니다.
rule-providers:
reject:
type: http
behavior: domain
url: "https://example.com/rules/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- GEOIP,CN,DIRECT
- MATCH,PROXY02behavior 필드의 세 가지 유형
behavior는 이 규칙 세트의 내용을 어떻게 해석할지 결정하는 필드로, 잘못 설정하면 규칙 세트가 완전히 작동하지 않게 됩니다. 가장 실수하기 쉬운 항목입니다.
| behavior | 규칙 세트 내용 형식 | 대표적인 용도 |
|---|---|---|
| domain | 순수 도메인 목록, 한 줄에 도메인 또는 도메인 접미사 하나 | 광고 도메인 차단 목록, 특정 사이트 분기 목록 |
| ipcidr | 순수 IP 대역 목록, 한 줄에 CIDR 하나 | 국가·지역별 IP 대역, 특정 클라우드 사업자 IP 대역 |
| classical | 최종 정책을 포함하지 않는 완전한 규칙 구문, 예: DOMAIN-SUFFIX,x.com | 여러 규칙 유형 혼합, 더 유연한 커스텀 규칙 세트 |
type 필드: http인가 file인가
type: http는 원격 URL에서 주기적으로 업데이트를 가져오는 가장 흔한 방식입니다. type: file은 이미 로컬에 있는 규칙 세트 파일을 직접 사용하는 방식으로, 스스로 관리하고 네트워크 업데이트가 필요 없는 경우에 적합합니다.
03흔히 쓰이는 규칙 세트 출처
커뮤니티에서 잘 알려진 규칙 세트 프로젝트로는 도메인을 분류 정리한 GeoSite 시리즈, 그리고 각종 "ACL4SSR" 스타일의 규칙 모음 등이 있습니다. 보통 domain과 classical 두 가지 형식의 파일을 함께 제공하니, 구체적인 링크는 해당 프로젝트의 공식 저장소에서 확인하고, 사용할 파일 형식과 behavior 설정이 일치하는지 반드시 확인하세요.
04규칙 세트가 작동하지 않는 이유
- behavior와 파일 형식이 일치하지 않음: 원격 파일이 실제로는 순수 도메인 목록인데 behavior: classical로 설정하면, 코어가 오류를 내거나 해당 규칙 세트를 무시합니다.
- path가 가리키는 로컬 캐시가 오래됨: url을 수정해도 이미 캐시된 예전 파일이 남아 있으면 일부 클라이언트는 자동으로 덮어쓰지 않습니다. path에 해당하는 로컬 파일을 직접 삭제하고 다시 받아와야 합니다.
- interval을 너무 길게 설정함: 업데이트 간격(단위: 초)을 너무 길게 설정하면 규칙 세트가 오래된 버전에 오래 머물게 됩니다. 일상적으로는 43200~86400(12~24시간) 정도가 적당합니다.
05Rule Provider와 일반 규칙을 함께 쓸 수 있을까
가능하며, 오히려 가장 흔한 사용법입니다. rules 목록에서 RULE-SET 참조와 일반 규칙(DOMAIN-SUFFIX, GEOIP 등)을 자유롭게 섞어 작성할 수 있습니다. 코어는 규칙의 출처와 무관하게 "위에서 아래로 하나씩 매칭하고 일치하면 멈춘다"는 순서를 그대로 따릅니다. 실제 설정에서는 흔히 쓰는 규칙 세트(광고 차단, 지역별 분기 등)를 앞쪽에 두고, 중간에 직접 작성한 특정 도메인 규칙을 몇 개 끼워 넣고, 마지막에 최종 규칙으로 마무리하는 방식이 가장 관리하기 편한 경우가 많습니다.
06직접 규칙 세트 파일을 관리할 필요가 있을까
대다수 일반 사용자에게는 필요 없습니다. 커뮤니티가 관리하는 규칙 세트는 이미 광고 차단, 지역별 사이트 분류 등 주요 수요를 커버하고 있고 계속 업데이트되므로 그냥 참조하면 충분합니다. 회사 내부 도메인이나 오랫동안 직접 관리하는 특정 사이트 목록처럼 공개 공유에 적합하지 않은 매우 특수한 분기 요구가 있을 때만 type: file과 로컬 파일로 직접 규칙 세트를 관리할 가치가 있습니다. 평소에는 몇 개의 수동 규칙이나 rules 안의 일반 규칙만으로도 충분합니다.