Shadowrocket 블로그 · 규칙

규칙 분기 쓰는 법:
DOMAIN-SUFFIX, GEOIP, FINAL을 한 번에.

홈과 상세 튜토리얼에도 규칙 분기가 나오고 짧은 예가 있지만 거기까지입니다. 이 글은 자주 쓰는 대조 유형, 대조 순서, 초보자가 틀리기 쉬운 점을 실제 예로 한 바퀴 돕니다.

규칙 파일은 무엇을 푸나

연결 후 모든 트래픽을 노드로 보낼 수도 있습니다. 쉽지만 낭비입니다. 한국 사이트, 은행, Apple 통신은 DIRECT가 더 빠르고 노드 용량도 안 씁니다. 규칙 파일의 일은 하나입니다. 도메인이나 IP마다 DIRECT인지 PROXY인지 정하는 것입니다.

규칙 파일은 일반 텍스트 목록입니다. 한 줄이 한 규칙이고, 형태는 다음으로 맞춰져 있습니다.

TYPE,VALUE,POLICY

Shadowrocket는 이 목록을 위에서 읽습니다. 맞은 줄 끝의 정책을 적용하고 거기서 멈춥니다. 이후는 대조하지 않습니다.

자주 쓰는 대조 유형

"유형"은 그 줄이 무엇으로 요청을 맞출지 정합니다. 자주 쓰는 것은 다음과 같습니다.

유형대조 대상설명
DOMAIN전체 호스트명. 완전 일치DOMAIN,www.example.com,PROXY그 호스트명만. 서브도메인이나 다른 접두사는 안 맞음
DOMAIN-SUFFIX도메인 접미사DOMAIN-SUFFIX,netflix.com,PROXYnetflix.com과 모든 하위 도메인(www.netflix.com 등)에 일치
DOMAIN-KEYWORD호스트명에 들어 있는 키워드DOMAIN-KEYWORD,youtube,PROXY호스트명에 키워드가 있으면 맞음. 접미사보다 넓고 오탐이 쉽습니다. 신중히
IP-CIDRIP 대역IP-CIDR,192.168.0.0/16,DIRECTCIDR로 대조. LAN이나 특정 서버 IP에 자주 씀
GEOIPIP의 국가/지역GEOIP,KR,DIRECT대상 서버 지리로 판정. KR은 한국. 흔히 “자국 IP는 DIRECT” 폴백으로 씀
FINAL위에 아무것도 안 맞았을 때의 기본FINAL,PROXY반드시 마지막 줄. "나머지를 어떻게 할지"

쉼표 마지막은 보통 PROXY(노드 경유), DIRECT(직접 연결), REJECT(거부. 광고 도메인 차단에 자주 씀)입니다.

대조 순서: 위에서 아래로, 맞으면 멈춤

놓치기 쉽고 가장 중요한 점입니다. 규칙은 위에서 아래로 대조하고, 맞은 줄의 정책을 바로 적용하며 아래는 보지 않습니다. 순서가 결과를 바꿉니다. 뒤에 "더 정확한" 줄이 있어도 앞줄이 맞았으면 실행되지 않습니다.

그대로 읽을 수 있는 한 세트 예:

DOMAIN-SUFFIX,netflix.com,PROXY
DOMAIN-SUFFIX,naver.com,DIRECT
DOMAIN-KEYWORD,youtube,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,KR,DIRECT
FINAL,PROXY

이 파일에서 www.netflix.com은 1줄(접미사 netflix.com)에서 PROXY. naver.com은 2줄에서 DIRECT. 공유기 화면 192.168.1.1은 4줄에서 DIRECT. 서버 IP가 한국이면 5줄 GEOIP에서 DIRECT. 아무 것도 안 맞으면 FINAL,PROXY입니다.

초보자가 자주 하는 작성 실수

01FINAL이 중간이고 마지막 줄이 아님+

FINAL은 "위에 아무것도 안 맞았을 때 처리"입니다. 중간에 두면 그 뒤 규칙은 영원히 실행되지 않는 죽은 코드가 됩니다. FINAL에 도달한 시점에 처리가 끝납니다. 반드시 마지막 줄에 두세요.

02DOMAIN-KEYWORD가 관련 없는 사이트에도 맞음+

키워드 대조는 생각보다 넓습니다. DOMAIN-KEYWORD,ads,PROXY는 광고 도메인뿐 아니라 이름에 "ads"가 들어간 일반 사이트에도 맞습니다. 아는 도메인은 DOMAIN-SUFFIX를 우선하고, 비슷한 이름을 많이 덮고 오탐을 감수할 때만 키워드를 쓰세요.

03GEOIP,KR,DIRECT가 너무 위에 있어 프록시할 사이트가 직접 연결됨+

스트리밍·뉴스는 국내 CDN에 캐시를 두기도 합니다. GEOIP,KR,DIRECT가 너무 위에 있으면 “한국 IP”로 오판되어 원하는 카탈로그 오리진에 못 갑니다. 반드시 프록시할 도메인은 앞에, GEOIP는 뒤쪽이 무난합니다.

04규칙을 바꿨는데 옛 동작 그대로+

손으로 고친 로컬 규칙은 저장하면 바로 먹는 경우가 많습니다. 구독 형태 규칙 세트는 해당 항목에서 "업데이트"를 한 번 눌러야 합니다. 캐시된 옛 규칙은 자동으로 안 바뀝니다.

처음부터 규칙을 쓰기 싫다면?

많은 사업자가 규칙 세트도 같이 줍니다. 이 글은 각 줄을 읽고, 예를 들어 은행 도메인을 DIRECT로 더하기 위한 것이지, 모두가 처음부터 쓰라는 뜻이 아닙니다.

참고: 구문은 Shadowrocket 공식 매뉴얼과 실기기 확인을 따릅니다. 지원 규칙 유형은 버전에 따라 다를 수 있습니다. 쓰는 빌드의 실제 지원을 우선하세요.

아직 Shadowrocket를 안 넣었나요? App Store 일회 구매 $2.99. 인앱 결제·구독료 없음. 설치 후 이 글의 규칙으로 분기를 시작할 수 있습니다
다운로드 가이드 보기 →

관련 글: 홈: Shadowrocket란 · 튜토리얼의 고급 규칙