On Demand는 시스템이 VPN 연결을 시도하거나 끊을 시점을 정하며, 트래픽 라우팅 규칙을 대신하지 않습니다. 직접 사용할 서버와 구독이 있고 수동 연결이 가능한 사용자를 위한 안내입니다. 먼저 수동 연결을 확인한 다음 Settings → On Demand에서 네트워크 조건을 설정하고 Wi-Fi, 셀룰러 네트워크, 도메인 조건을 각각 테스트하세요. 도메인 기반 연결은 DNS 평가와 관련되므로 특정 웹사이트를 열면 반드시 연결된다는 뜻은 아닙니다.
On Demand와 Global Routing의 차이
Shadowrocket의 On Demand는 연결을 시작하는 조건을 설정하는 기능입니다. 설정을 시스템 VPN 구성에 저장하면 네트워크가 바뀌거나 도메인 평가 조건이 충족될 때 시스템이 연결을 시도할 수 있습니다. 매번 앱을 열고 Home 화면 상단의 스위치를 누를 필요가 없습니다. 타이머 기능이 아니며 연결할 수 없는 서버를 복구하지도 않습니다.
Global Routing은 연결이 설정된 뒤 요청을 어떻게 처리할지 정합니다. Proxy, Direct, Config, Scene은 이 항목의 선택지입니다. Config는 선택한 구성의 규칙에 따라 트래픽을 분기하고, Scene은 설정된 장면에 따라 처리합니다. On Demand가 작동해도 최종 요청은 DIRECT로 전송될 수 있습니다. 시스템에 VPN 연결됨으로 표시된다고 해서 모든 요청이 프록시 서버를 거치는 것은 아닙니다.
새로운 이름 확인 요청이 도메인 평가를 일으킬 수도 있습니다. 따라서 위 흐름은 각 기능의 역할을 설명하기 위한 것이며, 모든 연결 시도에 앞서 네트워크 전환이 필요하다는 뜻은 아닙니다. 문제를 점검할 때는 ‘연결 조건이 작동했는지’와 ‘연결 후 요청이 어떻게 라우팅됐는지’를 따로 확인하세요.
설정 전: 재현 가능한 수동 연결부터 확인
이 안내는 사용자가 직접 사용할 서버와 구독을 보유하고 있다는 전제로 작성되었습니다. On Demand에는 서버 정보가 포함되지 않으며 앱 구매에 서버가 함께 제공되지도 않습니다. 수동 연결이 되지 않는다면 자동 연결 조건을 추가하기 전에 서버, 인증 정보, 네트워크 연결 가능 여부부터 확인하세요.
- 테스트 중 자동 재연결이 영향을 주지 않도록 Settings → On Demand에서 On Demand를 잠시 끄세요.
- Home으로 돌아가 가져온 서버 중 사용할 항목을 선택하고, 선택 표시가 원하는 항목에 있는지 확인하세요.
- 연결 스위치를 켜세요. 처음 사용할 때는 시스템 안내에 따라 VPN 구성을 추가하도록 허용해야 합니다. 시스템 권한 요청은 건너뛸 수 없습니다.
- Connectivity Test를 실행한 다음 평소 접속할 수 있는 페이지를 열어 보세요. 테스트 결과는 해당 테스트 대상의 상태만 보여 주며 모든 요청이 정상인지 확인해 주지는 않습니다.
- 현재 Global Routing 선택 항목과 활성화된 Config를 기록한 다음 연결을 끄고 자동 연결 테스트를 시작하세요.
Wi-Fi와 셀룰러 네트워크: 조건을 정한 뒤 동작 선택
Settings → On Demand로 이동해 현재 제공되는 네트워크 조건과 동작 선택지를 확인하세요. 화면 구성에 따라 조건과 동작이 한 줄에 표시되거나 각각 편집될 수 있으니 앱에 실제로 표시된 항목을 기준으로 설정하세요. 설정 원칙은 같습니다. 먼저 네트워크를 지정하고, 조건이 일치할 때 연결할지 끊을지 정하세요. 용도를 표시하는 메모를 Wi-Fi 이름으로 입력하지 마세요.
Wi-Fi 이름에는 실제 SSID 입력
Wi-Fi를 지정하려면 기기가 현재 연결된 네트워크의 전체 이름, 즉 SSID를 입력하세요. 아래의 Home-WiFi는 설명용 예시이므로 시스템 Wi-Fi 화면에 표시된 실제 이름으로 바꿔야 합니다. 라우터 관리 주소, 무선 비밀번호, https://로 시작하는 주소를 입력하지 마세요. 따옴표나 와일드카드도 임의로 추가하지 마세요.
- 시스템 Wi-Fi 화면에서 현재 네트워크 이름을 확인하고 대소문자, 공백, 접미사를 한 글자씩 대조하세요.
- Settings → On Demand로 돌아가 Wi-Fi 조건에 해당 이름을 입력한 뒤 원하는 동작을 선택하고 저장하세요.
- On Demand를 켠 다음 Wi-Fi 연결을 끊었다가 다시 연결해 연결 상태가 예상대로 바뀌는지 확인하세요.
- 다른 Wi-Fi에도 연결해 같은 방식으로 확인하고 규칙이 모든 무선 네트워크에 적용되지 않는지 살펴보세요.
같은 라우터라도 주파수 대역에 따라 이름이 다를 수 있고, 같은 SSID가 여러 장소에서 사용될 수도 있습니다. 이름 일치만으로 네트워크의 신뢰성이 확인되는 것은 아닙니다. 익숙해 보이는 네트워크 이름만 보고 보안 확인이 끝났다고 판단하지 마세요.
셀룰러 네트워크에는 통신사 이름이 아닌 인터페이스 조건을 지정
셀룰러 조건은 시스템이 현재 사용하는 셀룰러 인터페이스를 대상으로 합니다. 전화번호, 통신사 이름, 모바일 네트워크 APN을 입력하는 항목이 아닙니다. 지정한 Wi-Fi에서 벗어나면 자동으로 연결하려는 경우 다른 Wi-Fi에서 어떻게 동작할지도 함께 고려하세요. 셀룰러 규칙만으로 ‘집 Wi-Fi를 제외한 모든 네트워크’가 지정되는 것은 아닙니다.
Wi-Fi 지정 예시
- 경로
- Settings → On Demand
- 네트워크 조건
- Wi-Fi
- 이름 예시
Home-WiFi- 동작
- VPN 연결을 유지하지 않으려면 Disconnect 사용
해당 네트워크에서 VPN 연결을 끊어야 하는 경우에만 사용하세요. SSID는 실제 네트워크 이름으로 바꿔야 합니다.
셀룰러 네트워크 예시
- 경로
- Settings → On Demand
- 네트워크 조건
- Cellular
- 이름 입력란
- Wi-Fi SSID는 입력하지 않음
- 동작
- VPN을 자동으로 연결하려면 Connect 사용
저장한 뒤 Wi-Fi를 끄고 기기가 실제로 셀룰러 데이터를 사용 중인지 확인한 다음 테스트하세요.
Connect는 연결을 시도한다는 뜻이지 연결 성공을 보장하지는 않습니다. Disconnect는 해당 조건에서 연결을 끊습니다. 화면에 무시 또는 현재 상태 유지 동작이 표시되더라도 ‘연결을 확실히 끊는다’는 뜻은 아닙니다. 특정 조건에서 연결을 제외해야 한다면 규칙 이름만 보지 말고 동작의 실제 의미를 확인하세요.
도메인 조건: 전체 URL이 아닌 도메인 입력
도메인 조건은 Wi-Fi나 셀룰러 인터페이스 조건과 완전히 같지 않습니다. 시스템 VPN의 On Demand 기능은 도메인에 대해 연결 여부를 평가할 수 있습니다. 도메인이 일치하면 DNS 확인 결과와 규칙의 요구 사항에 따라 연결을 설정할지 결정합니다. 이 기능은 EvaluateConnection 및 ConnectIfNeeded의 동작과 관련되며, 웹 브라우저 주소창의 문자열 일치로 단순하게 이해해서는 안 됩니다.
Settings → On Demand에서 현재 화면에 도메인 평가 조건이 있는지 확인하고, 실제로 제공되는 경우에만 설정하세요. 도메인 목록에는 example.com과 같은 이름을 입력합니다. 아래의 라우팅 규칙 문법을 도메인 입력란에 붙여 넣지 말고, DNS 서버 입력란을 대상 도메인 입력란으로 착각하지 마세요.
| 입력값 | 처리 방법 | 이유 |
|---|---|---|
example.com | 도메인 예시로 사용 | 프로토콜, 포트, 경로 없음 |
https://example.com/page | 도메인 부분만 입력 | 도메인 평가는 웹페이지 경로와 일치하지 않음 |
example.com:443 | 포트 부분 삭제 | 443은 HTTPS에서 흔히 쓰는 포트이며 도메인에 포함되지 않음 |
DOMAIN-SUFFIX,example.com,PROXY | Config의 규칙 영역에 입력 | 라우팅 규칙이며 On Demand 도메인 입력 형식이 아님 |
여러 특정 호스트를 포함해야 한다면 해당 입력란의 도메인 매칭 안내를 확인하세요. *.example.com이 어디서나 유효하다고 가정하지 마세요. 도메인 관련 입력란마다 하위 도메인 매칭 규칙이 다를 수 있습니다. 먼저 명확한 호스트 하나로 테스트한 뒤 범위를 넓히세요.
실제로 원하는 동작이 ‘VPN 연결은 유지하되 지정한 도메인만 프록시로 보내기’라면 도메인 기반 On Demand 연결에 의존해 라우팅하지 말고 Global Routing → Config와 규칙을 확인하는 편이 적절합니다. 아래는 두 기능의 차이를 설명하기 위한 예시입니다. 매칭된 도메인의 요청에 영향을 주므로 자신의 설정 목적에 맞게 사용하세요.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX는 여기서 요청의 전송 정책을 정하고, FINAL은 앞선 규칙에 매칭되지 않은 요청을 처리합니다. GEOIP와 IP-CIDR도 라우팅 규칙입니다. 이 항목을 Config에 넣어도 On Demand 연결 조건으로 자동 전환되지는 않습니다.
규칙이 여러 개일 때: ‘더 구체적일 것’이라고 추측하지 말고 순서를 확인
시스템은 On Demand 규칙을 목록 순서대로 평가하고 처음 일치하는 최상위 규칙을 사용합니다. 도메인이 더 길거나 SSID가 더 구체적이라는 이유로 우선순위가 자동으로 높아진다고 가정하지 마세요. 최상위 규칙 하나에 지정한 서로 다른 조건은 일반적으로 모두 충족해야 합니다. 같은 이름 목록에 여러 값이 있으면 그중 하나와 일치하면 됩니다. 도메인 평가에는 내부 동작도 포함될 수 있으므로 모든 조건을 단순한 단일 목록처럼 다뤄서는 안 됩니다.
현재 화면에서 규칙 순서를 바꿀 수 있다면 구체적인 예외 조건을 포괄적인 조건보다 앞에 배치하세요. 화면에 고정된 선택지만 있고 순서를 조정할 수 없다면 임의로 순서를 바꿀 수 있다고 가정하지 말고 저장 후 실제 동작으로 조건 간 적용 관계를 확인하세요. 특히 넓은 범위의 연결 조건을 켜 놓고 뒤에 있는 제외 조건이 반드시 적용될 것이라고 기대해서는 안 됩니다.
- 목표를 먼저 정리: 예를 들어 ‘지정한 Wi-Fi에서는 연결 끊기, 셀룰러 네트워크에서는 연결, 다른 Wi-Fi에서는 현 상태 유지’처럼 작성합니다.
- 조건 중복 확인: 모든 Wi-Fi에서 연결하는 규칙은 특정 SSID에서 연결을 끊는 규칙과 겹칩니다.
- 예외 처리: 순서를 조정할 수 있는 규칙 목록에서는 지정한 SSID의 예외를 먼저 평가하고, 포괄적인 Wi-Fi 조건은 그 뒤에 배치하세요.
- 도메인 조건은 별도로 확인: 최상위 네트워크 규칙이 Disconnect로 매칭된 경우 이후 도메인 평가가 이를 뒤집을 것이라고 기대해서는 안 됩니다.
- 다시 저장하고 테스트: 앱에서 변경한 설정은 적용 중인 VPN 구성에 저장해야 합니다. 편집 화면에서 수정만 하고 저장하지 않았다면 시스템이 새 조건을 사용한다고 볼 수 없습니다.
여기서 말하는 순서는 On Demand 규칙의 순서이며 Config의 규칙을 위에서 아래로 매칭하는 순서와는 별개의 기능입니다. 두 기능 모두 ‘먼저 일치하는 규칙’을 사용할 수 있지만 두 목록을 하나로 합쳐 우선순위를 정해서는 안 됩니다.
확인 및 문제 해결: 조건 작동, 연결, 라우팅 순으로 점검
설정을 마친 뒤 지정한 Wi-Fi, 다른 Wi-Fi, 셀룰러 네트워크를 각각 테스트하세요. 도메인 테스트는 별도로 진행하고 DNS 캐시나 백그라운드 요청 여부를 기록하세요. 아래 내용은 확인할 현상과 점검 방향이며, 모든 네트워크 환경에서 성공을 보장하지 않습니다.
- 지정한 Wi-Fi: 대상 SSID에 다시 연결하고 설정한 연결 또는 연결 해제 동작이 실행되는지 확인하세요.
- 다른 Wi-Fi: 이름이 다른 네트워크에 연결해 지정한 SSID 조건을 모든 Wi-Fi에 적용되도록 잘못 입력하지 않았는지 확인하세요.
- 셀룰러 네트워크: Wi-Fi를 끄고 셀룰러 데이터를 사용할 수 있는지 확인한 뒤 연결이 시도되는지 살펴보세요.
- 도메인 평가: 다른 조건이 먼저 매칭되지 않도록 한 상태에서 새로운 도메인 요청을 보내고 DNS 확인 결과와 연결 상태를 함께 살펴보세요.
수동으로 연결을 끊었는데 왜 다시 연결되나요?
먼저 Settings → On Demand에서 On Demand를 잠시 끈 뒤 Home으로 돌아가 연결 스위치를 끄세요. 이후 자동으로 다시 연결되지 않는다면 어떤 조건이 연결을 시작하고 있는 것입니다. 범위가 넓은 네트워크 연결 규칙과 백그라운드 도메인 요청을 하나씩 확인하세요. 연결을 일시 중지하려면 자동 연결 설정도 함께 조정해야 합니다.
집 Wi-Fi에서 연결을 끊도록 설정했는데 왜 계속 연결되나요?
먼저 시스템 Wi-Fi 화면에서 SSID 전체 이름을 다시 확인하고, 목록에서 더 앞에 있는 ‘모든 Wi-Fi 연결’ 조건이 있는지 살펴보세요. 저장한 뒤 네트워크 연결을 끊었다가 다시 연결하세요. 규칙이 올바른데도 동작이 다르다면 시스템이 방금 저장한 Shadowrocket VPN 구성을 사용 중인지 확인하세요.
지정한 도메인을 열어도 연결되지 않습니다. 입력이 잘못된 건가요?
먼저 도메인 입력란에서 프로토콜, 경로, 포트를 지운 다음 해당 조건이 무조건 연결인지, DNS 확인 결과에 따라 연결하는 방식인지 확인하세요. ConnectIfNeeded라면 현재 네트워크에서 도메인을 확인할 수 있을 때 연결되지 않는 것이 정상일 수 있습니다. DNS 캐시, 앱 자체의 DNS 확인, 먼저 매칭되는 네트워크 규칙도 확인하세요.
자동 연결은 됐는데 왜 페이지가 열리지 않나요?
Home으로 돌아가 Connectivity Test를 실행해 기본 서버가 작동하는지 확인한 다음 Global Routing과 현재 Config를 살펴보세요. 테스트에 실패하면 먼저 수동 연결로 돌아가 서버와 인증 정보를 확인하세요. 테스트는 성공했지만 특정 페이지가 열리지 않는다면 해당 요청의 DNS와 라우팅 규칙을 살펴보고 On Demand 조건을 반복해서 추가하지 마세요.
설정을 되돌리려면 Settings → On Demand에서 On Demand를 끄고 저장한 다음 Home의 연결 스위치를 직접 조작하세요. 기본 상태가 복구된 것을 확인한 뒤 한 번에 한 종류의 조건만 다시 활성화하세요. 구독 업데이트는 사용자가 보유한 서버 목록과 관련 설정을 변경할 수 있지만 On Demand 규칙이 올바르다는 증거는 아닙니다. 업데이트 후에도 선택된 서버와 실제 연결 결과를 확인하세요.