Shadowrocket 사용법
추가, 모드 선택, 연결, 확인, 문제 해결의 5단계를 안내합니다. 먼저 재현 가능한 연결을 한 번 완료한 뒤 Rule과 자동 연결 설정을 차례로 조정합니다.
스크린샷은 App Store 공식 이미지로, 화면과 입력 항목을 확인하기 위한 자료입니다. 그대로 따라 입력해야 하는 설정 예시는 아닙니다. 실제 메뉴와 항목은 기기에 설치된 앱의 표시 내용을 기준으로 합니다.
Add Server: 서버 추가 또는 기존 구독 가져오기
먼저 보유한 정보가 단일 서버 정보인지, 서버 목록을 불러오는 구독 링크인지 확인합니다. 둘 다 추가 메뉴에서 시작하지만 선택할 Type은 다릅니다.
서버 정보가 있는 경우: 실제 프로토콜에 맞게 입력
Home 하단에서 Add Server를 열고 먼저 Type을 확인합니다. 보유한 정보에 명시된 프로토콜을 Type으로 선택한 다음 Host, Port와 해당 프로토콜에 필요한 인증 정보를 입력합니다. 몇몇 항목이 비슷해 보여도 다른 Type을 선택하지 마세요. 프로토콜이 일치하지 않으면 저장되더라도 연결되지 않을 수 있습니다.
예를 들어 Shadowsocks의 경우 Host에는 서버 주소, Port에는 포트 번호를 입력하고 Password와 Method는 서버 측 설정과 정확히 일치시켜야 합니다. 다른 프로토콜은 인증 방식이 다르거나 TLS, 전송 방식 등의 추가 매개변수가 필요할 수 있으므로 보유한 정보를 항목별로 확인해 입력하세요. Host에는 일반적으로 호스트 이름이나 주소만 입력합니다. 구독 링크 전체를 Host에 붙여 넣거나 임의로 경로를 추가하지 마세요.
입력 후 화면의 저장 기능을 사용하고 Home으로 돌아와 SERVER 목록에 새 항목이 있는지 확인합니다. 이름은 항목을 구분하기 위한 메모일 뿐 주소와 포트를 대신하지 않습니다. 여러 항목을 추가할 예정이라면 용도를 구분할 수 있는 이름을 사용해 이후 테스트에서 잘못 선택하지 않도록 하세요.
구독 링크가 있는 경우: Subscribe 선택
Add Server의 Type에서 Subscribe를 선택합니다. 해당 화면에서 보유한 구독 링크 전체를 URL에 입력하고 알아보기 쉬운 이름을 설정한 뒤 저장합니다. 링크의 경로와 쿼리 매개변수는 구독을 식별하는 데 사용될 수 있으므로 복사할 때 전체 내용을 유지하세요. 특히 끝부분이 잘리지 않았는지, 공백이나 줄바꿈이 포함되지 않았는지 확인합니다.
Home으로 돌아와 해당 구독 그룹에 서버 항목이 표시되는지 확인합니다. 목록이 보이지 않으면 먼저 업데이트 실패 안내가 있는지 확인한 뒤 구독 그룹의 업데이트 기능으로 다시 시도합니다. 구독을 읽어오는 데 성공했다는 것은 목록을 가져왔다는 뜻일 뿐, 목록의 각 서버가 사용 가능하다는 뜻은 아닙니다. 각 서버는 다음 단계에서 테스트해야 합니다. 구독 업데이트는 Config에서 활성화된 Rule 파일을 교체하는 작업도 아닙니다.
개별 공유 링크나 QR 코드는 앱에서 지원하는 해당 가져오기 기능을 사용하세요. Scan QR Code는 기존 QR 코드를 스캔하는 기능이고, Import from Cloud JSON은 해당 Cloud JSON 정보를 가져오는 기능으로, 모든 구독에 사용할 수 있는 일반 가져오기 메뉴가 아닙니다. 가져온 뒤에도 항목을 열어 Type과 주요 매개변수를 확인하고 다음 단계에서 라우팅 모드를 선택하세요.
Global Routing: Config, Proxy 또는 Direct 선택
Global Routing은 요청을 처리할 방식을 결정하며 서버 정보를 입력하는 기능은 아닙니다. 현재 모드를 이해한 다음 연결을 시작하세요.
Home에서 Global Routing을 열어 현재 선택을 확인합니다. 기본 모드는 Config, Proxy, Direct입니다. 선택한 뒤 Home으로 돌아와 Global Routing 옆에 예상한 값이 표시되는지 확인하세요. 이전에 사용한 모드를 기억하는 것만으로 판단하지 마세요. 문제 해결 과정에서 설정이 바뀌었을 수 있습니다.
Config: 현재 구성에 따라 요청 경로 결정
Config는 Rule에 따라 트래픽을 분기할 때 사용합니다. 현재 활성화된 구성의 Rule 등 설정에 따라 요청에 PROXY, DIRECT 또는 다른 정의된 정책을 적용합니다. 이 모드를 사용하려면 먼저 하단의 Config 페이지에서 현재 사용 중인 구성을 확인하고 Rule을 살펴보세요. Home에서 구독을 가져온 것만으로 Rule이 예상대로 설정되었다고 볼 수는 없습니다.
공식 스크린샷의 Config 편집 화면에는 General, Rule, Hosts, URL Rewrite, HTTPS Decryption 섹션이 있습니다. 처음 사용할 때는 현재 구성과 Rule만 확인하면 됩니다. 연결을 완료하기 위해 모든 섹션을 수정할 필요는 없습니다. Add Rule은 규칙을 추가하는 메뉴입니다. 매칭 대상과 정책의 의미를 잘 모른다면 기존 구성을 유지해 가져오기 문제와 Rule 문제를 혼동하지 않도록 하세요.
Proxy: 짧은 비교 테스트에 사용
Proxy는 일반 요청을 선택한 프록시 경로로 보내며, 문제 해결 중 Config와 잠시 비교할 때 유용합니다. Proxy에서는 접속되지만 Config에서는 같은 대상에 접속할 수 없다면 서버를 바로 다시 만들기보다 구성의 Rule 매칭과 관련 설정을 먼저 확인하세요. 모든 시스템 트래픽이나 앱 동작을 보장하는 것은 아니므로 테스트가 끝나면 실제 용도에 맞는 모드로 되돌리세요.
Direct: 기본 네트워크와 프록시 경로 구분
Direct는 대상에 직접 연결하는 모드이며 서버를 바꾸는 버튼이 아닙니다. 선택한 서버를 테스트하려는 경우 Direct에 둔 채 결과를 근거로 서버가 유효한지 판단하면 안 됩니다. Direct는 기본 네트워크 문제와 프록시 경로 문제를 구분할 때 유용합니다. 모드를 선택한 뒤 다음 단계에서 Home으로 돌아와 서버를 선택하고 연결을 시작하세요.
처음 연결할 때 Rule 키워드, 프로토콜 매개변수, 성능 관련 선택 사항을 모두 익힐 필요는 없습니다. 선택한 Type의 항목을 확인하려면 프로토콜 참고서를, 라우팅과 On Demand의 차이는 설정 안내를 참고하세요.
Home: 서버를 선택하고 연결 시작
목록에 항목이 있다고 해서 해당 항목을 사용 중인 것은 아닙니다. 먼저 서버를 선택하고 상단 스위치를 켠 다음 시스템 권한과 연결 상태를 확인하세요.
Home으로 돌아와 SERVER 목록에서 사용할 서버를 선택하고 선택 표시가 해당 항목에 있는지 확인합니다. 목록에 여러 구독 그룹의 서버가 있다면 그룹 이름과 메모를 먼저 확인하세요. 목록 순서가 바뀐 것을 서버가 전환된 것으로 착각하지 않도록 합니다. 그런 다음 Global Routing을 다시 확인해 앞서 선택한 모드와 일치하는지 확인합니다.
Home 상단의 연결 스위치를 켭니다. 연결 전에는 Not Connected가 표시될 수 있습니다. 스위치를 켠 뒤 상태가 바뀔 때까지 기다리고 연속해서 빠르게 켰다 끄지 마세요. 처음 연결을 시작할 때 시스템에서 VPN 구성을 추가하라는 메시지가 표시될 수 있습니다. 방금 조작한 Shadowrocket의 안내인지 확인한 뒤 시스템 안내에 따라 허용하고 필요한 경우 기기 인증을 완료한 다음 앱으로 돌아와 상태를 확인합니다.
VPN 구성 권한을 허용하면 앱이 시스템 네트워크 확장 기능을 통해 트래픽을 처리할 수 있습니다. 구독 로그인이나 서버 생성 기능은 아닙니다. 권한을 취소했다면 앱으로 돌아가 연결을 다시 시도하고 안내에 따라 처리하세요. 조직에서 관리하는 기기이거나 시스템 제한이 있거나 다른 VPN 구성이 있는 경우에는 먼저 기기 정책이 해당 연결을 허용하는지 확인합니다. 구성을 반복해서 삭제하며 무작정 시도하지 마세요.
연결 상태가 바뀌었다는 것은 연결 절차가 진행되었다는 뜻일 뿐, 원격 서버를 사용할 수 있거나 모든 요청이 예상대로 분기된다는 증거는 아닙니다. 현재 서버와 모드를 유지하고 다음 단계의 테스트를 진행하세요. 스위치가 바로 꺼지거나 오류가 표시되면 오류 원문과 발생 단계를 기록한 다음 문제 해결로 이동하세요. 여러 설정을 동시에 변경하면 원래 상태를 복원하기 어렵습니다.
Connectivity Test: 연결 및 실제 접속 확인
연결 확인은 서버 테스트로 단서를 얻고 실제 요청으로 사용 결과를 확인하는 두 단계로 진행합니다. 두 결과를 함께 살펴보세요.
Home에서 Connectivity Test를 누르고 목록의 테스트 결과가 갱신될 때까지 기다립니다. 테스트 방식에 따라 결과의 의미가 달라질 수 있으므로 Settings → Test Method에서 현재 방식을 확인하세요. 특정 항목에 결과가 표시되면 해당 방식으로 그 시점에 테스트를 완료했다는 뜻입니다. 시간 초과도 해당 서버를 모든 용도로 사용할 수 없다는 의미는 아닐 수 있으므로 실제 요청 결과와 함께 판단해야 합니다.
그런 다음 연결을 유지한 채 브라우저에서 평소 확인에 사용하는 웹페이지를 열어 먼저 페이지가 정상적으로 로드되는지 확인하고, 원래 확인하려던 대상에도 접속해 봅니다. 이미 캐시된 페이지가 아니라 새 요청을 사용하세요. 특정 앱에서만 문제가 있고 브라우저에서는 접속된다면 전체 연결이 실패했다고 단정하지 말고 해당 앱과 대상의 차이를 기록합니다.
Rule에 따른 분기를 확인하려면 같은 네트워크, 같은 서버, 같은 대상을 사용해 Config와 Proxy의 결과를 비교하고 Global Routing만 한 번에 바꿉니다. 두 모드의 결과가 다르면 Config로 돌아가 Rule과 관련 설정을 확인하세요. Rule은 보통 위에서부터 순서대로 적용되므로 먼저 일치하는 항목이 이후 경로를 결정할 수 있습니다. 파일에 특정 Rule이 있다는 것만으로 실제 요청이 해당 Rule에 일치했다고 볼 수는 없습니다.
Data의 트래픽 변화는 요청 활동을 확인하는 참고 자료가 될 수 있지만, 누적 트래픽만으로 특정 웹페이지가 어떤 경로를 사용했는지 판단할 수는 없습니다. 확인을 마치면 장기적으로 사용할 모드로 되돌리고 선택한 서버, 구성 이름, 테스트 대상을 기록하세요. 나중에 문제가 생기면 항목을 계속 바꾸는 대신 동일한 조건으로 다시 테스트해야 원인을 쉽게 찾을 수 있습니다.
Settings: 자주 발생하는 문제를 순서대로 해결
기본 네트워크부터 확인한 다음 서버, 모드, DNS, Rule을 점검합니다. 한 번에 한 항목만 변경하고 변경 전 값을 기록해 두세요.
첫 번째 단계: 네트워크, 구독, 서버 확인
Shadowrocket 연결을 잠시 끄고 기기의 기본 네트워크가 정상적으로 작동하는지 확인합니다. 특히 현재 Wi-Fi에서 먼저 네트워크 로그인이 필요한지 살펴보세요. 기본 네트워크를 사용할 수 없다면 먼저 이 문제를 해결해야 합니다. 프록시 프로토콜이나 Rule을 변경해도 아직 연결되지 않은 네트워크를 복구할 수는 없습니다.
구독에서 항목을 불러오지 못했다면 구독 기록으로 돌아가 URL 전체와 업데이트 알림을 확인하고 링크가 아직 유효한지 점검합니다. 항목은 있지만 연결에 실패한다면 해당 서버를 열어 Type, Host, Port, 인증 정보를 확인하고 구독에 기재된 정보가 변경되었는지 살펴봅니다. 먼저 보유한 정보가 여전히 유효한지 확인한 뒤 구독 업데이트 여부를 결정하세요. 매번 실패할 때마다 다시 가져와야 하는 것은 아닙니다.
두 번째 단계: 모드를 비교한 뒤 DNS와 Rule 확인
Home → Global Routing에서 Direct가 잘못 선택되지 않았는지, 현재 서버가 방금 확인한 항목인지 확인합니다. Proxy로 잠시 비교해 보세요. 같은 대상에 접속할 수 있게 되면 Config를 집중적으로 확인하고, 여전히 실패한다면 서버 매개변수, 기본 네트워크, 대상 자체를 점검합니다. 비교 중에 네트워크와 서버를 동시에 바꾸면 어떤 항목이 결과에 영향을 주었는지 알 수 없습니다.
도메인 접속에 실패하면 DNS도 점검할 항목 중 하나지만 원인이 그것뿐인 것은 아닙니다. 먼저 현재 구성의 DNS 설정과 관련 안내를 기록한 뒤 잘못 입력한 값이나 충돌이 있는지 확인하세요. 출처를 알 수 없는 설정을 연달아 적용하거나 임의의 고정 주소를 모든 네트워크의 해결책으로 사용하지 마세요. Proxy는 정상인데 Config에서 문제가 생긴다면 Rule의 순서, 대상 매칭 범위, 최종 정책을 확인합니다.
세 번째 단계: On Demand와 Diagnostics 확인
연결을 끈 뒤 다시 자동으로 켜지는 경우 Settings → On Demand에서 연결을 시작하는 조건이 활성화되어 있는지 확인합니다. On Demand는 연결이 시작되는 시점을 제어하고 Global Routing은 요청 처리 방식을 제어하므로 서로 다른 설정입니다. 처음 문제를 점검할 때는 On Demand의 기존 설정을 기록해 두고, 변수를 줄여야 한다면 잠시 비활성화하세요. 수동 연결이 안정적인지 확인한 뒤 설정을 복원합니다.
추가 진단이 필요하면 Settings → Diagnostics에서 오류 원문, 발생 시각, 네트워크 유형, 재현 절차를 확인하고 기록합니다. 해결을 시도한다며 Proxy, TCP, UDP에서 이해하지 못하는 옵션을 함부로 변경하지 마세요. 진단 정보를 공유하기 전에는 구독 URL, 서버 인증 정보 등 민감한 내용을 가려야 합니다. 프로토콜 유형과 오류가 발생한 단계만으로도 대개 문제를 파악하는 데 도움이 됩니다.
특정 프로토콜에서만 문제가 발생하면 프로토콜 참고서에서 필수 항목과 전송 조건을 확인하세요. 작업 순서를 다시 확인하려면 이 페이지의 추가 및 가져오기 단계로 돌아가 유효한 정보를 기준으로 하나씩 점검합니다. 문제 해결이 끝나면 임시 변경 사항을 복원해 Proxy 모드나 비활성화한 자동 연결 조건을 그대로 두지 않도록 합니다.