이 글은 iPhone과 iPad에서 Shadowrocket을 처음 설정하는 사용자를 위한 안내입니다. 본인에게 이미 서비스와 구독 주소가 있는 경우를 전제로 합니다. 먼저 사용 가능한 구성을 가져와 선택하고, Global Routing을 확인한 다음 연결을 켜고 시스템의 VPN 구성 추가를 허용하세요. 연결 스위치, 트래픽 분기 방식, 연결 테스트, 서버 목록의 차이와 Not Connected 또는 테스트 시간 초과 시 확인할 항목을 살펴봅니다.
1. 처음 설정하기 전에: 앱과 연결 구성 구분하기
Shadowrocket을 설치해도 서버 주소, 인증 정보, 사용 가능한 연결 경로가 자동으로 생성되지는 않습니다. 앱은 구성을 읽고 연결을 설정하며 규칙에 따라 트래픽을 처리합니다. 서버 주소, 포트, 비밀번호 등은 사용자가 이미 이용 중인 서비스에서 제공받아야 합니다. Home의 SERVER 목록이 비어 있다면 연결 스위치를 반복해서 누르기보다 먼저 구성을 가져오세요.
이 글의 화면 경로는 iPhone과 iPad를 기준으로 합니다. iPhone / iPad 버전은 App Store에서 $2.99를 한 번 결제해 이용하며, 개발자는 Shadow Launch Technology Limited입니다. 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요. Mac(Apple 실리콘 / Intel), Windows, Android, Linux 버전은 무료입니다. 기기에 맞는 버전은 전체 플랫폼 다운로드 페이지에서 확인하세요. 다른 플랫폼은 화면 구성이 다르므로 이 글의 단계를 그대로 적용할 수 없습니다.
‘구성’은 두 가지 의미로 쓰입니다. 시스템에서 추가를 요청하는 VPN 구성은 앱이 네트워크 터널을 만들도록 허용하는 시스템 기록입니다. Config의 구성 파일에는 규칙, DNS 등 실행 설정이 담깁니다. VPN 구성을 허용해도 구성 파일이 준비되거나 SERVER에 사용 가능한 항목이 자동으로 추가되는 것은 아닙니다.
2. 첫 연결: 구성 가져오기, 서버 선택, VPN 권한 허용
앱을 처음 실행했을 때 VPN 권한 요청이 바로 표시되지 않아도 이상한 것은 아닙니다. 일반적으로 앱이 VPN 구성을 만들려고 할 때 시스템에서 확인 요청을 표시하며, 처음 연결을 켤 때 나타나는 경우가 많습니다. 서버 정보가 없는 상태에서 권한 문제를 점검하지 않도록 먼저 다음 단계를 진행하세요.
-
네트워크 확인
연결을 끈 상태에서 Safari로 평소 바로 접속할 수 있는 페이지를 열어 보세요. 이때도 열리지 않는다면 Wi-Fi 로그인, 셀룰러 데이터 또는 라우터 연결부터 확인하세요.
-
구성 가져오기
이미 구독 주소가 있다면 Home → 오른쪽 위 ‘+’ → Type → Subscribe로 이동해 URL에 본인의 구독 주소를 입력하고 저장하세요. 서버 정보만 있다면 해당 프로토콜을 선택한 뒤 제공된 자료에 따라 주소, 포트, 인증 정보를 입력하세요.
-
항목 선택
Home으로 돌아와 SERVER 목록에 항목이 표시되는지 확인하고 사용할 서버를 선택하세요. 구독 그룹은 있지만 그룹 안에 항목이 없다면 구독 업데이트 결과부터 확인하세요. 그룹 이름을 연결 가능한 서버로 간주하면 안 됩니다.
-
라우팅 확인
Home → Global Routing을 여세요. 완성된 규칙 구성이 있다면 Config를 선택하세요. 아직 규칙을 준비하지 않았고 프록시 연결을 임시로 점검하려면 Proxy를 선택할 수 있습니다. Direct를 프록시 연결 성공 여부를 확인하는 방법으로 사용하지 마세요.
-
권한 허용
Home 상단의 연결 스위치를 켜세요. 시스템에서 VPN 구성을 추가할지 묻는 경우 앱 출처를 확인한 다음 허용하고, 시스템 안내에 따라 기기 인증을 완료하세요. 그런 다음 Home으로 돌아와 연결 상태를 확인하고 실제 접속도 테스트하세요.
3. Home 화면 영역별 기능: 스위치, 목록, 테스트
Home은 일상적인 연결을 위한 화면이지만 각 영역이 알려주는 정보는 다릅니다. Not Connected는 현재 연결 상태가 설정되지 않았다는 뜻입니다. 구독이 유효한지, 서버 비밀번호가 맞는지는 나타내지 않습니다. 연결 상태가 바뀐 뒤에도 필요한 웹사이트나 서비스에 실제로 접속되는지 확인해야 합니다.
| 영역 | 기능 | 이 정보만으로는 판단할 수 없는 점 |
|---|---|---|
| Not Connected / 연결 스위치 | 현재 연결 상태를 확인하고 터널을 시작하거나 중지합니다 | 모든 대상 요청이 프록시를 거친다는 뜻은 아닙니다 |
| Global Routing | 전역 라우팅 방식 선택 | 서버 정보를 채우거나 규칙 파일을 대신하지 않습니다 |
| Connectivity Test | 현재 테스트 설정에 따라 연결 상태를 확인합니다 | 지속적인 대역폭, 동영상 재생 품질 또는 모든 웹사이트의 접속 가능 여부를 보장하지 않습니다 |
| SERVER | 기존 서버 항목을 표시하고 선택합니다 | 이름이나 지역 표시는 실제 접속 위치와 서비스 품질을 증명하지 않습니다 |
SERVER에 표시되는 항목 이름은 보통 직접 입력하거나 구독 정보에서 가져옵니다. 이름을 바꿔도 식별용 이름만 변경될 뿐 서버 주소는 바뀌지 않습니다. 문제를 점검할 때는 이름만 보고 연결 대상을 판단하지 말고 편집 화면에서 실제 주소와 포트를 확인하세요.
Connectivity Test 결과는 테스트 방식과 대상, 현재 네트워크에 따라 달라집니다. 지연 시간이 표시되면 해당 테스트 조건에서 응답을 받았다는 뜻이지 대용량 파일 다운로드가 안정적이라는 의미는 아닙니다. 시간 초과가 발생해도 모든 프로토콜 통신이 실패했다고 단정할 수 없습니다. 실제 접속 및 연결 기록과 함께 결과를 확인하고, 지연 시간이 가장 짧은 항목만 기준으로 선택하지 마세요.
4. Global Routing: Config, Proxy, Direct, Scene
Global Routing은 Shadowrocket이 처리하는 요청의 경로를 결정합니다. 시스템 연결 권한이나 프로토콜 종류와는 다릅니다. 같은 Trojan 또는 Hysteria2 항목도 라우팅 방식에 따라 처리하는 요청이 달라질 수 있습니다. 라우팅 방식을 바꿔도 해당 항목의 주소나 비밀번호가 자동으로 수정되지는 않습니다.
Config
추천현재 활성화된 구성의 규칙에 따라 DIRECT, PROXY 또는 기타 정의된 정책을 적용합니다. 직접 연결 여부는 일치하는 규칙에 따라 달라지므로 ‘일치하는 규칙이 없는 요청은 모두 직접 연결된다’고 단정할 수 없습니다.
적합한 경우: 명확한 규칙 구성을 갖추고 대상별로 트래픽을 분기해 사용하는 경우
Proxy
처리 범위에 들어오는 요청을 프록시로 처리합니다. 규칙 때문에 대상 요청이 프록시를 거치지 않는지 임시로 점검할 때 사용할 수 있습니다. 모든 시스템 트래픽을 처리할 수 있거나 서버에 연결할 수 있다는 보장은 없습니다.
적합한 경우: 같은 서버를 사용하면서 프록시 연결과 규칙 동작을 비교해 확인할 때
Direct
요청을 직접 연결로 처리하며 선택한 원격 프록시를 통해 전달하지 않습니다. 연결 스위치를 끄는 것과 완전히 같은 동작은 아니므로 시스템 터널 상태는 별도로 확인해야 합니다.
적합한 경우: 기본 네트워크 접속과 비교해 문제가 프록시 경로와 관련 있는지 확인할 때
Scene
설정된 Scene에 따라 라우팅을 처리합니다. 사용하기 전에 Scene 조건과 연결된 동작을 확인하세요. 해당 Scene을 준비하지 않았다면 모든 상황을 자동으로 판단하는 기본 옵션처럼 사용하지 마세요.
적합한 경우: Scene 조건을 이해하고 구성했으며 상황별로 동작을 전환하려는 경우
처음 문제를 점검할 때는 서버와 네트워크를 고정하고 한 번에 한 가지 변수만 바꾸세요. 예를 들어 같은 대상이 Proxy에서는 열리지만 Config에서는 실패한다면 해당 대상에 적용되는 규칙과 정책을 확인해야 합니다. 바로 앱을 다시 설치하지 마세요. 두 방식 모두 실패한다면 서버 정보, 기본 네트워크, 서버 상태를 확인하세요.
5. Config와 Settings: 규칙 파일만으로 자동 연결되지는 않습니다
Config에서는 구성 파일을 관리하고 Settings에서는 앱 설정을 관리합니다. Settings → On Demand에서 시스템의 조건부 연결 동작을 설정할 수 있습니다. 이는 ‘언제 연결할지’를 정하는 기능이지 ‘특정 도메인을 어떤 경로로 보낼지’를 결정하는 기능은 아닙니다. 처음 설정할 때는 먼저 수동 연결을 확인한 뒤 자동 연결을 설정하면 문제 원인을 좁히기 쉽습니다.
규칙 및 구성 파일
- 위치
- Config
- 적용 조건
- 해당 구성을 활성화하고 알맞은 라우팅 방식을 사용해야 합니다
- 주요 내용
- 규칙, DNS 및 기타 구성 항목
- 점검 항목
- 규칙 순서, 정책 이름, FINAL
파일을 가져온 뒤 실제로 어떤 구성이 활성화되어 있는지 확인하세요.
조건부 연결 설정
- 위치
- Settings → On Demand
- 주요 용도
- 설정된 조건에 따라 시스템 연결 동작을 실행합니다
- 확인 시점
- 수동 연결이 정상적으로 확인된 다음
- 이상 징후
- 수동으로 연결을 끈 뒤 다시 연결된다면 조건부 연결 규칙을 확인하세요
설정을 바꾼 뒤에는 실제 Wi-Fi 또는 셀룰러 환경에서 동작을 확인하세요.
다음은 규칙을 간단히 설명하는 예시이며 서버, 인증, DNS 설정을 포함한 완전한 구성 파일은 아닙니다. 예시에서는 example.com과 하위 도메인을 PROXY로 보내고, 지정된 사설 IP 주소 대역과 GEOIP 결과가 CN인 주소는 DIRECT로 처리하며, 나머지 요청은 FINAL로 보냅니다.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX는 도메인 접미사와 하위 도메인을 일치시킵니다. 웹페이지 내용에 해당 단어가 있는지 확인하는 규칙은 아닙니다.IP-CIDR은 IP 주소 대역을 일치시킵니다. 예시의no-resolve는 이 규칙을 위해 별도로 도메인 조회를 실행하지 않는다는 뜻입니다.GEOIP는 대상 IP와 현재 사용하는 지리 위치 데이터에 따라 판단합니다. 도메인 접미사를 기준으로 삼지 않습니다.FINAL은 앞선 규칙에 일치하지 않은 요청을 처리하므로 규칙 목록의 맨 아래에 배치해야 합니다. 예시의 기본 처리는 DIRECT가 아니라 PROXY입니다.
6. 서버 정보 직접 입력과 구독 가져오기: 두 가지 준비 방법
사용자가 이미 보유한 정보는 서버 설정 항목일 수도 있고 구독 URL일 수도 있습니다. 어느 쪽이든 선택 가능한 서버 항목을 만들어야 하지만 이후 관리 방법은 다릅니다. 구독 URL에는 보통 접속 정보가 포함되므로 화면을 캡처하거나 도움을 요청하거나 기록을 복사할 때 URL 전체와 인증 정보를 가리세요.
구성 가져오기: 개별 항목과 기존 구독
서버 항목 직접 입력
- Home → ‘+’ → Type에서 제공된 정보에 지정된 프로토콜을 선택하세요.
- 주소, 포트, 비밀번호 및 기타 인증 정보를 하나씩 확인하세요.
- TLS, SNI, 전송 방식 등의 항목은 원래 제공된 설정을 따르세요.
- 서버 정보가 변경되면 로컬 항목도 함께 수정해야 합니다.
기존 구독 가져오기
- Home → ‘+’ → Type → Subscribe로 이동해 본인의 URL을 입력하세요.
- 저장하고 업데이트한 뒤 그룹에 서버 항목이 있는지 확인하세요.
- 업데이트에 실패하면 기본 네트워크, 주소가 완전한지, 인증 정보가 유효한지 확인하세요.
- 구독 업데이트와 Config의 규칙 파일 업데이트는 각각 따로 확인해야 합니다.
VPN 권한을 허용해도 두 방식 모두 자동으로 사용할 수 있게 되는 것은 아닙니다. 모든 필수 정보와 연결 가능한 서버가 있어야 하며 올바른 항목을 선택해야 합니다.
이름이 비슷하다는 이유만으로 프로토콜을 바꾸면 안 됩니다. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 인증 방식과 전송 구조가 서로 다릅니다. 예를 들어 제공된 정보에 포트가 443으로 명시되어 있다면 443을 입력하세요. 하지만 포트 번호만으로 프로토콜이 Trojan이거나 TCP를 사용한다고 판단할 수는 없습니다. Hysteria2는 QUIC 기반이며 UDP를 사용합니다. UDP가 제한된 네트워크에서는 번호가 같은 TCP 포트로 바꾸기보다 네트워크 조건을 확인하세요.
7. Not Connected 및 연결되었지만 접속되지 않을 때의 점검 순서
문제는 시스템 상태부터 앱 설정까지 단계별로 점검하세요. Not Connected, 테스트 시간 초과, 대상 페이지가 열리지 않는 현상은 서로 다르며 모두 VPN 권한 문제로 볼 수는 없습니다. 다음 순서대로 확인하면 비교 기준을 유지하면서 정상적으로 작동하는 구성을 실수로 삭제하는 일을 피할 수 있습니다.
- 연결을 끄고 기본 네트워크를 확인하세요. Safari에서 평소 바로 열리는 페이지도 접속할 수 없다면 먼저 Wi-Fi 포털 인증이나 셀룰러 데이터를 확인하세요. 규칙부터 바꾸지 마세요.
- 시스템 권한이 승인되었는지 확인하세요. 처음 표시된 시스템 요청을 취소했다면 연결을 다시 켜 보세요. 구성이 제한된다는 안내가 나오면 기기 관리 정책을 확인하세요. 상태 표시줄에 VPN 표시가 있는지만으로 전체 결과를 판단하지 마세요.
- SERVER에서 실제로 선택한 항목을 확인하세요. 목록이 비어 있지 않은지, 확인하려는 항목이 선택되어 있는지 살펴보세요. 가져오기에 성공했다고 올바른 항목이 자동으로 선택되는 것은 아닙니다.
- 서버 항목을 고정한 뒤 라우팅을 확인하세요. Config에서 실패하면 Proxy에서의 동작과 비교하세요. Direct에서 일반 페이지가 열린다면 해당 대상에 대한 직접 연결이 가능하다는 뜻일 뿐, 프록시가 정상이라는 뜻은 아닙니다.
- 그다음 프로토콜과 서버 정보를 확인하세요. 주소, 포트, 인증 정보, SNI 또는 전송 방식 중 하나라도 맞지 않으면 터널이 연결된 것처럼 보여도 실제 요청은 실패할 수 있습니다.
- 마지막으로 자동 연결을 확인하세요. 수동으로 끈 뒤 다시 연결된다면 Settings → On Demand에서 조건을 확인하고 시스템의 다른 VPN 구성 상태도 살펴보세요. 설정끼리 간섭할 수 있습니다.
설정이 올바른지 확인하려면 현재 선택한 서버, Global Routing 방식, 활성화된 Config를 설명할 수 있어야 하며 실제 요청이 예상한 경로로 처리되는지도 확인해야 합니다. 연결 상태가 바뀌거나 테스트에 지연 시간이 표시되는 것만으로는 충분하지 않습니다.
VPN 구성 추가를 허용한 뒤에도 구독을 다시 가져와야 하나요?
두 작업은 서로 별개입니다. SERVER에 완전한 항목이 있다면 시스템 권한을 허용했다는 이유로 다시 가져올 필요는 없습니다. 목록이 비어 있다면 권한을 허용해도 항목이 추가되지 않습니다. 먼저 목록을 확인한 뒤 가져오기 또는 업데이트 여부를 결정하세요.
Connectivity Test 결과가 있는데도 특정 페이지가 열리지 않는 이유는 무엇인가요?
테스트 대상과 요청 방식은 실제 페이지와 다를 수 있습니다. 페이지에 추가 도메인, DNS 또는 다른 전송 방식이 필요할 수도 있습니다. 현재 서버를 고정하고 같은 대상을 Proxy와 Config에서 비교한 다음 관련 규칙과 연결 기록을 확인하세요.
Home 화면을 나가면 연결이 반드시 중지되나요?
화면을 바꾸거나 시스템 홈 화면으로 돌아가도 연결이 꺼지는 것은 아닙니다. 중지하려면 연결 스위치를 사용하고 시스템 상태도 확인하세요. On Demand를 활성화했다면 연결을 다시 시작하는 조건이 있는지도 살펴보세요.