Shadowrocket On Demand 설정 방법: Wi-Fi·셀룰러 네트워크·도메인별 자동 연결

Shadowrocket On Demand에서 Wi-Fi 이름, 셀룰러 네트워크, 도메인 조건을 조합하는 방법과 규칙이 충돌할 때의 우선순위를 안내합니다.

이 글의 핵심

Shadowrocket의 On Demand는 시스템 VPN 연결을 시작할 조건을 관리하며, Config의 트래픽 라우팅 규칙을 대신하지 않습니다. 이미 수동 연결이 가능하고 Wi-Fi 이름이나 셀룰러 네트워크에 따라 자동 연결하려는 사용자를 위한 안내입니다. 먼저 네트워크 조건을 설정하고, 도메인 평가를 별도로 확인한 뒤 규칙 순서를 점검하세요. 연결이 성립했다고 해서 모든 요청이 PROXY를 통과하는 것은 아닙니다.

On Demand와 Global Routing은 따로 확인

먼저 두 가지를 구분하세요. On Demand는 시스템이 VPN 연결을 언제 시작하거나 끊을지 결정하고, Global Routing은 연결 중 트래픽을 처리하는 방식을 결정합니다. On Demand를 켜도 기존 서비스의 주소, 포트, 인증 또는 TLS 설정이 수정되지는 않으며, Config의 DIRECT 규칙이 PROXY로 바뀌지도 않습니다.

Shadowrocket의 주요 조작 영역은 Home, Config, Settings입니다. 먼저 Home에서 기존 설정으로 수동 연결이 되는지 확인한 다음 Settings → On Demand에서 자동 조건을 설정하세요. 이 안내는 iPhone과 iPad를 중심으로 설명하며, 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요.

네트워크 조건 변경 On Demand 규칙 평가 시스템 연결 처리 트래픽 정책 매칭 대상 연결 확인
2개 계층
연결 트리거와 트래픽 라우팅을 각각 확인
4가지
Global Routing:Proxy / Direct / Config / Scene
2단계
설정 경로: Settings → On Demand

문제를 확인하는 동안에는 Global Routing → Config를 사용하고, 정상 작동이 확인된 설정을 따로 보관해 두세요. Proxy와 Direct는 임시 비교에 쓸 수 있지만 자동 연결 조건은 아닙니다. Scene도 On Demand의 Wi-Fi 이름 매칭과는 다릅니다. 한 번에 한 종류의 설정만 변경해야 변화가 연결 단계에서 비롯됐는지 라우팅 단계에서 비롯됐는지 판단할 수 있습니다.

설정 전에 수동 연결 상태부터 확인

수동 연결로도 대상에 접속할 수 없다면 먼저 기본 연결 문제를 해결하세요. On Demand는 자동화 기능일 뿐, 연결 실패를 고치는 설정이 아닙니다. 이 안내는 사용자가 기존에 이용 중인 서비스와 구독이 있다고 가정하고 기기 내 설정만 설명하며, 서비스 연결 정보는 제공하지 않습니다.

  1. Home에서 현재 선택된 연결 설정을 확인하세요. 기존 구독을 방금 갱신했다면 테스트 대상이 바뀌지 않았는지 선택 항목을 다시 확인합니다.
  2. On Demand를 잠시 끈 뒤 수동으로 연결하고, 현재 Wi-Fi 또는 셀룰러 네트워크, Global Routing 상태, 대상 페이지 접속 여부를 기록하세요.
  3. Config에서 현재 활성화된 구성 파일을 확인하세요. 테스트 중에는 DOMAIN-SUFFIX, GEOIP, IP-CIDR 또는 FINAL을 동시에 수정하지 마세요.
  4. 시스템에서 요구하는 VPN 구성 승인을 완료하세요. 기기가 조직에서 관리되는 경우 해당 VPN 구성을 사용할 수 있도록 허용되어 있는지 먼저 확인합니다.
  5. 수동 연결과 접속이 모두 정상이라면 Settings → On Demand로 이동해 조건을 추가하거나 조정한 뒤 저장하세요.

Wi-Fi 이름과 셀룰러 네트워크 조건 설정

흔히 원하는 설정은 “지정한 Wi-Fi에서는 자동 연결하지 않고, 셀룰러 네트워크에서는 자동 연결”하는 것입니다. 먼저 범위가 좁은 Wi-Fi 예외를 추가하고, 그다음 더 넓은 네트워크 규칙을 추가하세요. Wi-Fi 이름은 SSID를 뜻하며, 라우터 관리 주소나 브라우저에 표시되는 네트워크 인증 페이지 제목이 아닙니다.

아래 두 카드는 테스트 계획이며 가져올 수 있는 설정 텍스트가 아닙니다. 동작 이름은 연결과 연결 해제 의도를 구분하기 위한 것입니다. 실제 편집 가능한 항목은 Settings → On Demand의 현재 화면을 기준으로 확인하세요. 예시 이름을 실제 SSID로 사용하지 마세요.

지정 Wi-Fi 예외

경로
Settings → On Demand
네트워크 유형
Wi-Fi
SSID 예시
Home-WiFi, 예시용
동작 의도
Disconnect
규칙 순서
일반 Wi-Fi 조건보다 앞

실제 SSID를 확인한 뒤 해당 네트워크에 연결할 때와 벗어날 때를 각각 테스트하세요.

셀룰러 네트워크 연결

경로
Settings → On Demand
네트워크 유형
Cellular
SSID 조건
Wi-Fi 이름 제한 없음
동작 의도
Connect
확인 방법
Wi-Fi에서 벗어난 뒤 새 요청 보내기

사용 가능한 셀룰러 연결이 있는 기기에서만 적용됩니다. 먼저 셀룰러 데이터가 작동하는지 확인하세요.

  1. 확인할 조건 하나만 남기고 저장한 다음 화면을 다시 열어 조건과 동작이 유지되는지 확인하세요.
  2. Wi-Fi를 테스트할 때는 시스템의 Wi-Fi 화면에서 현재 연결된 이름을 확인하세요. 공백, 하이픈, 대소문자를 그대로 대조하고, 이름 일부가 와일드카드로 처리된다고 가정하지 마세요.
  3. 셀룰러 네트워크를 테스트하려면 시스템 설정에서 Wi-Fi를 끄고 네트워크가 실제로 전환됐는지 확인한 뒤 새 웹 요청을 보내세요.
  4. 조건 하나를 확인한 뒤 두 번째 조건을 추가하고, 마지막에 다른 Wi-Fi 조건을 보완하세요. 꼭 필요한 경우가 아니라면 모든 네트워크에 적용되는 광범위한 규칙부터 추가하지 마세요.

같은 라우터라도 주파수 대역에 따라 SSID가 다를 수 있고, 여러 대역에서 같은 이름을 사용할 수도 있습니다. 조건은 실제 이름을 기준으로 매칭하며 기기와 라우터 사이의 거리를 기준으로 판단하지 않습니다. 공용 Wi-Fi에서 웹 인증이 필요하다면 먼저 인증을 완료한 뒤 자동 연결을 확인하세요. 인터넷에 아직 연결되지 않은 상태를 On Demand 오류로 오해할 수 있습니다.

도메인 트리거와 DOMAIN-SUFFIX 라우팅은 별개

On Demand의 도메인 평가와 Config의 도메인 규칙은 서로 다른 단계에서 작동합니다. 시스템의 On Demand 도메인 평가는 특정 도메인에 연결이 필요한지 판단하고, DOMAIN-SUFFIX는 트래픽이 규칙 처리 단계에 들어온 뒤 적용할 정책을 선택합니다. Config에 도메인 규칙만 추가해도 시스템의 On Demand 연결 조건이 자동으로 생성되지는 않습니다.

현재 On Demand 편집 화면에 도메인 평가 기능이 있다면 해당 메뉴에서 허용하는 도메인과 연결 평가 옵션을 사용하세요. Evaluate Connection은 바로 Connect하는 동작과 다릅니다. 특정 네트워크에 매칭되는 즉시 연결하는 것이 아니라 도메인의 연결 필요성을 추가로 평가합니다. 도메인에는 example.com처럼 호스트 이름을 입력하고 https://example.com/path 같은 전체 URL은 입력하지 마세요.

  • 먼저 도메인 평가 메뉴가 있는지 확인하세요. 현재 화면에 네트워크 조건만 표시된다면 SSID 입력란에 도메인을 넣지 마세요. 네트워크 조건으로 먼저 연결한 다음 Config에서 도메인별 라우팅을 설정할 수 있습니다.
  • 앞선 규칙이 먼저 동작하는지 확인하세요. 앞쪽의 네트워크 규칙이 매칭되어 Disconnect를 실행하면 뒤에 있는 도메인 평가는 이를 덮어쓸 수 없습니다.
  • 새로운 DNS 조회와 연결로 확인하세요. 이미 열려 있는 페이지, 캐시된 결과, 재사용 중인 연결은 새로운 평가를 일으키지 않을 수 있습니다. 테스트 페이지를 닫고 요청을 새로 보내면서 시스템 연결 상태를 확인하세요.
  • DNS 경로를 확인하세요. 앱 자체의 암호화 DNS나 캐시를 사용하거나 IP 주소에 직접 접속하면 실제 요청이 예상한 시스템 도메인 조회 경로를 거치지 않을 수 있습니다. 모든 앱에서 같은 트리거 결과가 발생한다고 가정하지 마세요.

아래 예시는 Config 라우팅 구문만 보여 주며 On Demand 설정이 아닙니다. 기존 설정을 그대로 덮어쓰는 용도로도 사용하지 마세요. 예시 도메인은 설명을 위한 것이며, PROXY에 연결되는 실제 아웃바운드는 사용자의 기존 설정으로 결정해야 합니다.

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

조건이 충돌하면 규칙 순서로 판단

On Demand는 규칙 순서대로 조건을 평가하고 적용 가능한 규칙을 찾으면 해당 동작을 실행합니다. 모든 매칭 결과를 합산하거나 Connect가 언제나 Disconnect보다 우선하는 방식이 아닙니다. 구체적인 예외를 넓은 범위의 조건보다 앞에 두세요. 한 규칙 안의 여러 조건도 그중 하나만 맞으면 항상 성립하는 것은 아닙니다. 예를 들어 Wi-Fi 인터페이스를 지정하면서 SSID도 제한했다면 인터페이스와 이름 조건을 모두 충족해야 합니다. 이름 목록 하나에는 여러 후보를 넣을 수 있습니다.

규칙 순서 현재 네트워크 판단 및 조정
모든 Wi-Fi Connect가 앞에 있고 지정 SSID Disconnect가 뒤에 있음 지정 SSID에 연결됨 앞쪽의 광범위한 규칙이 먼저 매칭됩니다. 지정 SSID 예외를 앞으로 옮기세요.
지정 SSID Disconnect가 앞에 있고 다른 Wi-Fi Connect가 뒤에 있음 지정 SSID에 연결됨 예외 동작이 먼저 실행됩니다. 이후 네트워크에는 다른 Wi-Fi 조건을 적용하세요.
Wi-Fi 예외가 앞에 있고 Cellular Connect가 뒤에 있음 셀룰러 네트워크로 전환됨 Wi-Fi 조건이 매칭되지 않으면 셀룰러 조건을 계속 평가합니다.
모든 네트워크 Connect가 앞에 있고 도메인 평가가 뒤에 있음 앞쪽의 전체 네트워크 조건에 해당함 Connect가 먼저 처리되므로 뒤에 있는 도메인 평가의 유효성을 판단할 수 없습니다.

어떤 조건에도 매칭되지 않았다고 해서 반드시 연결이 끊긴다고 단정하지 마세요. 기존 연결, 시스템의 현재 상태, 다른 설정도 관찰 결과에 영향을 줄 수 있습니다. 기본 동작을 명확히 해야 한다면 화면에서 지원하는 범위 내에서 마지막 규칙을 분명하게 설정하고, 연결된 상태와 연결되지 않은 상태에서 각각 확인하세요.

Disconnect, Ignore, 트래픽 정책 DIRECT도 구분해야 합니다. Disconnect는 On Demand 동작이고 Ignore는 강제로 연결을 끊는다는 뜻이 아닙니다. DIRECT는 트래픽 라우팅 정책입니다. 이 셋을 같은 의미로 취급하면 “직접 연결하도록 설정했는데 VPN이 계속 표시된다”는 오해가 생기기 쉽습니다.

정해진 테스트 표로 자동 연결 확인

Home의 스위치만 보지 마세요. 시스템 VPN 상태, 현재 네트워크, 대상 요청의 결과를 함께 기록해야 합니다. 설정을 변경할 때마다 먼저 저장한 다음 네트워크 조건을 새로 발생시키세요. 한 번 성공한 결과는 해당 상황에서만 확인된 것이며 모든 상황의 테스트를 대신하지 않습니다.

  1. 지정 Wi-Fi: VPN이 연결되지 않은 상태에서 예외 SSID에 접속하고 새 요청을 보내 연결되지 않은 상태가 유지되는지 기록하세요. 연결된 상태에서도 같은 테스트를 반복합니다.
  2. 다른 Wi-Fi: 실제로 사용할 수 있는 다른 SSID로 전환하고, 이전 네트워크의 판단을 그대로 적용하지 말고 일반 Wi-Fi 조건에 맞는지 확인하세요.
  3. 셀룰러 네트워크: 시스템 설정에서 Wi-Fi를 끄고 셀룰러 데이터가 작동하는지 확인한 뒤 대상에 접속하세요. 자동 연결 여부와 페이지 접속 가능 여부를 기록합니다.
  4. 도메인 평가: 앞선 규칙이 동작을 바로 결정하지 않는 조건에서 테스트 도메인과 비교할 도메인에 각각 접속하세요. 기존 페이지의 연결을 재사용하지 않도록 합니다.
  5. 재평가 테스트: Wi-Fi에 다시 접속하는 등 시스템이 네트워크를 다시 평가한 뒤 테스트하세요. 실제 결과를 기록하고 정해진 시간 안에 반드시 완료된다고 가정하지 마세요.

자주 묻는 질문과 수동 제어 복구

수동으로 껐는데 왜 다시 자동 연결되나요?

먼저 Settings → On Demand에서 자동 트리거를 끈 다음 Home으로 돌아가 연결을 해제하세요. Home의 스위치만 끄고 매칭되는 Connect 조건을 남겨 두면 시스템이 나중에 다시 연결을 시작할 수 있습니다. 계속 자동 연결된다면 시스템 VPN 구성의 상세 정보에서 Connect On Demand 상태와 현재 사용 중인 구성을 확인하세요.

집 Wi-Fi를 Disconnect 예외로 설정했는데 왜 연결되나요?

먼저 시스템 Wi-Fi 화면에서 SSID를 정확히 대조한 다음, 해당 예외가 모든 Wi-Fi 또는 전체 네트워크 Connect보다 앞에 있는지 확인하세요. 규칙이 존재하는지만 보지 말고 실제 순서를 기록하세요. 다른 광범위한 조건을 잠시 비활성화한 뒤 해당 Wi-Fi에 다시 접속해 확인합니다.

셀룰러 네트워크로 바꾸자 연결 성공이라고 나오는데 웹 페이지가 열리지 않아요.

On Demand를 잠시 끄고 같은 셀룰러 네트워크에서 수동 연결을 테스트하세요. 그래도 실패한다면 트리거 조건만 계속 원인으로 의심하지 마세요. Home에서 선택한 설정, 기존 서비스 매개변수, Global Routing을 확인한 뒤 Config의 매칭 결과를 점검하세요.

DOMAIN-SUFFIX를 추가했는데 왜 웹사이트를 열어도 자동 연결되지 않나요?

이 키워드는 Config의 트래픽 라우팅에만 사용됩니다. Settings → On Demand로 돌아가 지원되는 도메인 평가 조건을 실제로 설정했는지 확인하세요. 화면에 해당 메뉴가 없다면 네트워크 조건으로 연결한 뒤 Config에서 트래픽을 라우팅하세요. 두 종류의 규칙을 혼동하지 마세요.

자동 연결 없이 수동으로만 제어하려면 어떻게 하나요?

기존 조건을 기록한 다음 On Demand를 끄고 저장하세요. Home으로 돌아가 연결을 해제한 뒤 시스템 VPN 구성 상세 정보에서 On Demand 상태를 확인합니다. Wi-Fi에 다시 접속해 새 요청을 한 번 보내고 자동 연결되지 않는지 확인한 후 테스트를 마치세요. 기존 구독을 삭제하거나 모든 규칙을 다시 만들 필요는 없습니다.

최종 설정에는 각 동작의 이유가 분명하게 드러나야 합니다. 어떤 네트워크에서 연결이 시작되는지, 어떤 SSID가 예외인지, 도메인이 시스템 평가에 포함되는지, 연결 후 어떤 Config가 트래픽을 라우팅하는지 확인하세요. 기존 구독을 갱신하거나 아웃바운드 설정을 변경한 뒤에는 수동 연결부터 확인하고 위 상황을 다시 테스트해 서비스 설정 변경과 자동 연결 조건을 혼동하지 않도록 합니다.

App Store 정식 앱 확인