이 글은 Shadowrocket에 직접 보유한 구독 또는 수동 서버 설정을 추가한 사용자를 대상으로 합니다. 서버 선택 여부, Global Routing 설정, 시스템 VPN 승인, Connectivity Test 결과를 바탕으로 구성·네트워크·규칙 문제를 구분하는 방법을 순서대로 설명합니다.
연결 전 구독과 서버 항목 확인
첫 연결을 시작하려면 Home에 사용할 수 있는 서버 항목이 있어야 합니다. Shadowrocket은 Apple 플랫폼용 유료 클라이언트이며, 일회성 구매는 앱 사용 권한만 포함하고 회선 서비스는 포함하지 않습니다. 구독 주소, 서버 도메인, 포트, 비밀번호와 프로토콜 설정은 사용자가 이용 중인 서비스 제공업체에서 받아야 하며 앱이 자동으로 생성하지 않습니다.
Home 목록이 비어 있다면 먼저 가져오기 과정을 확인하세요. 구독을 추가할 때는 Home 오른쪽 위에서 추가 화면으로 이동해 Type을 Subscribe로 설정한 다음 기존 구독 주소를 입력합니다. 형식 확인용 예시 값은 https://example.com/sub?token=xxxx처럼 작성할 수 있지만, 실제 작업에는 본인의 유효한 주소를 사용해야 합니다. 저장 후 Home으로 돌아와 목록을 아래로 당겨 업데이트하세요.
앱 확인
App Store에서 Shadowrocket을 받고 개발자가 Shadow Launch Technology Limited인지, 앱 ID가 932747118인지 확인하세요. 시스템 요구 사항은 App Store 페이지 표기를 기준으로 합니다.
구독 업데이트
Home에서 저장된 Subscribe 항목을 아래로 당겨 새로 고침하고 서버 목록 업데이트가 끝날 때까지 기다리세요. 업데이트 중에는 네트워크를 반복해서 전환하지 마세요.
설정 확인
Add Server로 수동 추가했다면 Type, Address, Port, Password 또는 UUID와 TLS, Transport 등 프로토콜 관련 필드를 하나씩 확인하세요.
서버 선택
Home에서 사용할 서버 항목을 탭하고 왼쪽 또는 항목 앞에 선택 표시가 나타나는지 확인하세요. 가져오기만 하고 선택하지 않으면 연결 스위치에 명확한 대상 서버가 지정되지 않습니다.
현재 네트워크 유지
첫 확인 중에는 현재 Wi-Fi 또는 셀룰러 네트워크를 그대로 유지하세요. 테스트가 끝난 뒤 네트워크를 전환해야 네트워크 변화와 설정 오류를 혼동하지 않을 수 있습니다.
Home에서 서버 선택 및 Global Routing 설정
Home 목록에는 여러 서버가 동시에 표시될 수 있습니다. 하나를 탭하면 선택 표시가 현재 연결 대상으로 지정되었음을 나타냅니다. 지연 시간은 해당 테스트 시점의 응답만 보여 주므로 전체 연결 확인을 대신할 수 없습니다. 지연 시간이 표시되지 않아도 항목을 바로 삭제하지 말고 프로토콜 설정을 확인한 뒤 Connectivity Test를 실행하세요.
서버를 선택한 다음 Global Routing을 확인하세요. 이 설정은 트래픽을 Config 규칙으로 처리할지, 현재 프록시로 모두 보낼지, 전부 직접 연결할지, 또는 Scene에 따라 전환할지를 결정합니다. 처음 일상 연결을 확인할 때는 Config를 우선 사용하세요. 서버 연결과 규칙 파일의 작동 여부를 함께 확인할 수 있습니다. 규칙 때문에 대상 주소가 프록시를 거치지 않는다고 의심되면 Proxy로 잠시 전환해 비교한 뒤 다시 되돌리세요.
구성(Config)
권장현재 Config의 규칙을 위에서부터 순서대로 매칭하고, 일치하면 해당 정책을 실행합니다. 앞선 규칙에 매칭되지 않은 트래픽은 FINAL이 처리합니다.
적합한 경우: 기본 연결을 처음 완료한 후 일상적인 분기 동작을 확인할 때
프록시(Proxy)
트래픽을 현재 선택한 프록시 서버로 보내며 일반적인 분기 결과에 따라 직접 연결하지 않습니다. 문제가 규칙에서 비롯되었는지 판단할 때 사용할 수 있습니다.
적합한 경우: Config 규칙 매칭 문제를 임시로 배제할 때
직접 연결(Direct)
트래픽이 현재 서버를 거치지 않고 대상에 직접 연결됩니다. 이 상태에서는 전체 스위치가 켜져 있어도 프록시 서버가 작동한다고 판단할 수 없습니다.
적합한 경우: 로컬 네트워크에서 대상에 직접 접속할 수 있는지 비교할 때
시나리오(Scene)
미리 설정한 네트워크 시나리오에 따라 해당 정책을 사용합니다. 먼저 시나리오 조건과 조건별 동작을 확인해야 합니다.
적합한 경우: 기본 연결을 완료하고 네트워크 시나리오를 설정한 사용자
Config의 규칙 순서는 결과에 직접 영향을 줍니다. Shadowrocket은 위에서 아래로 내려가며 처음 일치하는 규칙을 찾고, 매칭되면 이후 규칙을 계속 확인하지 않습니다. 아래 문법은 매칭 관계를 설명하기 위한 예시일 뿐이며 사용자의 기존 전체 설정을 그대로 교체해서는 안 됩니다.
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX는 도메인 접미사로 매칭합니다. 예를 들어 하위 도메인도example.com에 매칭될 수 있습니다.IP-CIDR은 IP 주소 범위로 매칭합니다. 위 예시의 사설 주소 대역은 Direct로 유지됩니다.GEOIP는 대상 IP의 지리 데이터로 매칭하며, 결과는 현재 설정에서 사용하는 데이터에 따라 달라집니다.FINAL은 앞선 규칙에 매칭되지 않은 트래픽을 처리하며, 일반적으로 규칙 마지막에 배치합니다.
전체 스위치를 켜고 시스템 VPN 승인 완료
서버와 Global Routing을 확인한 뒤 Home에서 연결 전체 스위치를 켜세요. 시스템 VPN 구성을 처음 생성할 때 iPhone 또는 iPad에 시스템 승인 안내가 표시됩니다. 시스템 화면의 안내를 따르고 기기 암호, Face ID 또는 Touch ID로 확인하세요. 이 승인은 Apple 시스템이 관리하며, Shadowrocket은 허가를 받아야 연결 구성을 만들 수 있습니다.
승인 후 Home으로 돌아와 스위치 상태를 확인하세요. 스위치가 즉시 다시 꺼지면 빠르게 연속으로 재시도하지 말고 먼저 앱에 표시된 오류를 확인하세요. 포트, 비밀번호, UUID, 인증서 이름, TLS와 Transport 중 하나라도 일치하지 않으면 연결 수립 단계에서 종료될 수 있습니다.
연결 전 상태
- 페이지
- Home
- 서버
- 항목 앞에 선택 표시가 있음
- 라우팅
- Global Routing이 Config로 설정됨
- 네트워크
- Wi-Fi 또는 셀룰러 네트워크가 정상적으로 인터넷에 연결됨
이 네 가지 항목을 갖추면 반복 가능한 첫 테스트 조건을 만들 수 있습니다.
시스템 승인
- 실행 방식
- 처음 Home 전체 스위치를 켤 때
- 승인 대상
- 시스템 VPN 구성
- 확인 방식
- 기기에 표시되는 안내에 따라 인증 완료
- 완료 후
- Home으로 돌아가 연결 상태 확인
승인을 거부하면 시스템 VPN 구성을 만들 수 없습니다. 스위치를 다시 켜고 시스템 안내에 따라 처리해야 합니다.
- 먼저 Home에서 서버 선택 표시를 그대로 유지하고 현재 Global Routing 상태를 기록하세요.
- 전체 스위치를 켜고 시스템에 실제로 표시되는 VPN 구성 요청만 처리하세요.
- 승인이 완료되면 연결 상태가 안정될 때까지 기다리고 짧은 시간 안에 스위치를 반복해서 켜고 끄지 마세요.
- 연결이 자동으로 끊기면 먼저 오류 안내를 확인한 다음 서버 프로토콜 필드를 점검하세요.
- 스위치가 연결 상태를 유지하면 Connectivity Test를 실행하세요. 스위치 상태만으로 최종 결론을 내리지 마세요.
Connectivity Test로 연결 상태 확인
전체 스위치를 켠 상태에서 Home으로 이동해 Connectivity Test를 실행하세요. 이 단계는 실제 연결성 검사를 수행하므로 서버 목록에 표시된 단 한 번의 지연 시간보다 현재 연결 상태를 더 잘 보여 줍니다. 테스트 중에는 앱을 전면에 둔 채 각 검사 결과가 반환될 때까지 기다리고, 테스트 중에는 Global Routing을 전환하지 마세요.
결과는 테스트 대상을 함께 고려해 판단해야 합니다. 소요 시간이 표시되면 일반적으로 제한 시간 안에 응답을 받았다는 뜻이며, Timeout은 대기 시간 안에 완료되지 않았다는 뜻입니다. 시간 초과는 서버에 연결할 수 없거나, 프로토콜 필드가 잘못되었거나, DNS 확인에 실패했거나, 현재 네트워크가 제한되었거나, Config 규칙의 경로가 예상과 다르기 때문에 발생할 수 있습니다. Timeout 하나만으로 구체적인 원인을 확정할 수는 없습니다.
테스트 결과 있음
- 진입 경로
- Home → Connectivity Test
- 현상
- 테스트 항목에 소요 시간 또는 성공 상태가 표시됨
- 다음 단계
- 확인이 필요한 실제 대상에 접속
- 재확인
- Config로 돌아가 다시 테스트
테스트 성공은 해당 테스트 요청이 완료되었다는 뜻입니다. 실제 대상과 규칙 매칭 결과를 함께 확인해야 합니다.
테스트 시간 초과
- 첫 번째
- 서버가 계속 선택되어 있는지 확인
- 두 번째
- Config와 Proxy를 임시로 비교
- 세 번째
- Address, Port 및 인증 필드 확인
- 네 번째
- 정상적으로 인터넷에 연결되는 원래 네트워크로 돌아가 재테스트
한 번에 변수 하나만 바꿔야 전후 결과를 비교해 문제가 발생한 계층을 찾을 수 있습니다.
지연 시간 테스트와 실제 연결 구분
- 서버 목록에 밀리초 단위 숫자가 표시되면 해당 지연 탐색에서 응답을 받았다는 뜻이지 모든 대상에 접속할 수 있다는 뜻은 아닙니다.
- 서버 목록에 Timeout이 표시되면 먼저 현재 네트워크와 서버 설정을 확인하세요. 문제를 바로 규칙 파일 탓으로 돌리지 마세요.
- Connectivity Test는 성공했지만 특정 도메인에 접속할 수 없다면 해당 도메인이 어떤
DOMAIN또는DOMAIN-SUFFIX규칙에 매칭되었는지 확인하세요. - Proxy는 작동하지만 Config가 작동하지 않는다면 규칙 순서, 정책 이름,
FINAL의 처리 방향을 중점적으로 확인하세요. - Direct는 작동하지만 Proxy에서 시간 초과가 발생한다면 현재 선택한 서버와 프로토콜 필드를 중점적으로 확인하세요.
예를 들어 Config에서 특정 도메인에 접속할 수 없지만 Proxy에서는 같은 도메인 테스트가 완료된다면, 서버 자체는 응답할 수 있으므로 Config의 규칙 매칭을 중심으로 점검해야 합니다. 더 앞에 있는 DOMAIN-SUFFIX, GEOIP 또는 IP-CIDR 규칙이 요청을 Direct로 보내는지 확인하고, 정책 이름이 설정에 정의된 이름과 일치하는지도 확인하세요.
현상별 첫 연결 실패 점검
첫 연결에 실패했을 때 가장 효과적인 방법은 변수를 고정하는 것입니다. 같은 네트워크, 같은 서버, 같은 테스트 대상을 유지하고 한 번에 하나의 설정만 조정하세요. 먼저 Home의 선택 상태를 확인하고, 다음으로 전체 스위치가 유지되는지 확인한 뒤, Config·Proxy·Direct에서 Connectivity Test 결과를 비교하세요.
스위치를 누르면 바로 다시 꺼질 때는 어떻게 하나요?
먼저 Shadowrocket에 현재 표시된 오류를 확인한 다음 서버 상세 화면에서 Address, Port, Password 또는 UUID를 점검하세요. Shadowsocks는 Method도 확인해야 하며, VMess와 VLESS는 UUID, TLS, Transport를 확인해야 합니다. Trojan은 Password와 TLS를, Hysteria2는 포트·인증 정보·TLS 이름을, WireGuard는 키·Address·Peer 설정을 확인하세요.
서버 앞에 선택 표시가 없으면 어떻게 하나요?
Home에서 사용할 서버 항목을 직접 탭하고 항목 앞에 선택 표시가 나타난 뒤 전체 스위치를 켜세요. 목록이 비어 있으면 먼저 기존 Subscribe를 새로 고치고, 새로 고침에 실패하면 구독 주소가 완전한지 확인하세요.
스위치는 연결되어 있는데 웹 페이지가 열리지 않으면 어떻게 하나요?
먼저 Global Routing이 Direct에 머물러 있지 않은지 확인한 다음 Home → Connectivity Test를 실행하세요. Proxy에 결과가 있지만 Config가 실패하면 규칙 순서와 FINAL을 확인하고, 둘 다 시간 초과라면 서버 설정과 현재 네트워크를 점검하세요.
구독 업데이트 후 서버가 갑자기 바뀌면 어떻게 하나요?
업데이트로 목록 이름, 정렬 또는 항목 내용이 바뀔 수 있습니다. 선택 표시가 가리키는 서버를 다시 확인하고, 업데이트된 Type, 포트 및 전송 설정이 서비스 제공업체가 안내한 현재 구성과 일치하는지 점검하세요.
셀룰러 네트워크로 전환한 후 연결되지 않으면 어떻게 하나요?
서버 설정은 바꾸지 않은 채 먼저 Connectivity Test를 실행한 다음 원래 Wi-Fi로 돌아가 비교하세요. 한 네트워크에서만 실패한다면 Settings → On Demand에 해당 네트워크 유형을 대상으로 한 Connect 또는 Disconnect 조건이 있는지 확인하세요.
프로토콜 필드를 서로 섞어 입력하지 마세요
Add Server의 Type마다 사용하는 필드가 다릅니다. Shadowsocks의 주요 필드는 Address, Port, Password, Method이며, VMess와 VLESS는 일반적으로 UUID와 TLS, WebSocket 같은 Transport 설정을 사용합니다. Trojan은 Password와 TLS 관련 필드가 중요하고, Hysteria2는 UDP와 QUIC을 기반으로 하므로 인증 정보 외에 TLS 이름도 확인해야 합니다. WireGuard는 로컬 개인 키, Address, DNS와 Peer의 공개 키 및 Endpoint를 사용합니다. 필드 이름이 비슷하다고 서로 바꿔 쓸 수 있는 것은 아닙니다.
| 현상 | 우선 확인 | 비교 방법 |
|---|---|---|
| 스위치가 즉시 다시 꺼짐 | 프로토콜 인증 및 전송 필드 | Type, Address, Port 및 인증 정보 확인 |
| Proxy 성공, Config 실패 | 규칙 매칭 및 정책 이름 | DOMAIN-SUFFIX, GEOIP, IP-CIDR, FINAL 순서 확인 |
| Wi-Fi 성공, 셀룰러 실패 | 네트워크 조건 및 On Demand | 서버를 그대로 두고 두 네트워크에서 각각 테스트 |
| 업데이트 후 연결할 수 없음 | 현재 선택된 서버 | 항목을 다시 선택하고 업데이트된 설정 재확인 |
첫 연결 완료 후 고정 점검 순서
Connectivity Test가 결과를 반환하고 실제 대상에 예상대로 접속할 수 있다면 점검 순서를 고정해 두세요. 이후 연결 문제가 발생하면 먼저 Home의 서버 선택 상태를 확인하고, 다음으로 Global Routing을 확인한 뒤 연결성을 테스트하고, 마지막에 프로토콜 설정이나 규칙을 수정하세요. 이렇게 하면 여러 위치를 동시에 변경해 비교 기준을 잃는 일을 피할 수 있습니다.
On Demand는 이후 자동화 설정에 해당하며 처음 수동으로 연결할 때 필수는 아닙니다. Wi-Fi 또는 셀룰러 네트워크에 따라 자동 연결하려면 Settings → On Demand에서 조건을 확인하고 설정하세요. 활성화하기 전에 안정적인 수동 연결을 한 번 완료하고, 각 조건이 Connect, Disconnect 또는 기타 예상 동작과 일치하는지 확인해 자동 동작이 문제 해결을 방해하지 않도록 하세요.
일상적인 연결 순서
- 첫 번째 단계
- Home에서 서버 선택 확인
- 두 번째 단계
- Global Routing에서 Config 선택
- 세 번째 단계
- 전체 스위치 켜기
- 네 번째 단계
- Connectivity Test 실행
- 다섯 번째 단계
- 실제 대상 확인
순서를 고정해 두면 문제가 어느 단계에서 발생했는지 더 쉽게 판단할 수 있습니다.
On Demand
- 진입 경로
- Settings → On Demand
- 전제 조건
- 수동 연결 검증 완료
- 조건
- Wi-Fi 또는 셀룰러 네트워크에 따라 매칭
- 동작
- 기존 규칙에 따라 연결 동작 실행
- 재확인
- 네트워크 전환 후 실제 상태 확인
자동 연결 조건은 하나씩 테스트해야 하며 처음 수동으로 점검할 때 동시에 활성화하지 마세요.
- 구독 업데이트 후 목록 내용과 정렬이 바뀔 수 있으므로 현재 서버를 다시 확인하세요.
- Config를 수정한 후 먼저 규칙 문법을 확인하고 Connectivity Test를 실행하세요.
- Wi-Fi와 셀룰러 네트워크를 전환할 때 서버는 그대로 유지하고 같은 대상을 사용해 비교하세요.
- 문제를 해결할 때 현재 Global Routing이 Config, Proxy, Direct 또는 Scene 중 무엇인지 기록하세요.
- 한 번의 지연 시간 수치만으로 지속적인 사용 가능 여부를 판단하지 말고 현재 네트워크에서 실제 테스트한 결과를 기준으로 삼으세요.