이 글의 핵심 내용

Shadowrocket을 수동으로 연결할 수 있는 iPhone·iPad 사용자에게 적합한 안내입니다. 먼저 On Demand와 연결 후 트래픽을 나누는 기능의 차이를 살펴보고, Wi-Fi와 셀룰러 조건을 설정한 다음 도메인 조건과 규칙 순서를 확인합니다. 읽고 나면 되돌릴 수 있는 자동 연결 설정을 만들고, ‘자동으로 연결되지 않음’과 ‘연결 후 잘못된 정책으로 처리됨’ 중 어느 부분을 점검해야 하는지 구분할 수 있습니다.

On Demand는 연결 여부를, Config는 연결 후 트래픽 처리를 담당합니다

Shadowrocket의 On Demand는 시스템의 VPN 주문형 연결 기능을 사용해 네트워크 환경과 연결 평가 조건에 따라 VPN 연결을 시작할지 결정합니다. 백그라운드에서 일정 간격으로 연결 버튼을 누르거나 웹사이트마다 VPN을 따로 만드는 기능은 아닙니다. 경로는 Settings → On Demand이며, 편집할 수 있는 조건은 현재 앱 화면을 기준으로 확인하세요.

네트워크 조건 변경 On Demand 규칙 평가 시스템에서 터널 연결 연결 규칙으로 트래픽 분기 목적지로 트래픽 전송

On Demand는 ‘터널을 연결할지’를 결정하고, Global Routing은 연결된 뒤 트래픽을 처리하는 방식을 정합니다. Proxy는 전체 트래픽을 프록시로 보내고, Direct는 전체 트래픽을 직접 연결하며, Config는 현재 설정의 규칙에 따라 처리하고, Scene은 선택한 시나리오의 설정을 따릅니다. Config의 DOMAIN-SUFFIX 같은 규칙을 확인하려면 먼저 Global Routing이 Config로 설정되어 있는지 확인하세요. 두 단계의 규칙을 혼동하면 문제 원인을 찾기 어렵습니다.

이 안내는 이미 사용할 서비스와 구독 정보를 보유한 경우를 전제로 합니다. On Demand는 만료된 연결 정보를 복구하거나 사용할 수 없게 된 구독 주소를 자동으로 갱신하지 않습니다. 수동 연결이 되지 않는다면 자동화를 켜기 전에 기본 연결부터 해결하세요.

설정 전 준비: 수동 연결과 해제 방법 확인

처음 설정할 때는 자동 연결을 꺼 둔 상태로 시작하세요. 먼저 수동 연결을 완료하고 시스템에서 VPN 구성을 추가하도록 허용한 뒤 Settings → On Demand로 이동합니다. 테스트 중에는 서버, DNS, Global Routing, On Demand 조건을 동시에 변경하지 마세요. 여러 변수를 한꺼번에 바꾸면 실패 원인을 찾기 어렵습니다.

  1. Home에서 보유한 유효한 연결 프로필을 선택하고 연결 스위치를 직접 켭니다.
  2. 테스트 목적에 맞게 Global Routing을 선택합니다. Config 규칙을 확인하려면 Config를 사용하세요.
  3. 평소 이용하는 페이지에 접속해 현재 네트워크 유형과 연결 상태를 기록합니다.
  4. Settings → On Demand로 이동해 네트워크 조건 하나만 추가한 뒤 주문형 연결을 켭니다.
  5. Wi-Fi와 셀룰러 네트워크를 한 번 전환하고 Home의 연결 상태와 시스템 VPN 상태를 확인합니다.
자동 연결을 중지하는 방법부터 알아두세요

자동 연결을 중지하려면 먼저 Settings → On Demand에서 On Demand를 끈 다음 연결을 직접 해제하세요. Home에서 연결 스위치만 끄면 이후 네트워크가 바뀔 때 시스템이 On Demand 규칙을 다시 평가해 연결할 수 있습니다. 시스템 설정에서 ‘VPN’을 검색하면 VPN 설정을 찾을 수 있습니다. 조직에서 관리하는 기기는 관리 정책의 제한을 받을 수도 있습니다.

셀룰러 기능이 없는 iPad에서는 Wi-Fi 조건만 확인하면 됩니다. 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요. 셀룰러 네트워크 전환이 지원되지 않는 기기를 셀룰러 조건이 작동하지 않는 증거로 판단하지 마세요.

Wi-Fi와 셀룰러 조건: 구체적인 조건을 먼저, 일반 조건은 나중에

네트워크 조건은 ‘인터페이스 유형 + 선택적 Wi-Fi 이름 + 동작’으로 구성합니다. 아래는 집 Wi-Fi에서는 터널을 연결하지 않고, 그 외 Wi-Fi와 셀룰러 네트워크에서는 자동 연결하는 예입니다. Home-WiFi는 설명을 위한 SSID이므로 설정할 때 기기가 실제로 연결된 Wi-Fi 이름으로 바꾸세요. 공유기 관리 페이지 주소가 아닙니다.

집 Wi-Fi 예외

경로
Settings → On Demand
InterfaceTypeMatch
WiFi
SSIDMatch
Home-WiFi
Action
Disconnect

구체적인 SSID 조건을 먼저 두고, 모든 Wi-Fi에 적용되는 조건은 그 뒤에 둡니다.

셀룰러 네트워크 연결

경로
Settings → On Demand
InterfaceTypeMatch
Cellular
SSIDMatch
설정 안 함
Action
Connect

셀룰러 조건에는 Wi-Fi 이름을 지정하지 않습니다. 기기에서 셀룰러 네트워크를 사용할 수 있어야 합니다.

위의 영문 키는 시스템의 On Demand 조건을 설명하기 위한 것이며, 앱에 해당 필드가 그대로 표시된다는 뜻은 아닙니다. 현재 화면에서 제공하는 Wi-Fi, 셀룰러 네트워크, 동작 옵션을 사용해 설정하세요. 이 키를 Config의 일반 트래픽 분기 규칙에 붙여 넣지 마세요.

평가 순서조건동작예상 결과
1WiFi, SSID가 Home-WiFiDisconnect집 Wi-Fi 예외에 해당하면 해당 On Demand VPN 연결을 유지하지 않음
2WiFi, SSID 지정 안 함Connect다른 Wi-Fi에서 연결 시작
3CellularConnect셀룰러 네트워크에서 연결 시작

요점: 먼저 규칙 우선순위를 확인한 뒤 연결 정보를 점검하세요

집 Wi-Fi에서도 자동 연결된다면 모든 Wi-Fi에 적용되는 Connect가 지정 SSID의 Disconnect보다 앞에 있는지 먼저 확인하세요. 구체적인 예외를 먼저 평가하도록 순서를 바꾸고 네트워크를 다시 전환해 테스트합니다.

SSID의 대소문자와 공백, 실제 연결된 네트워크 이름을 확인하세요. 같은 공유기의 주파수 대역별 Wi-Fi 이름이 다를 수 있고, 게스트 네트워크도 별도 이름을 사용할 수 있습니다. SSID 일치는 이름만 확인할 뿐 네트워크의 신뢰도를 검증하지 않습니다. 집 Wi-Fi 이름과 일치한다고 해서 보안 인증이 된 것은 아닙니다.

도메인 기반 On Demand 연결: DOMAIN-SUFFIX와는 다른 기능

도메인 기반 On Demand 연결은 시스템의 연결 평가 기능입니다. 시스템 수준의 EvaluateConnection은 도메인 조건과 ConnectIfNeeded를 함께 사용할 수 있습니다. 그렇다고 해당 도메인에 접속할 때마다 VPN 연결을 강제로 다시 시작한다는 뜻은 아닙니다. 현재 네트워크에서 필요한 DNS 조회와 연결 평가를 마칠 수 있다면 시스템이 VPN을 시작하지 않을 수도 있습니다. 캐시, 기존 연결, 앱의 도메인 조회 방식도 관찰 결과에 영향을 줍니다.

아래는 Action, Domains, DomainAction의 관계를 이해하기 위한 시스템 On Demand 규칙 구조입니다. 설명용 속성 목록 예시이며 Shadowrocket Config 파일이 아니고, 사용자가 직접 가져오는 설정도 아닙니다. 현재 On Demand 화면에서 해당 도메인 평가 옵션을 제공하는 경우에만 화면에서 설정하세요.

<dict>
  <key>Action</key>
  <string>EvaluateConnection</string>
  <key>ActionParameters</key>
  <array>
    <dict>
      <key>Domains</key>
      <array>
        <string>example.com</string>
      </array>
      <key>DomainAction</key>
      <string>ConnectIfNeeded</string>
    </dict>
  </array>
</dict>

예를 들어 example.com은 도메인이고 example.com:443은 포트가 포함된 값이므로 같은 도메인 조건으로 취급해서는 안 됩니다. HTTPS에서 흔히 사용하는 포트는 443이지만, On Demand의 도메인 일치 여부는 포트에 따라 연결을 켜고 끄지 않습니다. IP 주소로 직접 접속해도 도메인 조건의 일치 여부를 확인할 수 없습니다.

네트워크 조건과 도메인 조건은 따로 테스트하세요

앞선 규칙이 모든 Wi-Fi에서 Connect를 실행하면 뒤에 있는 도메인 평가가 연결 시작 여부를 결정할 기회가 없는 경우가 많습니다. 반대로 앞선 Disconnect가 도메인 평가를 가로막을 수도 있습니다. 먼저 도메인 평가만 확인한 뒤 네트워크 제한을 추가하세요. 서로 충돌하는 여러 동작을 시스템이 자동으로 합쳐 줄 것으로 기대하지 마세요.

터널 연결 후에는 Config로 목적지별 트래픽을 처리하세요

‘연결은 유지하되 지정한 도메인만 프록시로 보내기’가 목적이라면 터널 전체를 반복해서 연결하고 끊기보다 Config의 트래픽 분기 규칙을 사용하세요. On Demand로 셀룰러 네트워크에서 자동 연결하고, Config에서 도메인·IP·지역에 따라 정책을 선택할 수 있습니다. 두 기능은 함께 사용할 수 있지만 서로 대체할 수는 없습니다.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

이 내용은 규칙 문법을 설명하는 예시이며, 그대로 사용할 수 있는 완성된 연결 설정이 아닙니다. DOMAIN-SUFFIX는 도메인 접미사를, IP-CIDR은 지정된 IP 주소 대역을 일치시킵니다. GEOIP는 IP 주소의 지역 정보 데이터베이스를 기준으로 일치시키며, FINAL은 앞선 규칙에 해당하지 않는 요청을 처리합니다. 보유한 설정의 정책을 확인해 활용하고 Config 전체를 그대로 덮어쓰지 마세요.

해결할 문제수정할 위치혼동하지 말아야 할 점
셀룰러 네트워크로 전환할 때 자동 연결Settings → On DemandGEOIP 규칙을 추가하는 문제가 아닙니다
연결 후 example.com을 프록시로 처리Config의 DOMAIN-SUFFIX터널 연결을 시작하는 조건이 아닙니다
로컬 네트워크 주소는 직접 연결 유지Config의 IP-CIDRDirect로 트래픽을 분기해도 시스템 VPN 연결이 해제되는 것은 아닙니다
다른 규칙에 해당하지 않는 요청Config의 FINAL우선 적용할 규칙 뒤에 배치해야 합니다

문제 해결도 단계별로 진행하세요. 먼저 시스템에서 터널이 연결되었는지 확인하고, 다음으로 Global Routing이 Config를 사용하는지 확인한 뒤, 해당 요청에 적용된 트래픽 분기 규칙을 살펴봅니다. 아직 연결되지 않았다면 FINAL을 수정해도 On Demand가 작동하지 않는 문제는 해결되지 않습니다. 연결은 되었지만 목적지에 잘못된 정책이 적용된다면 Wi-Fi 조건을 계속 바꾸기보다 Config를 확인하세요.

테스트와 문제 해결: 한 번에 조건 하나씩 변경

자동 연결이 제대로 작동하는지 확인하려면 재현 가능한 네트워크 전환 테스트를 진행하세요. 아래는 테스트 방법과 예상되는 현상이며, 모든 네트워크에서 같은 시간 안에 연결된다는 보장은 아닙니다. 네트워크를 전환한 뒤 시스템의 평가가 끝날 때까지 기다렸다가 상태를 확인하세요. 전환 직후 연결 스위치를 연달아 수동으로 켰다 끄지 마세요.

  1. 지정한 Wi-Fi 확인: Home-WiFi에 연결해 Disconnect 예외가 적용되는지 확인합니다. 연결이 계속 유지되면 SSID와 규칙 순서를 확인하세요.
  2. 다른 Wi-Fi 확인: 이름을 알고 있는 다른 Wi-Fi로 전환해 일반 Wi-Fi의 Connect가 작동하는지 확인합니다.
  3. 셀룰러 네트워크 확인: Wi-Fi를 끄고 기기가 셀룰러 데이터에 연결되어 있는지 확인한 뒤 VPN이 시작되는지 살펴봅니다.
  4. 도메인 조건만 확인: 앞에서 먼저 적용될 수 있는 일반 동작을 일시적으로 제거하고, 기존 터널을 끊은 다음 도메인 평가 조건을 테스트합니다. 캐시된 페이지를 반복해서 새로 고치는 것만으로 판단하지 마세요.
  5. 자동 연결 해제 확인: On Demand를 끄고 직접 연결을 해제한 다음 네트워크를 전환합니다. 다른 자동화 설정이나 관리 정책이 다시 연결을 시작하지 않는지 확인하세요.

연결을 끈 뒤 잠시 후 다시 연결되는 이유는 무엇인가요?

먼저 Settings → On Demand에서 On Demand를 끈 다음 Home에서 연결을 해제하세요. 그래도 다시 연결되면 시스템 VPN 설정에 다른 On Demand 구성이 활성화되어 있는지, 기기가 조직 관리 대상인지 확인합니다.

집 Wi-Fi에서 Disconnect가 적용되지 않는 이유는 무엇인가요?

먼저 시스템의 Wi-Fi 설정에서 현재 SSID를 확인한 뒤, 지정 SSID 조건을 일반 Wi-Fi 조건보다 앞에 배치하세요. 같은 공유기에서 이름이 다른 Wi-Fi를 두 개 제공한다면 필요한 이름을 각각 조건에 포함해야 합니다.

지정한 도메인에 접속했는데 바로 연결되지 않는 이유는 무엇인가요?

먼저 Config의 DOMAIN-SUFFIX가 아니라 도메인 평가 기능을 사용하고 있는지 확인하세요. 앞선 Connect 또는 Disconnect 조건이 이미 적용되는지도 살펴봅니다. ConnectIfNeeded는 시스템 평가에 따라 동작하므로 일반 네트워크에서 도메인을 바로 조회하고 접속할 수 있다면 연결을 시작하지 않는 것도 정상일 수 있습니다.

VPN은 연결되어 있는데 목적지 요청이 직접 연결되는 이유는 무엇인가요?

Home에서 Global Routing을 확인하세요. Config를 사용 중이라면 현재 설정에서 앞쪽에 있는 규칙과 최종 적용된 정책을 확인합니다. 시스템에 VPN 연결됨으로 표시되는 것은 터널이 존재한다는 뜻일 뿐 모든 요청이 PROXY를 사용한다는 의미는 아닙니다.

최종 설정을 보존하려면 실제 SSID, 규칙 순서, Global Routing 설정, 테스트한 네트워크 유형을 기록하세요. 문제 해결 기록에 구독 주소나 인증 정보를 공개하지 마세요. 나중에 조건을 추가할 때는 기존 설정을 다시 테스트한 뒤 규칙을 한 번에 하나씩 추가하세요.