Shadowrocket에서 도메인별로 직접 연결하거나 프록시를 사용하려면 Config 모드와 활성 구성의 규칙을 함께 확인해야 합니다. 이미 사용할 수 있는 서버와 구독 정보가 있는 사용자를 대상으로, 규칙을 추가할 위치와 DOMAIN·DOMAIN-SUFFIX의 차이, 위에서 아래로 적용되는 우선순위, 연결 후 결과를 검증하는 방법을 설명합니다. 예시 도메인은 문법 설명용이며 실제 서버나 서비스 정보를 제공하지 않습니다.
1. 규칙을 적용하기 전에 Config 모드와 활성 구성을 확인
규칙을 작성해도 Global Routing이 Config가 아니거나 다른 구성이 활성화되어 있으면 기대한 결과가 나오지 않을 수 있습니다. 먼저 Home에서 Global Routing을 확인하고, 규칙을 적용할 때는 Config를 선택하세요. 이어서 Config 화면에서 수정하려는 구성이 현재 사용 중인 구성인지 확인합니다. 같은 이름의 구성이 여러 개라면 이름만 보고 판단하지 말고 실제 선택 상태를 살펴보세요.
Home은 서버를 선택하고 연결 상태를 확인하는 곳이며, Config는 규칙과 구성 파일을 관리하는 곳입니다. Settings → On Demand는 조건에 따라 연결을 시작하는 방식에 영향을 줄 수 있지만, DOMAIN 규칙의 정책을 대신 지정하지는 않습니다. 따라서 연결이 자동으로 시작되는 문제와 연결 후 도메인이 어떤 경로를 선택하는지는 따로 점검해야 합니다.
| Global Routing | 일반적인 동작 | 도메인 규칙 확인 시 |
|---|---|---|
Config | 활성 구성의 규칙과 정책을 적용합니다. | DIRECT와 프록시 정책의 분기 결과를 확인할 때 사용합니다. |
Proxy | 규칙 분기 대신 프록시 경로를 우선 사용합니다. | DIRECT 규칙의 동작을 검증하기에는 적합하지 않습니다. |
Direct | 규칙 분기 대신 직접 연결을 사용합니다. | PROXY 규칙의 동작을 검증하기에는 적합하지 않습니다. |
규칙 테스트를 시작하기 전에 현재 모드와 활성 구성 이름을 메모해 두세요. 점검 중 Proxy나 Direct로 모드를 바꿨다면 테스트가 끝난 뒤 원래 설정을 복원해야 합니다. 그렇지 않으면 규칙을 수정했는데도 적용되지 않는 것처럼 보일 수 있습니다.
2. DOMAIN과 DOMAIN-SUFFIX로 연결 정책 지정
도메인 규칙의 기본 형식은 규칙 유형,매칭 값,정책입니다. 매칭 값에는 도메인만 입력하고, URL 전체나 경로, 포트, 쿼리 문자열은 넣지 않습니다. 예를 들어 https://www.example.com/page 전체가 아니라 호스트 이름인 www.example.com을 기준으로 규칙을 작성합니다.
정확한 호스트 지정
- 규칙
DOMAIN,api.example.com,PROXY- 매칭
api.example.com- 제외
www.api.example.com
특정 호스트 하나만 다른 경로로 보내려면 DOMAIN을 사용합니다.
도메인과 하위 도메인 지정
- 규칙
DOMAIN-SUFFIX,example.com,DIRECT- 매칭
example.com,www.example.com- 제외
notexample.com
도메인과 그 하위 도메인을 함께 처리할 때 DOMAIN-SUFFIX를 사용합니다.
DIRECT는 프록시 서버를 거치지 않고 대상에 직접 연결하라는 정책입니다. PROXY는 프록시 경로를 사용하라는 정책이므로, 실제 연결을 위해서는 사용할 수 있는 서버가 선택되어 있어야 합니다. 구성에서 별도 정책 그룹을 사용하는 경우에는 해당 그룹이 실제 구성에 정의되어 있어야 하며, 규칙에 이름만 적는다고 새 그룹이 만들어지지는 않습니다.
3. 규칙을 추가하고 우선순위를 검토하는 절차
이제 활성 구성에서 규칙을 수정합니다. Shadowrocket의 화면 구성과 구성 파일의 편집 가능 여부에 따라 표시되는 버튼은 다를 수 있으므로, 실제 기기의 Config 화면에서 선택한 구성과 편집 기능을 확인하세요. 기존 구성이 원격 구독에서 관리된다면 수동 변경이 다음 업데이트에서 덮어써질 수 있습니다. 적용 전에 구성 관리 방식과 변경 내용 유지 여부를 확인하고, 구독 링크나 인증 정보는 다른 사람과 공유하지 마세요.
-
Config 선택
Home → Global Routing에서 Config를 선택합니다. Config 화면으로 이동해 수정 대상 구성이 활성 상태인지 확인하세요.
-
규칙 위치 확인
선택한 구성에서 규칙 목록 또는 편집 화면을 엽니다. 규칙이 위에서 아래로 처리되는 순서를 확인하고, 기존의 관련 규칙이 어디에 있는지 먼저 살펴보세요.
-
구체 규칙 추가
예외로 처리할 단일 호스트 규칙을 더 넓은 DOMAIN-SUFFIX 규칙보다 위에 둡니다. 정책은 실제로 사용할 수 있는
DIRECT또는 구성에 정의된 프록시 정책을 사용하세요. -
저장 및 재확인
변경을 저장한 뒤 활성 구성 이름과 Global Routing이 여전히 Config인지 확인합니다. 구성이 여러 개라면 수정한 항목과 현재 선택된 항목이 같은지 다시 대조하세요.
-
연결 테스트
Home에서 사용 가능한 서버가 선택되어 있고 연결이 활성화되어 있는지 확인한 뒤, 각 규칙의 대상 도메인에 접속해 결과를 비교합니다. 규칙을 바꿀 때는 한 번에 한 가지 항목만 수정하세요.
다음 예시에서는 api.example.com만 프록시로 보내고 나머지 example.com 계열은 직접 연결합니다. 마지막 FINAL은 앞선 규칙에 일치하지 않는 요청에 적용되는 기본 정책이므로, 구성에서 의도한 기본 경로에 맞춰 지정해야 합니다.
DOMAIN,api.example.com,PROXY
DOMAIN-SUFFIX,example.com,DIRECT
FINAL,PROXY
첫 번째 줄과 두 번째 줄의 순서를 바꾸면 api.example.com도 먼저 DOMAIN-SUFFIX에 매칭되어 직접 연결될 수 있습니다. 규칙 구문이 올바르더라도 순서가 다르면 결과가 바뀌므로, 예외 규칙을 먼저 두고 범위가 넓은 규칙을 뒤에 배치하세요. FINAL은 반드시 의도한 기본 경로와 맞는지 검토합니다.
4. 연결 결과를 확인하고 흔한 실수를 구분
규칙 적용 여부를 확인할 때는 한 도메인만 시험하지 말고, 서로 다른 규칙에 매칭되어야 하는 대상을 각각 확인하세요. 예를 들어 위 예시에서는 api.example.com과 www.example.com을 따로 테스트합니다. 접속 결과가 예상과 다르면 브라우저 주소창에 입력한 URL에서 호스트 이름을 확인하고, 그 호스트가 어떤 규칙에 처음 매칭되는지 위에서부터 대조하세요.
판단 기준: 가장 먼저 일치하는 규칙이 우선
더 구체적인 규칙을 추가했는데도 결과가 바뀌지 않는다면, 해당 규칙을 넓은 범위의 규칙보다 앞에 두었는지 먼저 확인하세요. 그다음 활성 구성과 Global Routing이 실제로 수정한 규칙을 사용하고 있는지 점검합니다.
규칙을 저장했는데도 계속 프록시로 연결돼요.
Home → Global Routing에서 Config인지 확인하고, 더 위에 일치하는 DOMAIN 또는 DOMAIN-SUFFIX 규칙이 있는지 살펴보세요. Proxy가 선택되어 있으면 규칙별 DIRECT 결과를 검증할 수 없습니다.
도메인 하나만 직접 연결하려면 무엇을 써야 하나요?
호스트 하나만 대상으로 할 때는 DOMAIN,host.example.com,DIRECT처럼 작성합니다. 하위 도메인까지 포함하려면 DOMAIN-SUFFIX,example.com,DIRECT처럼 범위를 지정하되, 불필요한 대상까지 포함되는지 먼저 확인하세요.
규칙은 맞는 것 같은데 웹사이트가 열리지 않아요.
규칙만으로 서버 연결이나 대상 사이트의 응답이 보장되지는 않습니다. Home에서 연결 상태와 선택한 서버를 확인하고, Global Routing, 활성 구성, 정책 이름을 차례로 점검하세요. 규칙에 인증 정보나 전체 구독 URL을 넣지 마세요.
실제 요청이 항상 도메인 이름으로 관찰되는 것은 아닙니다. 앱이 IP 주소에 직접 연결하거나, DNS 처리 방식 또는 연결 재사용이 테스트 결과에 영향을 줄 수 있습니다. 따라서 도메인 규칙이 맞는지 확인할 때는 대상의 호스트 이름, 현재 구성의 규칙 순서, 실제 연결 상태를 함께 살펴보세요. 한 번의 웹페이지 로딩 결과만으로 규칙이 잘못됐다고 단정하지 않는 것이 좋습니다.
5. 규칙 변경을 안전하게 유지하는 방법
도메인별 라우팅은 규칙을 많이 추가하는 것보다 범위와 우선순위를 분명히 하는 것이 중요합니다. 단일 서비스 도메인을 지정할 때는 가능한 한 정확한 호스트 규칙을 사용하고, 여러 하위 도메인을 묶을 때만 DOMAIN-SUFFIX를 선택하세요. DOMAIN-KEYWORD처럼 넓게 매칭될 수 있는 규칙은 예상하지 않은 호스트까지 영향을 줄 수 있으므로, 목적과 범위를 이해한 경우에만 사용합니다.
- 변경 전: 활성 구성 이름, Global Routing 모드, 기존 규칙의 앞뒤 순서를 확인합니다.
- 변경 중: 하나의 규칙이나 정책만 바꾸고, 쉼표는 영문 쉼표를 사용하며 도메인에 경로와 포트를 붙이지 않습니다.
- 변경 후: 예외 도메인과 일반 도메인을 각각 시험하고, 예상한 정책이 적용되는지 확인합니다.
- 구성 업데이트 후: 구독 업데이트로 변경이 유지됐는지 다시 확인합니다. 원격 구성이 변경 내용을 덮어쓸 수 있다면 구성 제공처의 관리 방식을 확인하세요.
정리하면 Home에서 Global Routing을 Config로 맞추고, Config에서 실제 활성화된 구성을 수정한 다음, 구체적인 예외 규칙을 위에 배치해 저장하면 됩니다. 마지막으로 예외 도메인과 일반 도메인을 각각 테스트하고, 변경 후에도 같은 구성이 활성 상태인지 확인하세요. 이 순서를 지키면 규칙의 매칭 문제와 서버 또는 연결 문제를 뒤섞지 않고 점검할 수 있습니다.