2026-09-09 · 고급 설정 · 약 10분

Shadowrocket 특정 사이트만 프록시로 연결하기: DOMAIN-SUFFIX와 FINAL,DIRECT 규칙 설정

일부 도메인만 PROXY로 보내고 나머지는 모두 DIRECT로 연결하는 방법을 알아봅니다. DOMAIN-SUFFIX와 DOMAIN-KEYWORD 작성법, 규칙 순서, FINAL 기본 규칙을 설명하고 바로 수정해 쓸 수 있는 예시도 제공합니다.

이 글의 핵심

Shadowrocket에서 지정한 사이트만 프록시로 연결하려면 Global Routing을 Config로 설정하고, 현재 적용 중인 구성의 [Rule]에 대상 도메인의 PROXY 규칙을 먼저 추가한 뒤 마지막에 FINAL,DIRECT를 둡니다. 직접 이용 중인 서비스 정보를 가져와 정상적으로 연결할 수 있는 사용자를 대상으로 규칙의 범위, 저장 및 적용, 요청 확인과 오매칭 점검 방법을 설명합니다.

1. Config 모드와 프록시 경로 확인하기

먼저 현재 실행 설정을 확인한 다음 규칙을 편집하세요. Home → Global Routing에서 트래픽 처리 방식을 정합니다. Config 파일만 수정하고 Home이 Proxy나 Direct로 설정되어 있으면, 이 글에서 다루는 도메인별 분기는 적용되지 않습니다. 서버 정보와 규칙 설정은 별개입니다. 서버에 연결할 수 있더라도 현재 구성에 올바른 도메인 규칙이 들어 있다는 뜻은 아닙니다.

화면 옵션기능이 글에서의 처리
Proxy프록시 모드로 트래픽을 처리하며, 이 글에서 설명하는 도메인 허용 목록 방식으로 분기하지 않습니다.Config로 변경한 다음 규칙을 테스트합니다.
Direct직접 연결 모드로 트래픽을 처리합니다.이 모드에서는 PROXY 규칙을 검증할 수 없습니다.
Config현재 선택한 구성 파일에 따라 트래픽을 처리합니다.이 글에서는 이 옵션을 사용합니다.
SceneScene 설정에 따라 실행 방식을 정합니다.문제를 확인할 때는 Config를 사용해 Scene 전환에 따른 변수를 줄이세요.

이 예시에서 PROXY는 프록시 정책을 뜻합니다. 서버 주소나 Address 입력란에 넣는 값이 아닙니다. 기본 프록시 정책을 사용한다면 먼저 Home에서 선택한 서버에 연결할 수 있는지 확인하세요. 기존 구성에서 사용자 지정 정책 그룹을 사용한다면 해당 그룹에서 실제로 무엇을 선택했는지도 확인해야 합니다. DIRECT는 대상 연결이 프록시 서버를 거치지 않고 직접 연결됨을 뜻합니다.

2. DOMAIN-SUFFIX와 FINAL,DIRECT 기본 규칙

example.com과 그 하위 도메인은 프록시로 보내고 나머지는 직접 연결하려면 아래 내용을 규칙 부분의 시작점으로 사용할 수 있습니다. 도메인은 설명용 예시이므로 원하는 도메인으로 바꾸세요. 아래 내용은 [Rule] 부분만 포함하며 전체 구성 파일이 아닙니다.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

DOMAIN-SUFFIX는 도메인 접미사 경계를 기준으로 일치 여부를 판단합니다. 위 규칙은 example.com, www.example.com, api.example.com에 적용되지만 문자열이 비슷하다는 이유만으로 notexample.com까지 적용되지는 않습니다. 규칙에는 도메인만 입력하고 https://, 포트, 경로, 쿼리 매개변수는 넣지 마세요.

Shadowrocket은 규칙을 순서대로 확인하며, 먼저 일치한 규칙이 해당 연결의 정책을 결정합니다. FINAL,DIRECT를 대상 도메인 규칙보다 앞에 두면 앞에서 기본 처리가 적용되어 뒤의 규칙이 작동하지 않습니다. 기존 구성을 편집할 때는 앞쪽에 범위가 넓은 규칙이 있는지도 확인하세요. 파일 끝에 몇 줄을 추가하는 것만으로는 충분하지 않습니다.

3. 여러 사이트와 DOMAIN-KEYWORD의 적용 범위

서로 다른 사이트는 보통 한 줄씩 나열하는 편이 관리하기 쉽습니다. 한 페이지에서 로그인 도메인, 정적 리소스 도메인, API 도메인에 모두 접속할 수 있으며, 이 도메인들이 같은 접미사를 쓰는 것은 아닙니다. 실제 요청을 확인해 필요한 규칙을 추가하고, 페이지가 제대로 표시되지 않는다는 이유만으로 모든 트래픽을 프록시로 돌리지는 마세요.

[Rule]
DOMAIN,login.example.com,PROXY
DOMAIN-SUFFIX,example.org,PROXY
DOMAIN-SUFFIX,example.net,PROXY
FINAL,DIRECT
규칙 형식일치 범위사용 기준
DOMAIN,login.example.com,PROXYlogin.example.com과 완전히 일치하는 도메인입니다.특정 호스트 하나만 처리할 때 사용합니다.
DOMAIN-SUFFIX,example.com,PROXYexample.com과 그 하위 도메인입니다.같은 도메인 계열을 처리할 때 사용합니다.
DOMAIN-KEYWORD,example,PROXY도메인에 example 문자열이 포함됩니다.범위가 넓으므로 오매칭 여부를 확인해야 합니다.

DOMAIN-KEYWORD는 사이트 소유 관계를 확인하지 않으며, 키워드가 특정 도메인 단계에 있는지도 따지지 않습니다. 예를 들어 DOMAIN-KEYWORD,example,PROXY는 example.com뿐 아니라 notexample.net에도 적용될 수 있습니다. 이 규칙은 도메인을 대상으로 하며 페이지 제목, 본문, URL 경로에는 적용되지 않습니다. 따라서 같은 도메인에서 특정 페이지에만 프록시를 적용하는 용도로 사용할 수 없습니다.

요점: 도메인을 먼저 지정하고, 필요한 경우 범위를 넓히세요

일부 사이트만 처리한다면 DOMAIN이나 DOMAIN-SUFFIX를 우선 사용하세요. 여러 대상 도메인에 같은 키워드 조건이 꼭 필요하다고 확인한 경우에만 DOMAIN-KEYWORD를 사용하고, 같은 키워드가 포함된 비대상 도메인으로 적용 범위를 점검하세요.

4. 저장·적용·확인하는 5단계

규칙을 수정한 뒤에는 파일이 저장되었는지, 해당 구성이 선택되었는지, 실행 모드가 올바른지, 새 요청이 발생했는지 모두 확인해야 합니다. 기존 연결은 이전 세션을 계속 사용할 수 있으므로 브라우저에서 이미 열려 있는 페이지만 보고 새 규칙의 적용 여부를 판단할 수는 없습니다.

  1. 연결 경로 확인

    Home에서 기존 서버를 선택하고 Connectivity Test로 연결 가능 여부를 확인하세요. 테스트 결과는 해당 테스트 대상에 대한 연결 상태만 보여주며, 지정한 사이트의 규칙이 적용되는지 확인해 주지는 않습니다.

  2. 규칙 편집

    Config로 이동해 사용할 구성의 메뉴를 열고 Edit Config를 선택한 다음 [Rule]을 확인하세요. 기존 규칙 영역 안에서 내용을 수정하고 [Rule]을 중복으로 추가하지 마세요. 대상 도메인 규칙은 FINAL,DIRECT보다 앞에 둡니다.

  3. 구성 선택

    저장한 뒤 Config 목록으로 돌아가 방금 수정한 파일을 선택하세요. 이어서 Home → Global Routing에서 Config를 선택해 다른 구성이나 실행 모드가 계속 사용되지 않도록 합니다.

  4. 새 요청 만들기

    다시 연결한 뒤 대상 사이트에 접속하고, 목록에 없는 사이트에도 접속하세요. 필요한 경우 기존 페이지를 닫았다가 다시 열어 브라우저 캐시와 장시간 연결이 판단에 미치는 영향을 줄입니다.

  5. 요청 기록 확인

    앱 내 요청 기록에서 이번 연결의 대상 도메인, 일치한 규칙, 실제 적용된 정책을 확인하세요. 대상 요청은 도메인 규칙에 일치해 PROXY를 사용하고, 비대상 요청은 FINAL에 따라 DIRECT를 사용해야 합니다.

확인할 때는 한 번에 한 가지씩만 변경하세요. 예를 들어 대상 사이트의 첫 화면은 열리지만 이미지가 보이지 않는다면, 먼저 이미지 요청의 도메인과 정책을 확인한 뒤 해당 리소스 도메인 규칙을 추가할지 결정하세요. 서버, DNS, 전체 규칙을 동시에 바꾸면 어떤 변경이 결과에 영향을 줬는지 알기 어렵습니다.

5. 기존 GEOIP·IP-CIDR·DNS 설정 확인하기

“나머지는 모두 DIRECT”로 처리하려면 다른 트래픽이 앞선 프록시 규칙에 먼저 일치하지 않아야 합니다. 기존 구성의 GEOIP, IP-CIDR 또는 원격 규칙 세트도 일치 여부에 영향을 줄 수 있습니다. 마지막 줄에 FINAL,DIRECT가 있다고 해서 앞선 프록시 규칙이 무시되는 것은 아닙니다.

192.0.2.0/24는 문서용 예시 대역이므로 실제 대상으로 그대로 사용하면 안 됩니다. 동적 IP, 공유 호스팅 또는 CDN을 사용하는 사이트는 도메인 규칙을 우선 관리하세요. 한 번 조회한 IP를 규칙에 고정하면 주소가 바뀐 뒤 작동하지 않을 수 있고, 같은 주소를 사용하는 다른 도메인에도 영향을 줄 수 있습니다.

6. 규칙 문제와 연결 오류를 증상별로 구분하기

먼저 요청이 예상한 규칙에 일치했는지 확인한 다음, 일치한 정책으로 연결이 완료되는지 살펴보세요. 연결을 진단할 때 아래와 같은 영문 오류가 나타날 수 있습니다. 실제 표시 내용은 앱 내 기록을 기준으로 확인하세요. 오류가 발생했다는 사실만으로 특정 도메인 규칙이 잘못되었다고 단정할 수는 없습니다.

Connection refused

원인: 대상 서버나 중간 장비가 연결을 명시적으로 거부했습니다. 해당 주소의 포트에서 연결을 받아들이는 서비스가 없을 때 흔히 발생합니다. 해결: 기록에서 PROXY를 사용한 것으로 나오면 Home에서 선택한 서버의 Address와 Port가 기존 정보와 일치하는지 확인하세요. DIRECT를 사용했다면 사이트의 대상 주소와 포트를 확인하고, 먼저 FINAL을 수정하지 마세요.

Connection timed out

원인: 제한 시간 안에 연결이 완료되지 않았습니다. 시간 초과만으로는 출구, 대상, 네트워크 경로 중 무엇이 원인인지 알 수 없습니다. 해결: 먼저 이번 요청에 적용된 정책을 확인한 뒤 Connectivity Test로 선택한 서버를 점검하고, 대상 도메인과 비대상 도메인에 각각 접속해 보세요.

연결 오류는 없는데 모든 사이트가 프록시를 사용한다면 Home → Global Routing이 여전히 Proxy인지, [Rule] 앞부분에 범위가 넓은 PROXY 규칙이 남아 있는지 먼저 확인하세요. 한 사이트만 예상과 다르게 분기된다면 브라우저 주소창만 보지 말고 실제 요청 도메인을 확인하세요.

7. 특정 사이트만 분기할 때 자주 묻는 질문

하위 도메인 하나만 프록시로 연결하려면 어떻게 하나요?

DOMAIN,api.example.com,PROXY를 사용하고 FINAL,DIRECT보다 앞에 두세요. api.example.com과 그 하위 도메인까지 모두 프록시로 연결하려면 DOMAIN-SUFFIX,api.example.com,PROXY로 바꾸세요. example.com 전체 접미사를 바로 지정하지 마세요.

사이트는 열리는데 로그인이나 동영상이 작동하지 않아요. 왜 그런가요?

문제가 발생한 동작의 새 요청을 확인해 로그인 API나 미디어 리소스가 실제로 사용하는 도메인을 찾으세요. 해당 도메인이 프록시가 필요한 요청 경로에 포함된다고 확인한 경우에만 규칙을 한 줄씩 추가하세요. 브라우저 주소창의 기본 도메인이 페이지의 모든 요청을 나타내지는 않습니다.

서버 구독을 업데이트하면 규칙도 바뀌나요?

서버 구독은 서버 정보를 업데이트하고, Config의 규칙 파일은 별도로 관리됩니다. 업데이트 대상이 서버 구독인지 원격 구성 파일인지 먼저 확인하세요. 원격 구성 파일을 업데이트하면 로컬에서 수정한 내용이 덮어써질 수 있으므로, 수정 전에 복사본을 보관하고 업데이트 후 [Rule]을 다시 확인하세요.

On Demand를 켜도 이 규칙이 필요한가요?

네. Settings → On Demand는 요청에 따른 연결 조건을 관리하며 [Rule]의 대상 일치 기능을 대신하지 않습니다. 문제를 확인하는 동안 연결 상태가 자동으로 바뀐다면 On Demand 설정을 먼저 기록해 두세요. 연결 상태를 제어할 수 있는 환경에서 Config 규칙을 확인한 뒤 필요한 자동 연결 조건을 다시 설정하세요.

URL 경로에 따라 트래픽을 분기할 수 있나요?

DOMAIN, DOMAIN-SUFFIX, DOMAIN-KEYWORD는 URL 경로를 기준으로 일치하는 규칙이 아닙니다. 도메인 입력란에 example.com/video를 넣지 마세요. 이 글의 방법은 도메인이나 호스트를 기준으로 분기하므로 이 세 가지 규칙으로 같은 호스트의 서로 다른 페이지 경로를 구분할 수 없습니다.

App Store 정품 확인