2026-08-03 · 규칙 · 약 8분

Shadowrocket 규칙 설정 방법: 특정 사이트만 프록시로 연결하는 DOMAIN-SUFFIX 설정

DOMAIN-SUFFIX, DOMAIN-KEYWORD, FINAL,DIRECT를 조합해 지정한 사이트만 PROXY로 연결하고 나머지는 직접 연결하는 방법과 규칙 순서 및 확인 방법을 안내합니다.

이 글의 핵심

사용 가능한 연결 설정이 있고 일부 사이트만 프록시로 연결하려는 사용자를 위한 안내입니다. 먼저 Home → Global Routing을 Config로 설정한 다음, 현재 Config의 [Rule]에 대상 도메인을 입력하고 마지막에 FINAL,DIRECT로 나머지 요청을 처리합니다. 최소 규칙과 매칭 순서, 단계별 확인 및 문제 해결 방법을 다룹니다. 예시 도메인은 문법 설명용이므로 실제 접속할 도메인으로 바꿔 사용하세요.

1. Global Routing과 현재 Config 확인

Shadowrocket의 연결 스위치와 규칙 분할은 서로 다른 역할을 합니다. 스위치는 연결을 활성화하고, Global Routing은 트래픽의 출구를 선택합니다. ‘특정 사이트는 프록시로, 나머지는 직접 연결’하려면 Config를 사용해야 합니다. 규칙을 파일에 입력했더라도 Proxy 또는 Direct로 설정되어 있으면 규칙이 적용되는지 확인할 수 없습니다.

이 글은 사용자가 이미 이용 중인 서비스와 구독이 있고, 연결에 필요한 설정값을 갖고 있다고 가정합니다. 앱 구매와 연결 서비스는 별개입니다. Shadowrocket은 Apple 플랫폼용 유료 앱으로 App Store에서 한 번 구매하면 이용할 수 있으며, 주로 iPhone과 iPad에서 사용합니다. 시스템 요구 사항과 구매 가능 범위는 App Store 페이지를 확인하세요.

설정용도이 글에서의 선택
Proxy전체 요청에 프록시를 적용하며, 이 글의 도메인 규칙에 따라 나누지 않음프록시 연결 경로를 별도로 확인할 때만 사용
Direct전체 요청을 직접 연결지정 도메인이 프록시로 연결되는지 확인할 수 없음
Config현재 Config의 규칙에 따라 정책 결정이 글에서는 이 항목을 사용
Scene설정된 Scene 조건에 맞는 라우팅 설정 적용환경에 따른 변수를 줄이려면 먼저 Config로 고정
  1. Home에서 본인이 이용 권한을 가진, 연결 가능한 서버 Config를 선택했는지 확인하세요.
  2. Config로 이동해 수정하려는 파일이 현재 활성화되어 있는지 확인하세요. 수정 후 되돌릴 수 있도록 사본을 먼저 만들어 두세요.
  3. Home → Global Routing으로 돌아가 Config를 선택하고, 설정을 확인한 다음 연결 스위치를 켜세요.

Home의 서버 정보와 Config의 규칙 파일은 서로 다른 설정입니다. 구독 업데이트는 보통 연결 항목을 갱신하는 기능이며, 편집한 규칙 파일을 활성화하는 것과는 다릅니다. 테스트할 때마다 현재 Config를 확인하세요.

2. DOMAIN-SUFFIX 최소 규칙 작성

사이트 하나와 그 하위 도메인까지 포함하려면 DOMAIN-SUFFIX를 우선 사용하세요. 아래 예시는 example.com 및 example.net에 해당하는 도메인을 PROXY로 보내고, 나머지 요청은 DIRECT로 처리합니다. 도메인은 문법을 보여 주기 위한 예시이며, 특정 서비스를 추천하는 의미는 아닙니다.

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

현재 Config에 [Rule] 섹션이 있다면 해당 섹션을 수정하세요. 같은 이름의 섹션을 다시 추가하거나 이 네 줄로 Config 전체를 덮어쓰지 마세요. 기존 DNS, 정책 그룹 및 기타 설정은 별도로 보존하고 점검해야 합니다. 기존 규칙을 유지한다면 프록시 적용 범위가 의도치 않게 넓어지지 않는지도 확인하세요.

규칙에는 https://, 경로, 쿼리 매개변수 또는 포트를 입력하지 않습니다. 접속 주소가 https://www.example.com:443/account여도 입력할 도메인은 example.com입니다. DOMAIN-SUFFIX는 웹페이지 경로에 따라 매칭하는 규칙이 아닙니다.

3. DOMAIN-KEYWORD와 규칙 순서 조합하기

DOMAIN-KEYWORD는 도메인에 포함된 키워드로 매칭하므로, 일반적으로 DOMAIN-SUFFIX보다 범위가 넓습니다. 예를 들어 DOMAIN-KEYWORD,example,PROXY는 example.com뿐 아니라 myexample.net에도 매칭될 수 있습니다. 지정한 몇 개 사이트만 처리하려면 도메인 접미사를 각각 나열하는 편이 확인하기 쉽습니다.

규칙은 위에서 아래로 확인하며, 가장 먼저 매칭된 규칙이 해당 요청의 정책을 결정합니다. 예외 규칙은 범위가 넓은 규칙보다 앞에 두고 FINAL은 마지막에 배치하세요. 다음 예시는 로그인 하위 도메인은 직접 연결하고, 기본 사이트의 나머지 하위 도메인은 프록시로 연결하며, 키워드 규칙의 위치도 보여 줍니다.

[Rule]
DOMAIN,login.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,examplemedia,PROXY
FINAL,DIRECT
요청 도메인첫 번째로 매칭된 규칙정책
login.example.comDOMAIN 정확히 일치DIRECT
img.example.comDOMAIN-SUFFIXPROXY
cdn.examplemedia.netDOMAIN-KEYWORDPROXY
example.orgFINALDIRECT

요약: 소수의 사이트는 도메인을 하나씩 지정하세요

먼저 DOMAIN과 DOMAIN-SUFFIX만 사용해 대상 사이트가 모두 작동하는지 확인하세요. 그런 다음 DOMAIN-KEYWORD가 필요한지 검토하고, 키워드 규칙을 추가할 때마다 예상과 달리 매칭되지 않아야 할 도메인으로도 확인하세요.

‘나머지는 모두 직접 연결’하려면 기존 Config의 GEOIP 또는 IP-CIDR 규칙도 확인해야 합니다. 예를 들어 기존 파일에 GEOIP,US,PROXY가 있다면 마지막에 FINAL,DIRECT가 있더라도 해당 IP 지역 분류에 해당하는 다른 요청은 프록시로 연결될 수 있습니다. IP-CIDR은 IP 주소 대역으로 매칭하므로 주소가 바뀔 수 있는 사이트의 도메인 목록을 대신할 수 없습니다.

4. 저장한 규칙이 제대로 적용되는지 확인하기

웹페이지가 열린다고 해서 예상한 규칙이 적용되었다고 단정할 수 없으며, 페이지가 열리지 않는다고 규칙이 잘못되었다고 볼 수도 없습니다. 규칙이 어떤 정책을 선택했는지와 해당 출구로 연결할 수 있는지를 나누어 확인해야 합니다. 다음은 점검 순서이며 앱 화면을 재현한 것이 아닙니다.

요청 전송 도메인 확인 순서대로 매칭 정책 선택 연결 확인
  1. 파일 적용 확인: 저장한 뒤 Config로 돌아가 현재 활성화된 파일을 확인하세요. Home → Global Routing이 계속 Config로 설정되어 있는지도 확인하세요.
  2. 새 연결로 테스트: 테스트 중인 웹페이지를 닫았다가 다시 여세요. 필요하다면 Shadowrocket 연결을 끊었다가 다시 연결해 기존 연결이 재사용되어 결과에 영향을 주는 것을 줄이세요.
  3. 정상 사례 테스트: 규칙에 입력한 대상 사이트에 접속한 뒤, 앱의 연결 기록이나 로그에서 대상 Host, 매칭된 규칙 및 정책 정보를 확인하세요. 실제로 제공되는 필드를 기준으로 점검하면 됩니다.
  4. 예외 사례 테스트: 규칙에 포함되지 않은 사이트에도 접속해 해당 요청이 DIRECT로 처리되는지 확인하세요. 대상 사이트 하나만 확인해서는 충분하지 않습니다.
  5. 종속 요청 확인: 페이지의 텍스트는 정상적으로 표시되지만 이미지, 동영상 또는 로그인이 실패한다면 해당 리소스가 실제로 요청하는 도메인을 확인한 뒤 별도 규칙을 추가할지 결정하세요.

한 페이지에서 기본 사이트, 로그인 API, 이미지 도메인, 별도의 CDN 도메인에 동시에 요청을 보낼 수 있습니다. DOMAIN-SUFFIX는 같은 도메인 접미사만 포함하며, 웹페이지에서 사용된 리소스라고 해서 기본 사이트와 함께 프록시로 연결되지는 않습니다. 연결 기록을 바탕으로 필요한 도메인만 추가하고, 키워드 범위를 계속 넓히지 마세요.

DNS와 연결 정책도 구분해야 합니다. FINAL,DIRECT는 규칙에 매칭되지 않은 연결의 출구를 정할 뿐, 모든 DNS 조회를 강제로 직접 연결한다는 의미는 아닙니다. DNS 해석 경로는 관련 설정에 따라 달라집니다. 기록에 IP만 표시되고 확인 가능한 도메인 정보가 없다면 도메인 규칙이 예상대로 매칭되지 않을 수 있으므로 앱의 실제 기록과 DNS 설정부터 확인하세요.

5. 시간 초과, 연결 거부, 규칙 미매칭 문제 해결

먼저 요청 기록에서 적용된 정책을 확인한 다음 오류를 살펴보세요. 아래는 연결 로그에 표시될 수 있는 기본 오류 문구이며, 실제 화면에는 주소나 추가 정보가 함께 나올 수 있습니다. 이 오류가 규칙 문법 오류를 뜻하는 것은 아니며, 도메인 규칙을 추가하는 근거로 바로 삼아서는 안 됩니다.

오류: Connection timed out

원인 및 해결: 정해진 시간 안에 연결이 완료되지 않은 상태입니다. 선택한 프록시, 대상 주소 또는 현재 네트워크 경로가 원인일 수 있습니다. 먼저 해당 요청이 PROXY와 DIRECT 중 어느 정책을 사용하는지 확인하세요. PROXY라면 범위를 넓히기 전에 같은 요청에서 이미 작동이 확인된 대상으로 선택한 연결을 점검하세요.

오류: Connection refused

원인 및 해결: 대상 주소의 포트가 연결을 거부한 경우로, 포트 설정이 맞지 않거나 서비스가 해당 포트에서 대기 중이지 않을 때 발생할 수 있습니다. 기존 Config의 주소, 포트 및 서비스 상태를 확인하세요. 예를 들어 서비스 설정에서 443을 명시했다면 임의로 80으로 바꾸면 안 됩니다. 이 오류만으로 모든 서비스가 443을 사용해야 한다고 판단해서도 안 됩니다.

요약: 한 번에 변수 하나만 바꾸세요

같은 테스트 사이트, 같은 네트워크, 같은 프록시 출구를 유지한 채 규칙만 바꾸고 매칭 결과를 확인하세요. 규칙이 제대로 매칭되는데도 연결에 실패한다면 그때 연결 설정을 점검하세요. 출구, DNS, 규칙을 동시에 바꾸면 어느 변경이 결과에 영향을 줬는지 확인하기 어렵습니다.

6. 특정 사이트 규칙 설정 관련 자주 묻는 질문

특정 페이지 하나만 프록시로 연결하고 나머지 페이지는 직접 연결할 수 있나요?

DOMAIN과 DOMAIN-SUFFIX는 같은 도메인 아래의 웹페이지 경로를 구분하지 않습니다. 두 페이지가 같은 Host를 사용한다면 이 글의 규칙에 따라 같은 정책이 적용됩니다. 경로가 포함된 전체 URL을 DOMAIN-SUFFIX에 입력하지 마세요.

example.com을 추가한 뒤 www.example.com도 입력해야 하나요?

DOMAIN-SUFFIX를 사용한다면 보통 필요하지 않습니다. example.com 규칙에 www.example.com도 포함되기 때문입니다. 기본 사이트가 별도의 도메인으로 이동하는 경우에는 연결 기록을 확인해 그 도메인을 추가해야 합니다. 실제 요청을 확인한 뒤 Config를 수정하세요.

Proxy로 바꾸면 열리지만 Config로 되돌리면 열리지 않습니다. 무엇부터 확인해야 하나요?

먼저 Config 설정에서 요청을 다시 보내고, 실패한 요청이 PROXY에 매칭되는지 확인하세요. DIRECT로 처리된다면 누락된 도메인과 앞에 있는 규칙을 점검하세요. 이미 PROXY에 매칭되었다면 실제 출구와 연결 실패 원인을 확인하고, 중복 규칙만 추가하지 마세요.

FINAL,DIRECT는 Shadowrocket 연결을 끊는다는 뜻인가요?

아닙니다. 앞선 규칙에 매칭되지 않은 요청을 DIRECT로 처리한다는 뜻이며 연결 스위치를 끄지는 않습니다. Config와 연결 활성화 상태를 유지하면 앞선 규칙에 매칭되는 지정 도메인은 계속 PROXY를 사용할 수 있습니다.

유지 관리 시 검증된 Config 사본을 보관하고 새 도메인을 추가할 때마다 용도를 기록하세요. 각 옵션에 대한 자세한 설명은 설정 옵션 안내서를 참고하세요. 규칙 키워드의 의미가 헷갈린다면 먼저 용어 빠른 찾기를 확인한 다음 최소 규칙으로 돌아가 하나씩 테스트하세요.

App Store 정식 앱 확인