이 글은 Shadowrocket에 사용할 연결 정보를 직접 가져온 뒤, 지정한 사이트만 프록시로 연결하려는 사용자를 위한 안내입니다. 기존 설정을 유지하면서 도메인 규칙을 추가하고 Config를 선택한 다음 요청을 확인하면 ‘목록에 있는 사이트는 프록시, 나머지는 직접 연결’하도록 설정할 수 있습니다. 예시 도메인은 규칙 문법을 설명하기 위한 것으로, 실제 연결 서비스가 아닙니다. 이 사이트는 서버나 구독을 제공·판매·추천하지 않습니다.
먼저 목표 확인하기: 웹페이지 버튼이 아닌 도메인 기준으로 분류
‘지정한 사이트만 프록시 사용’하려면 두 가지를 정해야 합니다. 어떤 요청을 대상 사이트로 볼지, 대상이 아닌 요청은 어디로 보낼지입니다. Shadowrocket은 설정에 있는 규칙을 순서대로 요청에 적용합니다. 이 예시에서는 프록시를 사용할 도메인을 앞에 두고 FINAL,DIRECT를 마지막에 둡니다. 앞의 규칙에 일치하지 않는 요청은 직접 연결됩니다.
웹페이지는 보통 주소창에 표시된 도메인에만 연결하지 않습니다. 이미지, 로그인, 동영상, 정적 스크립트가 서로 다른 도메인에서 제공될 수 있으므로 ‘첫 화면은 열리지만 이미지가 보이지 않는’ 현상이 규칙 미적용을 뜻하지는 않습니다. 필요한 의존 도메인이 목록에서 빠졌을 수도 있습니다. 한 페이지를 완전히 불러오려고 범위가 지나치게 넓은 공용 도메인 접미사를 추가하지 마세요.
여기서 PROXY는 프록시 정책을 뜻하며 서버 주소가 아니고, 사용할 수 있는 연결을 자동으로 만들어 주지도 않습니다. 시작하기 전에 Home에 사용할 수 있는 서버가 등록되어 있고 이번 확인에 쓸 연결이 선택되어 있는지 확인하세요. 앱 구매와 회선 서비스는 별개입니다.
최소 규칙: DOMAIN-SUFFIX를 앞에, FINAL,DIRECT를 뒤에
아래는 규칙 부분의 예시이며, 완성된 연결 설정이 아닙니다. 기존 설정을 수정할 때 참고하세요. 이 몇 줄로 파일 전체를 덮어쓰면 DNS, 일반 설정 및 기타 필요한 내용이 사라질 수 있습니다. 실제로 사용할 때는 예시 도메인을 적용할 도메인으로 바꾸세요.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-SUFFIX,example.org,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX,example.com,PROXY는 example.com과 www.example.com, media.example.com 같은 하위 도메인에 일치하지만 notexample.com에는 일치하지 않습니다. 도메인 필드에 프로토콜, 경로, 포트 또는 와일드카드 별표를 입력하지 마세요. https://example.com/video는 이 필드에 사용할 형식이 아닙니다.
| 규칙 형식 | 일치 범위 | 사용 사례 |
|---|---|---|
DOMAIN,login.example.com,PROXY | 해당 호스트 이름만 | 로그인 주소만 프록시 사용 |
DOMAIN-SUFFIX,example.com,PROXY | 루트 도메인과 모든 하위 도메인 | 도메인 전체를 프록시로 연결 |
FINAL,DIRECT | 앞선 규칙에 하나도 일치하지 않은 요청 | 나머지 요청을 직접 연결 |
정리: 먼저 최소한의 도메인 범위로 확인하세요
호스트 이름 하나만 필요하다면 먼저 DOMAIN을 사용하세요. 루트 도메인과 모든 하위 도메인이 필요한 경우에만 DOMAIN-SUFFIX를 사용합니다. 정상적으로 작동하는지 확인한 뒤 필요한 도메인을 추가하세요. 처음부터 범위를 넓히면 어떤 규칙이 결과를 바꿨는지 파악하기 어렵습니다.
Config에서 설정을 저장한 다음 Home에서 Config 선택
수정하기 전에 기존 설정의 사본을 보관해 복원할 수 있도록 하세요. 기존 설정에 다른 도메인 규칙, 규칙 세트 또는 범위가 넓은 프록시 규칙이 있다면, 마지막에 FINAL,DIRECT만 추가해도 ‘지정한 사이트만 프록시 사용’하도록 설정되는 것은 아닙니다. 앞에서 이미 일치한 요청은 마지막 규칙까지 내려오지 않습니다. 마지막 줄만 보지 말고 규칙 전체를 확인하세요.
-
기존 설정 보관
Config로 이동해 현재 사용하는 설정을 찾아 사본을 만들거나 내보내 백업하세요. 이번에 수정할 파일이 이후 선택할 파일인지 확인하고, 여러 설정을 동시에 수정하지 마세요.
-
규칙 부분 수정
해당 설정의 편집 화면을 열고 [Rule]을 확인하세요. 대상 DOMAIN 또는 DOMAIN-SUFFIX 규칙을 FINAL 앞에 두고 쉼표, 도메인, 정책 이름을 확인합니다.
-
마지막 기본 규칙 확인
마지막 규칙은 FINAL,DIRECT로 설정하고, 그 앞의 규칙이 다른 사이트를 PROXY로 보내지는 않는지 확인하세요. 저장한 뒤 Config에서 해당 설정을 선택합니다.
-
모드 전환
Home → Global Routing으로 돌아가 Config를 선택하세요. Home에서 현재 서버 선택을 확인하고 연결을 켭니다. 처음 연결할 때는 시스템 안내에 따라 VPN 구성을 추가하도록 허용하세요.
-
요청 다시 보내기
열려 있던 페이지를 닫고 다시 연 다음, 목록에 있는 사이트와 없는 사이트를 각각 방문하세요. 설정을 수정하기 전에 이미 연결된 요청은 새 규칙을 확인하는 기준으로 삼을 수 없습니다. 필요한 경우 연결을 끊었다가 다시 연결하세요.
여기서 필요한 설정은 Home → Global Routing → Config입니다. Config 화면에서 파일이 보이는 것만으로는 충분하지 않습니다. 전자는 현재 트래픽을 규칙에 따라 처리할지 결정하고, 후자는 설정을 관리합니다. 파일 저장, 파일 선택, 모드 선택은 각각 별도로 확인해야 합니다.
Global Routing, 규칙 순서, On Demand의 역할
모든 사이트가 프록시로 연결된다면 모드부터 확인한 다음 규칙을 살펴보세요. Global Routing의 Proxy와 Direct는 전체 라우팅 방식을 지정하므로, 이 글의 도메인 목록처럼 분류하지 않습니다. Scene은 상황에 따라 라우팅을 선택하는 기능입니다. 처음 확인할 때는 상황 전환으로 인한 변수를 줄이도록 Config를 직접 선택하세요.
| 설정 | 주요 역할 | 이 예시에서의 설정 |
|---|---|---|
| Global Routing → Config | 현재 설정의 규칙에 따라 정책 결정 | 목록 확인을 위해 이 항목 선택 |
| Global Routing → Proxy | 전체 트래픽을 프록시로 라우팅 | 목록에 없는 사이트의 직접 연결 확인에는 사용하지 않음 |
| Global Routing → Direct | 전체 트래픽을 직접 연결 | 목록에 있는 사이트의 프록시 연결 확인에는 사용하지 않음 |
| Global Routing → Scene | Scene 설정에 따라 라우팅 동작 선택 | 먼저 Scene 전환의 영향 제외 |
| Settings → On Demand | 필요할 때 연결할 조건 관리 | 도메인 일치 여부와 별도로 확인 |
On Demand는 연결을 시작할 시점을 처리하며, 사이트 분류를 위한 DOMAIN-SUFFIX 판단을 대신하지 않습니다. 직접 연결을 끊은 뒤 자동으로 다시 연결된다면 Settings → On Demand에서 조건을 확인하세요. 특정 사이트의 라우팅이 잘못됐다면 Config의 규칙과 현재 라우팅 모드를 확인합니다. 이 두 단계는 구분해서 점검해야 합니다.
GEOIP는 대상 IP의 지리적 위치를 기준으로 일치 여부를 판단합니다. 웹사이트를 운영하는 회사의 소재지나 페이지 언어를 기준으로 하지는 않습니다. 이 글처럼 도메인 목록을 지정하는 경우에는 GEOIP로 구분할 필요가 없습니다.IP-CIDR는 IP 주소 대역에 일치합니다. 공유 서버나 콘텐츠 전송 네트워크의 주소는 여러 웹사이트가 함께 사용할 수 있으므로, 주소 대역 기준 프록시는 도메인 기준보다 더 넓은 범위에 적용될 수 있습니다.FINAL은 마지막 기본 규칙입니다. 대상 도메인 규칙보다 앞에 두면, 이미 이 규칙으로 처리된 요청에는 뒤의 규칙이 적용되지 않습니다.
결과 확인: 규칙 일치, DNS, 서버 연결 가능성 구분하기
웹페이지가 열려도 반드시 프록시를 통과한 것은 아니며, 열리지 않는다고 규칙이 일치하지 않은 것도 아닙니다. 확인할 때는 같은 네트워크, 같은 서버, 같은 설정을 유지하고 한 번에 하나의 항목만 바꾸세요. 연결 기록에서 대상 호스트, 일치한 규칙, 정책 정보를 확인해 경로를 점검할 수 있습니다. 표시되는 항목은 현재 인터페이스에 따라 다를 수 있습니다. DNS 조회 경로와 웹페이지 연결 정책도 단순히 같은 것으로 볼 수 없습니다.
- 목록에 있는 사이트 확인: 대상 사이트를 다시 열고 요청 호스트가 설정한 접미사에 해당하는지, 정책이 PROXY인지 확인하세요. 리디렉션된 뒤의 호스트 이름도 확인해야 합니다.
- 목록에 없는 사이트 확인: 규칙에 추가하지 않은 일반 사이트를 선택해 새 요청이 DIRECT로 처리되는지 확인하세요. 여전히 프록시로 연결된다면 앞에 있는 다른 규칙을 살펴보세요.
- 연결 테스트: Home에서 Connectivity Test를 사용해 서버에 연결할 수 있는지 확인할 수 있습니다. 테스트에 응답이 있다고 해서 모든 대상 사이트와 리소스가 사용 가능하다는 뜻은 아닙니다.
- 의존 도메인 확인: 글자는 보이지만 이미지가 표시되지 않거나 로그인이 실패한다면 해당 리소스의 실제 호스트 이름을 확인한 다음 규칙에 추가할지 결정하세요. 페이지 모양만 보고 도메인을 추측하지 마세요.
다음은 네트워크 요청에서 반환될 수 있는 시스템 오류 원문입니다. 규칙 편집기의 문법 안내가 아니며, Shadowrocket에서 매번 같은 형태로 표시된다는 뜻도 아닙니다. 오류가 발생하면 먼저 어떤 요청이 어떤 정책을 사용하다 실패했는지 확인한 뒤 설정을 조정하세요.
오류: The request timed out.
원인 및 해결 방법: 요청이 제한 시간 안에 완료되지 않았습니다. 네트워크, 대상 사이트 또는 프록시 연결 문제일 수 있습니다. 먼저 해당 요청이 예상한 정책에 일치했는지 확인한 뒤 Home → Connectivity Test에서 선택한 서버를 점검하세요. 프록시 목록부터 무작정 넓히지 마세요.
오류: A server with the specified hostname could not be found.
원인 및 해결 방법: 호스트 이름을 확인할 수 없거나 도메인 철자가 잘못되었을 수 있습니다. 접속 주소와 설정에 입력한 도메인을 확인한 다음 현재 설정의 DNS 항목을 점검하세요. DOMAIN-SUFFIX 규칙만으로는 이름 확인 오류를 해결할 수 없습니다.
앱이 IP에 직접 연결하거나 기존 연결을 재사용하거나, 실제 요청 호스트가 예상과 다르면 도메인 규칙에 생각한 대로 일치하지 않을 수 있습니다. 이때는 연결 기록을 바탕으로 원인을 찾고, ‘강제로 일치시키기’ 위해 IP-CIDR 대역을 무작정 추가하지 마세요. DNS를 더 자세히 확인하려면 기술 참고 자료의 DNS 안내를 읽어보세요.
자주 묻는 질문: 하위 도메인, 구독 업데이트, 설정 복원
하위 도메인 하나만 프록시로 연결하려면 어떻게 설정하나요?
예를 들어 login.example.com만 처리하려면 DOMAIN,login.example.com,PROXY를 입력하고 마지막의 FINAL,DIRECT를 유지하세요. DOMAIN-SUFFIX,example.com,PROXY를 사용하면 루트 도메인과 다른 하위 도메인도 프록시 범위에 포함됩니다.
규칙을 추가했는데도 왜 모든 사이트가 프록시로 연결되나요?
먼저 Home → Global Routing에서 Proxy가 아닌 Config가 선택되어 있는지 확인하세요. 그런 다음 Config로 돌아가 수정한 파일을 선택했는지 확인합니다. 마지막으로 위에서부터 살펴보며 더 앞에 있는 범위가 넓은 프록시 규칙이나 규칙 세트가 요청에 일치하는지 확인하세요.
구독을 새로고침하면 이 규칙이 바뀌나요?
연결 구독과 설정 파일은 따로 확인해야 합니다. 서버 구독을 업데이트해도 [Rule] 편집을 대신할 수는 없습니다. 원격 설정을 업데이트하면 로컬에서 수정한 내용이 새 내용으로 덮어써질 수 있습니다. 설정 사본을 보관하고 원격 설정을 업데이트할 때마다 규칙과 선택 상태를 다시 확인하세요.
목록에 없는 사이트가 DIRECT로 연결되면 VPN이 꺼진 건가요?
아닙니다. DIRECT는 연결이 켜져 있을 때 적용되는 라우팅 정책이며, 시스템 VPN 구성을 끄는 것이 아닙니다. 현재 연결을 중지하려면 Home에서 연결을 끄고 Settings → On Demand에 자동 연결 조건이 설정되어 있는지 확인하세요.
수정한 뒤 제대로 작동하지 않으면 어떻게 복원하나요?
Config로 돌아가 이전에 보관한 설정을 선택한 다음, 원래 사용하던 Global Routing 설정으로 다시 연결하세요. 복원 후 기존 사이트 접속을 먼저 확인하고 대상 도메인을 하나씩 추가합니다. 매번 하나씩만 바꾸면 결과가 달라진 원인을 찾기 쉽습니다.
마지막으로 네 가지를 확인하세요. 올바른 파일이 선택되어 있는지, Global Routing이 Config인지, 대상 도메인 규칙이 앞에 있는지, FINAL,DIRECT가 마지막에 있는지입니다. 그다음 웹페이지에 필요한 도메인을 하나씩 확인하면 목록 범위를 명확하게 유지하면서 페이지 로딩 문제를 전체 분류 기능의 오류로 잘못 판단하는 일을 줄일 수 있습니다.