Shadowrocket 사용법
기존 구독 가져오기 → Global Routing → 연결 승인 → 작동 확인 → 실패 원인 점검. 먼저 다시 확인할 수 있는 연결을 한 번 완료한 뒤 규칙과 자동 연결 설정을 조정하세요.
1단계: Add Server 및 Subscribe로 가져오기
Shadowrocket을 열고 먼저 Home으로 이동합니다. 이 화면에서 기존 서버를 확인하고, 사용할 항목을 선택하고, 연결을 제어할 수 있습니다. 처음 사용할 때는 보유한 정보가 서버 목록을 업데이트하는 구독 URL인지, 프로토콜·주소·포트·인증 정보가 포함된 서버 정보인지 확인하세요. 두 정보는 입력 위치가 다릅니다. 구독 URL을 서버 주소로 입력하거나 일반 웹 주소를 Subscribe에 입력하지 마세요.
기존 구독이 있는 경우: Subscribe를 선택하고 전체 URL 입력
Home 오른쪽 상단의 추가 버튼을 누르고 Add Server를 연 다음 Type에서 Subscribe를 선택합니다. 입력 화면으로 돌아와 서비스 제공자에게 받은 구독 링크 전체를 URL 필드에 붙여 넣으세요. 비고에는 출처를 알아볼 수 있도록 원하는 이름을 입력할 수 있습니다. 저장하기 전에 URL의 앞뒤가 모두 포함됐는지 확인하세요. 특히 물음표 뒤 매개변수를 빠뜨리지 말고, 메시지에 포함된 공백이나 줄바꿈, 설명 문구는 함께 입력하지 마세요.
아래 주소는 URL 형식만 보여 주는 예시이며 실제 서버를 가져오는 데 사용할 수 없습니다. 실제 구독 URL에는 접근 인증 정보가 포함되는 경우가 많으므로 비밀번호처럼 취급하세요. 공개 스크린샷이나 채팅방, 문제 설명에 올리지 마세요.
https://example.com/sub?token=xxxx
저장 후 Home으로 돌아가 구독을 불러올 때까지 기다린 다음 해당 그룹에 서버 항목이 표시되는지 확인합니다. 구독을 저장했다고 해서 목록 가져오기가 완료된 것은 아닙니다. 그룹이 비어 있다면 URL이 구독 콘텐츠를 가리키는지, 구독이 유효한지, 로컬 네트워크에서 해당 주소에 접속할 수 있는지 확인하세요. 기존 그룹을 새로 고치려면 그룹의 작업 메뉴에서 업데이트한 뒤 목록의 변경 사항을 확인합니다. 같은 구독을 계속 새로 만들면 그룹이 중복되어 현재 사용하는 항목을 구분하기 어려울 수 있습니다.
기존 서버 정보가 있는 경우: 프로토콜에 맞춰 항목별 입력
단일 서버 정보가 있다면 Add Server의 Type에서 실제 프로토콜을 선택한 뒤 해당 필드를 입력합니다. Shadowsocks, VMess, VLESS, Trojan 등은 인증 방식이 서로 다르므로 본인이 받은 원본 정보를 기준으로 입력하세요. 필드가 비어 있다고 임의로 값을 추가해서는 안 됩니다. 서버 주소에는 보통 호스트 이름이나 IP만 입력하고 포트는 별도로 입력합니다. 비밀번호, UUID, 암호화 방식, 전송 방식, TLS 관련 설정은 서버 측 정보와 일치해야 합니다.
SNI, Host, 전송 경로 등의 필드가 있다면 제공받은 정보를 각각 확인하세요. 서버 주소와 값이 다를 수 있으므로 같은 도메인을 모든 필드에 무조건 복사하지 마세요. 오류를 없애려고 인증서 확인 설정을 임의로 낮추지 마세요. 입력을 마치면 저장하고 Home으로 돌아가 항목이 표시되는지 확인한 뒤 사용할 서버를 선택합니다. 서버 공유 링크만 받은 경우 앱에서 해당 링크를 가져오는 기능을 사용하세요. QR 코드 정보는 Scan QR Code로 읽을 수 있습니다. 가져온 뒤에도 각 필드를 확인해야 합니다.
이 단계까지 마치면 Home에서 구독 그룹과 그 안의 서버를 확인하거나 직접 저장한 개별 항목을 볼 수 있어야 합니다. 우선 여러 항목의 이름을 한꺼번에 바꾸거나 그룹을 합치거나 자동 전환을 설정하지 마세요. 다음 단계에서 확인할 수 있도록 정보가 분명한 서버 하나를 남겨 둡니다. 프로토콜 필드의 의미는 용어 빠른 참조에서 확인하세요. 구독은 서버 정보를 가져오고 업데이트하는 기능이며 Config는 연결 정책을 설정하는 기능으로, 서로 다른 내용입니다.
2단계: Global Routing 모드 선택
서버를 저장한 뒤 Home에서 Global Routing을 엽니다. 여기서 연결 요청의 처리 방식을 결정하므로 현재 선택된 서버만 보고 모든 요청의 경로를 판단할 수는 없습니다. 모드는 Config, Proxy, Direct 세 가지입니다. 연결을 켜기 전에 모드를 확인하면 이후 테스트 결과를 명확하게 해석할 수 있습니다.
- Config: 현재 활성 구성의 규칙에 따라 정책을 선택합니다. 요청마다 PROXY, DIRECT 또는 REJECT가 적용될 수 있으므로 서버를 선택했다고 해서 모든 요청이 해당 서버를 통과하는 것은 아닙니다.
- Proxy: 요청을 현재 프록시 정책으로 처리합니다. 선택한 서버로 실제 접속할 수 있는지 잠시 확인할 때 유용하지만, 규칙에 따른 요청 처리가 올바른지 검증하는 용도로 대신 사용할 수는 없습니다.
- Direct: 요청을 직접 연결합니다. 연결 스위치가 켜져 있어도 요청이 선택한 서버를 통과한다고 볼 수 없습니다.
규칙을 사용하려면 먼저 Config 화면으로 이동해 구성이 어떤 것들이 있는지 확인하고 실제로 활성화된 구성을 확인합니다. 구성 파일을 목록에 추가하는 것만으로는 충분하지 않으며, 실제로 선택되어 있어야 합니다. 구성을 열어 규칙을 확인할 때는 용도와 출처를 먼저 살펴보세요. 첫 연결을 완료하려고 내용을 이해할 수 없는 구성 전체를 가져오지 마세요. 구성에서 참조하는 정책도 기존 서버나 정책 설정에 연결되어 있어야 합니다. 그렇지 않으면 규칙이 올바르더라도 의도와 다른 결과가 나올 수 있습니다.
새로 가져온 서버라면 기존 Global Routing 설정을 먼저 기록해 둔 다음, 기본 연결을 확인하기 위해 잠시 Proxy를 사용할 수 있습니다. 테스트가 끝난 뒤 규칙에 따라 요청을 분배하려면 Config로 되돌리고 대상 요청을 다시 테스트하세요. 이 순서대로 진행하면 서버 연결 여부와 규칙 처리 결과를 구분해 두 가지 문제를 함께 점검하는 일을 줄일 수 있습니다.
이 페이지에서는 규칙 작성법 전체를 다루지 않습니다. Global Routing이 처리 모드를 정하고 Config의 규칙이 해당 모드에서 요청을 판단한다고 이해하면 됩니다. DOMAIN-SUFFIX, IP-CIDR 또는 FINAL을 설정해야 한다면 규칙 매뉴얼을 읽고 위에서 아래로 일치 여부를 확인하는 순서를 먼저 익힌 다음 구성을 수정하세요. 수정 전에는 기존 구성을 보관해 서버, 규칙, DNS를 처음부터 한꺼번에 바꾸지 않도록 합니다.
3단계: Home에서 연결 켜기
Home으로 돌아와 선택된 서버와 앞에서 정한 Global Routing 모드를 확인합니다. 구독 목록에는 이름이 비슷한 항목이 여러 개 있을 수 있으므로 이번에 테스트할 항목을 선택한 다음 화면의 연결 스위치를 켭니다. 구성에서 정책을 선택하는 경우에는 목록 이름만 보고 판단하지 말고 해당 정책이 실제로 가리키는 대상도 확인하세요.
처음 연결할 때 iPhone이나 iPad에 VPN 구성을 추가할지 묻는 시스템 승인 메시지가 표시될 수 있습니다. 이 단계는 앱이 시스템 네트워크 기능을 사용해 연결을 설정하는 데 필요한 확인 절차이며, 구독 계정 로그인 화면이 아닙니다. 메시지에 Shadowrocket이 표시되는지 확인하고 시스템 안내에 따라 허용한 뒤, 필요한 경우 기기 인증을 완료하세요. 승인은 시스템 화면에서 처리합니다. 기기 잠금 암호를 서버 비밀번호나 구독 URL 필드에 입력하지 마세요.
승인 후 Shadowrocket으로 돌아와 연결 스위치와 상태가 연결됨으로 유지되는지 확인합니다. 앞서 승인을 취소했다면 연결 스위치를 다시 켜고 안내에 따라 진행하세요. 기기 관리 정책으로 제한되거나 시스템에서 구성 생성을 허용하지 않았거나 다른 VPN 연결이 사용 중이라면 시스템 안내를 확인하고 제한 원인을 살펴보세요. 문제를 가리기 위해 스위치를 빠르게 연속해서 켜고 끄지 마세요.
시스템에 VPN 연결됨으로 표시되어도 연결이 설정됐다는 뜻일 뿐, 대상 서버와 모든 웹사이트를 사용할 수 있다는 보장은 아닙니다. 상태 아이콘의 위치는 기기에 따라 다를 수 있으므로 다음 단계에서 앱 안의 상태를 확인하고 실제 요청을 보내야 합니다. 첫 확인 중에는 수동 연결을 유지하고 On Demand 설정은 잠시 미뤄 두세요. 네트워크가 바뀔 때 자동으로 작동해 확인을 방해할 수 있습니다. 기본 연결이 정상임을 확인한 뒤 평소 네트워크 사용 방식에 맞춰 필요 시 연결을 설정하세요.
4단계: Connectivity Test 및 실제 접속 확인
연결을 켠 뒤 Home에서 Connectivity Test를 실행해 사용하려는 서버에 연결할 수 있는지 확인합니다. 다른 그룹이나 이전 기록이 아니라 현재 항목을 대상으로 테스트하는지 확인하세요. 테스트 결과는 문제 범위를 좁히는 데 도움이 되지만, 실제 웹 요청과 테스트 방식은 완전히 같지 않습니다. 한 번 성공했다고 모든 접속이 정상이라고 판단하거나 지연 시간만으로 사용 경험을 결정하지 마세요.
그런 다음 브라우저로 전환해 익숙하고 내용을 확인할 수 있는 웹페이지를 열어 새로고침한 뒤 페이지 안의 다른 항목도 열어 봅니다. 이미 로드된 페이지는 캐시에서 표시됐을 수 있으므로 유일한 확인 기준으로 삼지 마세요. 먼저 안정적인 사이트 몇 곳만 테스트하고 불필요한 요청이 늘어나지 않도록 여러 앱을 한꺼번에 열지 마세요. 한 사이트만 실패한다면 나머지 테스트 결과를 함께 살펴보고 전체 연결이 끊겼다고 성급히 판단하지 마세요.
Config 모드에서는 요청이 예상한 정책으로 처리됐는지도 확인해야 합니다. Shadowrocket으로 돌아가 Data에서 확인할 수 있는 연결 기록을 살펴보고 요청 도메인, 발생 시간, 기록에 표시된 정책 정보를 대조하세요. 명확한 요청을 한 번 보낸 다음 해당 기록을 확인하면 백그라운드 요청이 많이 쌓인 상태에서 추측하는 것보다 판단하기 쉽습니다. 표시되는 기록 항목은 현재 앱 화면을 기준으로 확인하세요.
요청에 DIRECT가 적용됐다면 웹페이지가 열려도 프록시 서버가 작동한다는 증거가 되지 않습니다. REJECT가 적용됐다면 페이지가 열리지 않는다는 이유만으로 서버 설정 오류라고 단정할 수도 없습니다. 프록시 연결 자체를 확인하려면 잠시 Proxy로 전환해 같은 대상을 다시 테스트한 다음 원래 모드로 되돌리세요. Proxy에서는 정상이고 Config에서는 문제가 있다면 구독을 반복해서 가져오기보다 구성과 규칙을 먼저 확인하세요.
마지막으로 다시 확인할 수 있는 테스트를 진행합니다. 연결을 끈 상태에서 로컬 네트워크를 확인하고, 다시 켠 뒤 같은 서버와 모드, 같은 웹페이지로 테스트해 차이를 기록하세요. 계정 로그인 상태나 콘텐츠 지역, 특정 페이지의 안내만을 유일한 판단 기준으로 삼지 마세요. 계정이나 캐시의 영향을 받을 수 있습니다. 현재 선택된 항목, 요청에 적용된 정책, 실제 접속 결과를 설명할 수 있어야 이번 확인을 마친 것입니다.
5단계: 실패한 단계별로 점검
연결에 실패하면 먼저 어느 단계에서 막혔는지 확인하세요. 구독을 가져오지 못했는지, 서버 테스트에 실패했는지, 시스템 연결이 설정되지 않았는지, 연결 후 특정 요청에 문제가 있는지 구분합니다. 한 번에 조건 하나만 바꾸고, 변경 후 바로 다시 테스트하세요. 네트워크와 서버, 구성을 동시에 바꾸면 성공하거나 실패해도 원인을 파악할 수 없습니다. 아래 순서대로 가까운 원인부터 확인하고 원인을 찾으면 다른 항목은 바꾸지 않아도 됩니다.
먼저 로컬 네트워크와 구독 가져오기 확인
먼저 Shadowrocket 연결을 잠시 끄고 브라우저에서 로컬 네트워크가 정상적으로 작동하는지 확인합니다. 공용 Wi-Fi는 먼저 네트워크 로그인이 필요할 수 있습니다. 다른 네트워크로 바꾼 뒤 결과가 달라지면 그 차이를 기록하고 같은 서버로 다시 테스트하세요. 로컬 네트워크에 연결되지 않은 상태에서 구독을 반복해서 새로 고치지 마세요.
Subscribe를 저장했는데 항목이 표시되지 않으면 URL 전체가 올바른지, 계정 페이지 주소를 잘못 사용하지 않았는지, 구독이 아직 유효한지 다시 확인하세요. 목록은 있지만 업데이트에 실패한다면 현재 사용할 수 있는 정보를 보존하고 업데이트 오류부터 확인하세요. 그룹 전체를 먼저 삭제하지 마세요. 구독 업데이트는 서버 정보를 다시 가져오는 작업으로, 서버마다 연결할 수 있다는 뜻도 아니고 현재 사용할 항목이 자동으로 전환된다는 뜻도 아닙니다.
이어서 프로토콜 설정과 시스템 시간 확인
Connectivity Test가 계속 실패하면 Type, 주소, 포트, 인증 필드를 하나씩 대조한 다음 TLS, SNI, 전송 설정을 확인하세요. 서버 이름으로 프로토콜을 추측하지 말고 본인이 받은 원본 서버 정보를 확인하세요. 구독을 업데이트한 뒤에도 문제가 계속되면 업데이트된 항목을 선택했는지도 확인합니다. 포트나 비밀번호, 인증서 설정을 임의로 바꿔 가며 해결하려고 하지 마세요.
기기의 시스템 시간이 정확한지 확인하고 필요한 경우 시스템 설정에서 날짜와 시간 설정을 살펴보세요. 시간 차이는 인증서 유효 기간 확인이나 일부 인증 절차에 영향을 줄 수 있습니다. 테스트 시간 초과는 현재 네트워크에서 서버까지의 경로나 서버 상태 때문일 수도 있으므로 한 번의 결과만으로 원인을 특정할 수 없습니다. 동일한 설정으로 다른 네트워크에서 다시 테스트하면 문제 범위를 구분하는 데 도움이 됩니다.
연결은 됐지만 문제가 있다면 모드와 활성 구성 확인
연결 스위치는 켜져 있지만 웹페이지 결과가 예상과 다르면 먼저 Global Routing으로 돌아갑니다. Direct에 그대로 설정되어 있지 않은지, 임시 테스트 후 Config로 복원하는 것을 잊지 않았는지 확인하세요. 그런 다음 Config에서 활성 파일을 확인하고 대상 요청에 적용된 정책을 살펴봅니다. 일부 도메인에만 문제가 있다면 규칙과 도메인 이름 확인을 함께 살펴보고 모든 설정을 즉시 초기화하지 마세요.
구성 문제로 의심되면 원본 파일을 보관하고 용도를 아는 구성이나 임시 Proxy 모드로 비교 테스트하세요. 같은 서버와 대상을 사용하고 확인이 끝나면 원래 상태로 되돌립니다. 구성 항목, 정책의 의미와 우선순위는 Shadowrocket 규칙 및 구성 참고서에서 확인하세요. Subscribe, Config, Connectivity Test의 차이는 용어 빠른 참조에서 살펴볼 수 있습니다.
결과를 기록한 뒤 추가 조정
원인을 찾기 어렵다면 실패가 발생한 구체적인 단계, 현재 네트워크 종류, Global Routing 모드, 테스트 대상, 화면에 표시된 오류 메시지를 정리하세요. 서버 상태를 서비스 제공자에게 확인할 때는 문제를 파악하는 데 필요한 정보만 전달하고 구독 URL의 인증 정보, 비밀번호, 개인 정보는 가리세요. 전체 구독 링크를 공개된 문의에 붙여 넣지 마세요.
연결이 안정적으로 되는 것을 확인한 뒤 본인의 규칙, 구독 업데이트 방식, On Demand 설정을 하나씩 추가하세요. 조정할 때마다 되돌릴 수 있는 구성을 보관하고 같은 대상으로 다시 테스트합니다. 나중에 문제가 생기면 모든 항목을 삭제하고 처음부터 시작하기보다 이 페이지의 “가져오기 → 모드 → 연결 → 확인” 순서로 되짚는 편이 원인을 찾기 쉽습니다.