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

On Demand의 작동 조건인 지정 Wi-Fi, 셀룰러 네트워크, 도메인 일치와 여러 규칙이 동시에 적용될 때의 우선순위를 설명합니다.

이 글의 핵심 내용

On Demand는 시스템이 VPN 터널을 언제 연결하거나 끊을지 결정하며, 특정 사이트의 트래픽을 DIRECT와 PROXY 중 어디로 보낼지는 결정하지 않습니다. 이미 사용할 서비스와 설정이 있고 수동 연결이 정상 작동하는 사용자를 대상으로 합니다. 먼저 Wi-Fi 및 셀룰러 조건을 설정하고, 도메인 기반 On Demand 평가와 Config 라우팅 규칙을 구분한 다음 네트워크를 전환해 규칙 순서를 확인합니다.

먼저 On Demand, Global Routing, Config의 차이를 확인하세요

Shadowrocket의 On Demand는 시스템의 필요 시 연결 기능을 설정하는 항목입니다. 네트워크 환경이 바뀌거나 특정 On Demand 평가 조건을 충족하면 시스템이 연결 여부를 판단합니다. 요청마다 프록시를 켤지 확인하는 스위치도 아니고, 앱을 계속 전면에 실행해 두는 기능도 아닙니다.

Home의 Global Routing은 연결 후 트래픽을 처리하는 방식을 제어합니다. Proxy, Direct, Config, Scene과 On Demand는 서로 다른 계층에 있습니다. 앞의 항목은 트래픽의 경로를, On Demand는 터널의 연결 시점을 다룹니다. 문제를 확인할 때는 두 설정을 각각 기록하세요. VPN이 연결됐다고 해서 특정 도메인이 반드시 프록시를 통과하는 것은 아닙니다.

네트워크 조건 변경On Demand 규칙 평가터널 상태 변경요청이 터널로 전달라우팅 정책 판단

설정 전에 재현 가능한 연결 상태를 마련하세요

먼저 같은 구성이 수동 연결에서 정상 작동하는지 확인한 다음 자동 연결을 설정하세요. On Demand는 잘못된 서버 주소나 인증 정보, 작동하지 않는 구성을 수정하지 않습니다. 수동 연결부터 실패한다면 자동 재연결을 추가해도 증상만 늘어나며 원인을 찾는 데 도움이 되지 않습니다.

  1. Home에서 사용할 수 있는 기존 구성을 선택하고 현재 Global Routing 모드를 기록하세요. 라우팅 규칙을 확인할 때는 Config를 사용합니다.
  2. Settings → On Demand에서 필요 시 연결을 잠시 끄고 수동으로 연결한 뒤, 평소 정상적으로 열리는 페이지에 접속해 기본 연결이 작동하는지 확인합니다.
  3. 테스트에 사용할 Wi-Fi의 정확한 SSID를 기록하세요. 라우터 모델명이나 직접 붙인 네트워크 별칭이 아니라 시스템의 Wi-Fi 목록에 표시되는 이름을 기준으로 합니다.
  4. Settings → On Demand로 이동해 네트워크 조건을 최소한으로 설정하세요. 한 번에 한 항목만 변경하고 저장한 뒤 네트워크를 전환해 확인합니다.
  5. 시스템의 설정 → 일반 → VPN 및 기기 관리 → VPN에서 해당 구성을 확인하세요. 시스템 메뉴 이름은 다를 수 있으므로 Shadowrocket에서 사용하는 구성이 맞는지 확인하는 것이 중요합니다.

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

흔한 설정 목표는 지정한 Wi-Fi에서는 자동 연결하지 않고, 다른 네트워크에서는 자동 연결하는 것입니다. 모든 Wi-Fi 이름을 하나씩 나열하기보다 정확한 예외를 먼저 추가하고 더 넓은 네트워크 조건을 뒤에 두는 것이 핵심입니다. Home-WiFi는 예시 이름이므로 실제 설정에는 기기에 표시되는 SSID를 입력하세요.

지정 Wi-Fi 예외

경로
Settings → On Demand
네트워크 조건
Wi-Fi
SSID
Home-WiFi를 실제 이름으로 바꾸세요
동작
Disconnect
위치
포괄적인 Wi-Fi 조건보다 앞

해당 네트워크에서 터널 연결을 유지하지 않으려는 경우에만 Disconnect를 사용하세요.

셀룰러 네트워크 연결

경로
Settings → On Demand
네트워크 조건
Cellular
SSID
해당 없음
동작
Connect
확인 방법
Wi-Fi를 끄고 연결 상태 확인

현재 화면에서 실제로 제공하는 조건과 동작을 기준으로 설정하세요. 시스템 규칙 키를 일반 입력란에 그대로 붙여 넣지 마세요.

SSID 조건은 네트워크 이름을 확인할 뿐, 라우터의 신원을 인증하지 않습니다. 장소가 달라도 같은 이름의 Wi-Fi가 있을 수 있으므로 이름이 일치한다고 신뢰할 수 있는 네트워크라고 판단하지 마세요. 같은 이름을 사용하는 여러 주파수 대역에는 하나의 규칙이 적용될 수 있고, 이름이 다르면 각각 따로 설정해야 할 수 있습니다.

여러 규칙이 일치할 때는 바깥 규칙의 순서를 먼저 확인하세요

시스템의 바깥쪽 On Demand 규칙은 목록 순서대로 평가하며, 일치한 규칙을 모두 합치는 대신 처음 일치한 규칙의 동작을 적용합니다. 인터페이스 유형과 SSID를 함께 지정한 규칙은 두 조건을 모두 충족해야 합니다. SSID 목록에 이름이 여러 개 있으면 그중 하나와 일치하면 됩니다. 도메인 평가는 별도의 계층이므로 일반 네트워크 조건과 같은 방식으로 판단하면 안 됩니다.

순서조건동작테스트 결과
1Wi-Fi, SSID가 Home-WiFiDisconnect이 이름의 Wi-Fi에 연결할 때 이 동작을 적용
2모든 Wi-FiConnect다른 Wi-Fi는 이 항목과 일치
3CellularConnect셀룰러 네트워크로 전환할 때 이 동작을 적용

요약: 예외를 먼저 확인한 뒤 일반 조건을 테스트하세요

저장한 뒤 먼저 Home-WiFi에 연결해 두 번째 규칙이 먼저 연결을 시작하지 않는지 확인하세요. 그런 다음 다른 Wi-Fi와 셀룰러 네트워크로 전환합니다. 첫 단계부터 예상과 다르면 SSID와 규칙 순서를 먼저 확인하세요. Config를 동시에 바꿀 필요는 없습니다.

Connect는 조건을 충족할 때 연결을 시작한다는 뜻입니다. Disconnect는 연결을 끊고 해당 조건에서 이 기능으로 연결을 시작하지 않는다는 뜻입니다. Ignore는 이번 On Demand 평가에서 연결 상태를 변경하지 않는다는 뜻이며, Disconnect와 다릅니다. 다음 규칙을 계속 확인하라는 의미도 아닙니다. 특정 네트워크에서 연결을 끊은 상태로 유지하려면 Ignore에 기대지 말고 목적에 맞는 동작을 선택하세요.

  1. 구체적인 예외를 포괄적인 조건보다 앞에 두고 저장한 다음, 페이지에 다시 들어가 규칙 순서를 확인하세요.
  2. 원래 네트워크에서 웹페이지를 반복해서 새로 고치는 데 그치지 말고, 실제로 네트워크에 연결하거나 연결을 해제해 평가를 실행하세요.
  3. ‘규칙에 일치했지만 연결이 시작되지 않음’과 ‘연결을 시작했지만 실패함’을 구분해 기록하세요. 후자의 경우 기본 네트워크와 기존 구성도 확인해야 합니다.

도메인별 자동 연결: On Demand 평가와 라우팅 규칙 구분

‘특정 도메인에 접속하면 연결’에는 서로 다른 요구가 두 가지 있습니다. 하나는 터널이 연결되지 않았을 때 도메인을 기준으로 연결 여부를 평가하는 것이고, 다른 하나는 터널이 이미 연결된 상태에서 특정 도메인에 PROXY를 적용하는 것입니다. 전자는 시스템 On Demand의 EvaluateConnection 기능이고, 후자는 Config 규칙입니다. DOMAIN-SUFFIX만 추가해서는 전자의 기능이 자동으로 생기지 않습니다.

시스템 규칙에서 EvaluateConnection에는 도메인 평가 항목을 포함할 수 있습니다. ConnectIfNeeded는 도메인 확인 결과와 연결 가능 여부를 함께 판단해 터널 연결이 필요한지 결정합니다. 아무 웹 주소나 확인되는 즉시 무조건 연결하는 것은 아닙니다. NeverConnect는 해당 도메인 평가 항목으로 연결을 시작하지 않는다는 뜻입니다. 트래픽 규칙의 DIRECT와 같지 않으며 이미 연결된 터널을 끊지도 않습니다.

목표가 ‘example.com은 프록시로 보내고 나머지 트래픽은 직접 연결’하는 것뿐이라면 기존 Config에서 실제 정책 이름에 맞춰 라우팅 규칙을 설정할 수 있습니다. 아래는 규칙 문법만 보여 주는 예시이며, 현재 구성에서 PROXY 정책이 작동한다고 가정합니다. On Demand 설정이 아니며 연결 서비스도 포함하지 않습니다.

DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

이 규칙을 사용하려면 작동하는 터널이 먼저 있어야 하며, Global Routing에서 Config를 선택해야 합니다. 기존 구성에 다른 규칙이 있다면 두 줄짜리 예시로 전체 내용을 덮어쓰지 마세요. 앞에 먼저 일치하는 조건이 있는지 확인하고 기존에 필요한 설정을 유지하세요.

정해진 테스트 절차로 자동 연결 문제를 확인하세요

테스트하는 동안 같은 기존 구성을 유지하고 조건 하나만 바꾸세요. 매번 현재 네트워크, 예상 동작, 실제 VPN 상태, 웹페이지 결과를 기록합니다. 웹페이지가 열린다는 사실은 해당 접속이 성공했다는 뜻일 뿐, On Demand 규칙이 적용됐거나 트래픽이 PROXY를 통과했다는 증거는 아닙니다.

  1. 지정 Wi-Fi 테스트: 구성에 등록된 SSID에 연결하고 네트워크 연결이 완료될 때까지 기다린 다음 VPN 상태를 확인하세요. 목표가 Disconnect라면 다른 자동화가 다시 연결하지 않는지도 확인합니다.
  2. 다른 Wi-Fi 테스트: 이름이 다르고 인터넷에 정상적으로 연결되는 네트워크로 바꾼 뒤 포괄적인 Connect가 연결을 시작하는지 확인하세요. 네트워크 로그인 페이지를 완료하지 않은 상태를 구성 오류로 오해하지 마세요.
  3. 셀룰러 테스트: Wi-Fi를 끄고 셀룰러 데이터가 작동하는지 확인한 다음 터널 상태를 살펴보세요. 테스트하는 동안 Global Routing 모드는 그대로 유지합니다.
  4. 도메인 테스트: 도메인 평가를 실제로 설정한 경우에만 진행하세요. 먼저 터널 연결을 해제한 뒤 새로 도메인에 접속하고, 페이지 로딩 여부만 보지 말고 연결 상태와 사용 가능한 로그를 함께 확인합니다.
  5. 기본 상태로 되돌려 확인: 연결이 반복해서 재시도되면 On Demand를 끄고 수동으로 테스트하세요. 수동 연결도 실패한다면 먼저 네트워크나 기존 구성 문제를 해결합니다.

연결을 끊었는데 잠시 뒤 다시 연결되는 이유는 무엇인가요?

먼저 Settings → On Demand에서 필요 시 연결을 끈 다음 VPN 연결을 해제하세요. 그래도 다시 연결된다면 시스템 VPN에서 실제로 활성화된 구성과 다른 자동화 설정을 확인하세요. 앱 안의 설정 하나만 끄고 끝내지 마세요.

집 Wi-Fi에 Disconnect를 설정했는데도 연결되는 이유는 무엇인가요?

정확한 SSID, 이름을 읽는 데 필요한 권한, 규칙 순서를 확인하세요. 특히 모든 Wi-Fi에 적용되는 Connect가 앞에 있는지 살펴보세요. 저장한 뒤 해당 네트워크에서 연결을 해제했다가 다시 연결해 평가를 다시 실행합니다.

DOMAIN-SUFFIX를 추가했는데 웹사이트에 접속해도 자동 연결되지 않는 이유는 무엇인가요?

이 키워드는 Config 라우팅 규칙이며 터널을 연결하지 않습니다. 먼저 수동으로 연결한 다음 Home → Global Routing에서 Config를 선택해 규칙을 확인하세요. 도메인 기준으로 터널을 연결하려면 현재 On Demand에 해당 평가 옵션이 있는지 별도로 확인해야 합니다.

셀룰러 네트워크에서는 연결로 표시되는데 웹페이지가 열리지 않습니다. 무엇부터 바꿔야 하나요?

먼저 On Demand를 끄고 같은 셀룰러 네트워크에서 수동 연결을 테스트하세요. 기존 구성이 작동하는지 확인한 뒤 Global Routing과 Config 규칙의 일치 결과를 살펴보세요. 프로토콜, DNS, 규칙 순서를 한꺼번에 바꾸지 마세요.

App Store 정식 앱 확인