Shadowrocket에서 지정한 사이트만 프록시로 연결하려면 세 가지 조건이 필요합니다. Global Routing은 Config로 설정하고, 현재 구성에 대상 도메인의 PROXY 규칙을 포함하며, 나머지 요청은 FINAL,DIRECT로 처리해야 합니다. 사용할 연결 정보가 준비된 사용자를 대상으로 구성 백업, 규칙 추가, 연결 기록 확인 순서로 안내합니다. 규칙 미일치와 규칙 일치 후 연결 실패를 구분해 살펴봅니다.
1. Config 선택 후 현재 구성 확인하기
규칙을 올바르게 작성했는데 적용되지 않는다면 먼저 Home → Global Routing을 확인하세요. 이 글에서는 도메인에 따라 트래픽 경로를 지정하므로 Config를 선택해야 합니다. Config 파일만 수정하고 Global Routing을 Proxy로 둔 상태에서는 ‘지정 사이트는 프록시, 나머지는 직접 연결’ 동작을 확인할 수 없습니다.
아래에서는 이번 작업과 직접 관련된 세 가지 옵션만 비교합니다. Global Routing의 전체 옵션 목록은 아닙니다. Config는 구성에 있는 규칙을 적용하고, 규칙의 PROXY는 요청을 프록시 정책으로 전달합니다. 이름은 비슷하지만 서로 다른 설정입니다.
Config
권장현재 적용 중인 구성의 규칙에 따라 요청을 처리합니다. 대상 도메인은 PROXY로, 그 밖의 요청은 FINAL,DIRECT로 직접 연결할 수 있습니다.
적합한 경우: 명시한 도메인만 프록시로 연결하려는 경우
Proxy
가로챈 요청을 이 글의 도메인 목록에 따라 나누지 않고 프록시로 전달합니다. 임시로 사용한 뒤에는 Config로 되돌려 라우팅을 테스트하세요.
적합한 경우: 기존 프록시 연결로 대상 사이트에 접속할 수 있는지 임시로 확인할 때
Direct
가로챈 요청을 직접 연결로 처리합니다. 구성에 PROXY 도메인 규칙이 있어도 자동으로 프록시를 사용하지 않습니다.
적합한 경우: 현재 네트워크에서 대상 사이트가 직접 연결되는지 확인할 때
결론: 테스트 조건을 먼저 고정하세요
수정 전에 현재 구성 파일 이름, 선택한 연결, Global Routing 설정을 기록하세요. 이후 한 번에 규칙 하나만 변경해야 구성 전환, 연결 변경, 규칙 자체 중 무엇이 원인인지 판단할 수 있습니다.
2. 네 단계로 최소 규칙 구성 만들기
먼저 Home에서 사용할 수 있는 연결이 선택되어 있는지 확인한 다음 Config에서 구성을 수정하세요. 기존 구독은 연결 정보를 관리하는 데 쓰이며, 이 글에서 필요한 도메인 라우팅 규칙이 활성화되었다는 뜻은 아닙니다. 연결 목록 업데이트와 구성 규칙 수정은 각각 확인해야 합니다.
-
구성 백업
Config로 이동해 현재 선택된 파일을 확인하고, 사용 가능한 공유 또는 내보내기 기능으로 원본을 보관하세요. 기존 구성을 수정할 때는 특히 기존 DNS, Host, 정책 설정을 유지하세요. 도메인을 추가하려고 파일 전체를 덮어쓰지 않도록 주의합니다.
-
규칙 편집
Config에서 사용할 구성을 열고 편집 화면으로 이동한 다음, 기존
[Rule]섹션에 아래 예시를 추가하세요. 파일에 해당 섹션이 이미 있다면 그 안에서 수정하고, 이름이 같은 섹션을 새로 추가하지 마세요. -
파일 적용
저장한 뒤 Config로 돌아가 방금 수정한 파일이 선택되어 있는지 확인하세요. 이름이 비슷한 다른 구성과 혼동하지 않도록 주의합니다. 파일을 저장했다는 사실만으로 해당 파일이 적용되었다고 볼 수는 없습니다.
-
라우팅 방식 선택
Home → Global Routing → Config로 돌아가 Config를 선택하세요. Home에서 대상 연결이 계속 선택되어 있는지도 확인한 뒤 연결을 켜거나 다시 연결합니다. 이후 새 요청으로 규칙 적용 결과를 확인하고, 이미 열려 있는 페이지만으로 판단하지 마세요.
3. DOMAIN-SUFFIX로 프록시할 도메인 지정하기
아래 도메인은 문법 예시일 뿐 연결 서버 주소가 아닙니다. 실제로 접속하려는 웹사이트의 도메인으로 바꾸세요. 규칙의 도메인에는 https://, 포트, 경로를 포함하지 않습니다. 예를 들어 대상 페이지 주소가 https://www.example.com/account이면 일치 여부를 확인할 도메인은 www.example.com입니다.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-SUFFIX,example.org,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX,example.com,PROXY는 example.com 자체와 하위 도메인(예: www.example.com, api.example.com)에 일치합니다. 도메인에 example이 포함되기만 하면 일치하는 규칙은 아니므로 notexample.com은 하위 도메인으로 처리되지 않습니다.
특정 호스트 이름만 프록시로 연결하고 같은 도메인의 다른 호스트는 제외하려면 범위가 더 좁은 DOMAIN 규칙을 사용하세요. 예를 들어 아래 규칙은 api.example.com에만 일치합니다. www.example.com은 이 줄에 일치하지 않으므로 다음 규칙을 계속 확인합니다.
[Rule]
DOMAIN,api.example.com,PROXY
FINAL,DIRECT
DOMAIN과 DOMAIN-SUFFIX로는 같은 도메인 아래의 페이지 경로를 구분할 수 없습니다. 같은 사이트에서 /video는 프록시로, /news는 직접 연결하려 해도 DOMAIN-SUFFIX 뒤에 경로를 추가하는 방식으로는 구현할 수 없습니다. 먼저 도메인 기준으로 구분할지 페이지 콘텐츠 기준으로 구분할지 정한 뒤 이 방법이 적합한지 판단하세요.
4. 규칙 순서와 FINAL 위치 확인하기
규칙은 순서대로 확인하며, 일치하면 일반적으로 이후 규칙은 더 이상 확인하지 않습니다. 범위가 넓은 규칙보다 구체적인 예외를 앞에 두세요. FINAL은 나머지 요청을 처리하는 기본 규칙이므로 도메인 규칙보다 앞에 두면 안 됩니다. 여러 구성의 FINAL 규칙을 한 섹션에 그대로 중복해서 넣지 마세요.
[Rule]
DOMAIN,account.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
이 예시에서는 account.example.com이 먼저 DIRECT에 일치합니다. example.com에 속한 다른 호스트는 뒤에 있는 PROXY 규칙과 계속 일치할 수 있습니다. 앞의 두 줄 순서를 바꾸면 범위가 넓은 DOMAIN-SUFFIX가 먼저 일치해 앞서 설정한 직접 연결 예외가 적용되지 않습니다.
- 기존 프록시 규칙 확인: 구성에 다른 PROXY 규칙이 있으면 새 목록에 포함하지 않은 사이트도 프록시로 연결될 수 있습니다. ‘이 도메인만 프록시’하려면 새로 추가한 두 줄만 볼 것이 아니라 현재 적용 중인 규칙 섹션 전체를 확인해야 합니다.
- 규칙 세트 참조 확인: 외부 규칙 세트나 다른 정책이 요청 경로에 영향을 줄 수도 있습니다. 원인을 찾을 때는 백업을 보관한 상태에서 별도의 최소 구성으로 확인한 뒤 기존 규칙을 하나씩 복원하세요.
- 도메인과 IP 구분: GEOIP는 IP 위치 데이터베이스를 기준으로 일치하고, IP-CIDR은 IP 대역을 기준으로 일치합니다. 둘 다 웹사이트 도메인 목록과는 다릅니다.
- 공유 주소 확인: 여러 웹사이트가 같은 서버 주소를 사용할 수 있습니다. 대상 사이트의 연결 기록에 특정 IP가 표시되었다는 이유만으로 범위가 넓은 IP-CIDR 프록시 규칙을 추가하지 마세요.
5. 연결 기록으로 라우팅 결과 확인하기
페이지가 열렸다는 것은 해당 접속이 성공했다는 뜻일 뿐, 예상한 정책이 적용되었다는 증거는 아닙니다. 대상 호스트 이름, 일치한 규칙, 실제 적용된 정책을 함께 확인하세요. 테스트할 때는 대상 사이트와 목록에 없는 사이트에서 각각 새 요청을 발생시켜 기존 연결이나 페이지 캐시의 영향을 줄이세요.
- Home → Global Routing이 계속 Config인지, Config에서 방금 수정한 파일이 선택되어 있는지 확인하고 연결이 켜져 있는지도 확인하세요.
- 대상 사이트에 다시 접속한 다음 앱 내 연결 기록에서 해당 호스트 이름을 찾아 예상한 DOMAIN 또는 DOMAIN-SUFFIX 규칙에 일치했는지, PROXY로 전달되었는지 확인하세요.
- 프록시 목록에 없는 사이트에 접속해 해당 요청이 FINAL로 처리되어 DIRECT에 전달되는지 확인하세요. 같은 사이트의 다른 하위 도메인을 비교 대상으로 사용하지 마세요.
- 리디렉션, 로그인, 이미지 로딩 문제가 있다면 새로 발생한 요청의 호스트 이름도 각각 확인하세요. 주소 표시줄만 보지 말고 페이지의 기본 도메인과 페이지가 사용하는 리소스 도메인을 따로 기록합니다.
| 확인된 현상 | 우선 확인할 항목 | 다음 단계 |
|---|---|---|
| 대상 요청이 FINAL,DIRECT에 일치함 | 도메인 범위 및 적용 중인 구성 | 기록에 표시된 실제 호스트 이름을 확인하고, 작성한 도메인 접미사에 해당하는지 살펴보세요. |
| 대상 요청이 PROXY에 일치하지만 시간 초과됨 | 선택한 연결 및 서버 연결 가능 여부 | 규칙은 그대로 두고 기존 연결 정보와 연결 테스트 결과를 확인하세요. |
| 목록에 없는 사이트도 PROXY로 연결됨 | Global Routing 및 다른 프록시 규칙 | Proxy가 선택된 상태가 아닌지 확인하고, 앞쪽 규칙이나 규칙 세트 참조를 살펴보세요. |
| 웹페이지 텍스트는 표시되지만 이미지나 로그인이 실패함 | 리소스 및 인증 도메인 | 실패한 요청의 호스트 이름을 찾아 실제로 필요한 경우에만 범위가 좁은 규칙을 추가하세요. |
이는 연결 기록을 해석할 때 예상할 수 있는 현상이며, 모든 네트워크 환경에서의 속도 테스트 결과를 뜻하지 않습니다. 기록에 PROXY 규칙이 올바르게 적용된 것으로 표시된다면 같은 도메인을 반복해서 추가해도 도움이 되지 않습니다. 이 경우 연결 설정, 서버 상태 또는 대상 사이트의 접속 제한을 확인하세요.
6. 리소스 도메인, DNS, 자동 연결 문제 확인하기
하나의 웹페이지가 기본 사이트, 로그인 API, 이미지 도메인, 별도의 콘텐츠 전송 도메인에 동시에 요청할 수 있습니다. 기본 사이트에 DOMAIN-SUFFIX를 추가해도 페이지에 필요한 모든 리소스가 같은 접미사를 사용한다는 뜻은 아닙니다. 실패한 요청 기록으로 도메인의 용도를 먼저 확인한 뒤 추가 여부를 판단하세요. 리소스 하나를 해결하려고 공용 도메인 범위 전체를 프록시하지 않도록 주의합니다.
- DNS와 정책은 따로 확인: 도메인 조회에 실패하면 요청이 예상한 연결 단계까지 진행되지 않았을 수 있습니다. 먼저 도메인이 정상적으로 해석되는지 확인하세요. 모든 실패를 FINAL 문제로 단정하지 말고, 한 번의 테스트에서 DNS와 규칙을 동시에 바꾸지 마세요.
- IP 주소를 직접 사용하는 요청은 별도로 확인: 기록에 대상 IP만 있고 일치시킬 도메인이 없다면 DOMAIN-SUFFIX 규칙이 적용된다고 단정할 수 없습니다. 먼저 요청이 발생한 경로를 확인하고 IP-CIDR이 실제로 필요한지 판단하세요.
- On Demand가 연결 상태에 미치는 영향: Settings → On Demand에서 자동 연결 설정을 확인하세요. On Demand는 조건에 따라 연결을 설정하는 기능이며 DOMAIN-SUFFIX나 FINAL을 대신하지 않습니다. 비교를 위해 수동으로 연결을 끊을 때는 자동으로 다시 연결되는지도 함께 살펴보세요.
- 기존 페이지보다 새 요청을 기준으로 확인: 이미 연결된 장시간 연결이나 앱 내 캐시는 이전 결과를 계속 보여줄 수 있습니다. 규칙을 저장하고 다시 연결한 뒤 대상 요청을 새로 발생시키고 해당 기록을 확인하세요.
문제 해결을 위해 On Demand 설정을 임시로 변경했다면 확인이 끝난 뒤 필요한 기존 설정으로 되돌리세요. 연결 스위치가 계속 켜져 있다는 사실만으로 실제 정책을 확인했다고 볼 수는 없습니다. 연결 상태는 트래픽 가로채기가 설정되었는지를 보여 주며, 개별 요청의 경로는 규칙 기록으로 확인해야 합니다.
7. 되돌릴 수 있는 규칙 목록 보관하기
테스트를 통과했다면 정상 작동하는 구성을 보관하고 새로 추가한 도메인의 용도를 기록하세요. 이후 특정 기능에 문제가 생기면 먼저 새로운 요청 도메인이 있는지 확인한 뒤 필요한 범위만 조정합니다. 규칙을 관리하는 목적은 프록시 범위를 계속 넓히는 것이 아니라 실제 요구에 맞게 유지하는 것입니다.
- 수정할 때마다 백업하고, 한 번에 서로 연관된 도메인 한 묶음만 추가하거나 변경하세요.
- 저장할 때마다 Config에서 선택된 파일과 Home → Global Routing → Config 설정을 확인하세요.
- 테스트마다 PROXY로 연결해야 하는 요청 하나와 DIRECT로 연결해야 하는 요청 하나를 함께 확인하세요.
- 연결 정보가 업데이트된 뒤에는 선택한 연결을 계속 사용할 수 있는지 확인하세요. 도메인 규칙이 올바르더라도 연결 정보가 항상 유효한 것은 아닙니다.
Shadowrocket은 비공개 소스 상용 앱이며, 앱 일회성 구매와 연결 서비스 요금제는 별개입니다. 이 글은 사용자가 직접 서비스 제공업체와 연결 정보를 준비한 경우를 전제로 합니다. 주로 iPhone과 iPad에서 사용할 수 있으며, Mac, Apple TV, Apple Vision 호환 여부는 App Store 페이지에서 확인할 수 있습니다. 시스템 요구 사항과 구매 가능 여부는 App Store 페이지 표기를 기준으로 하며, 앱을 받을 수 있는 유일한 곳은 App Store입니다.