서버를 직접 추가하는 방법과 구독을 가져오는 방법은 별도의 입력 경로이므로 둘 다 진행할 필요는 없습니다. 주소, 포트, 인증 정보를 보유했다면 첫 번째 단계부터 시작하세요. 구독 URL이 있다면 두 번째 단계로 바로 이동하면 됩니다. 어느 쪽이든 Home에 선택 가능한 항목이 표시되면 Config와 Global Routing을 확인하세요.
01 · Add Server: 기존 서버 추가
Shadowrocket을 열고 Home에서 추가 버튼을 눌러 Add Server로 이동합니다. 먼저 Type을 선택한 다음 나머지 항목을 입력하세요. Type은 보유한 서버 정보의 프로토콜과 일치해야 합니다. 서버 이름만 보고 추측하지 마세요. Shadowsocks, VMess, VLESS, Trojan, WireGuard 등은 필요한 항목이 다릅니다. Type을 변경했다면 화면에 표시되는 필수 항목을 다시 확인하세요.
서버 주소와 포트는 각각 해당 항목에 입력하세요. 주소 입력란에는 일반적으로 호스트 이름이나 IP 주소만 입력해야 합니다. 웹 주소 전체와 포트를 함께 붙여 넣지 마세요. 자료에 따라 인증 정보를 입력하고 앞뒤 공백, 줄바꿈, 대소문자에 유의하세요. TLS, 전송 방식 또는 추가 매개변수가 있다면 각각 해당 항목에 입력해야 합니다. 주소와 인증 정보만 입력한 채 저장하지 마세요.
- Type이 서버 정보와 일치하는지 확인한 뒤 주소, 포트, 인증 정보를 점검하세요.
- 추가 매개변수도 확인하세요. 서버 정보에 설명이 없는 옵션은 임의로 켜지 마세요.
- 알아보기 쉬운 이름을 입력하고 저장한 다음 Home으로 돌아가세요.
- 방금 추가한 항목을 눌러 현재 선택된 서버인지 확인하세요.
저장에 성공했다는 것은 클라이언트가 입력한 값을 받아들였다는 뜻일 뿐, 서버 인증까지 완료되었다는 의미는 아닙니다. 여러 매개변수를 연달아 바꾸지 마세요. 입력값을 유지한 채 뒤에서 안내하는 동일한 방법으로 확인하세요. 서버 정보가 QR 코드라면 Scan QR Code로 읽을 수 있지만, 저장 전에 프로토콜, 주소, 추가 매개변수를 확인해야 합니다.
Home에 서버가 표시되면 구독 단계는 건너뛰고 Config를 확인하면 됩니다. 구독으로 여러 서버 정보를 한 번에 관리하려면 다음 단계에서 구독을 가져오세요. 같은 내용을 서버별로 다시 입력할 필요는 없습니다.
02 · Subscribe: 기존 구독 가져오기 및 업데이트
구독 URL은 서버 항목을 불러오는 주소이지, 일반적인 서비스 소개 페이지가 아닙니다. 먼저 본인의 서비스 제공자가 안내한 전체 링크를 복사합니다. 그런 다음 Home에서 Add Server를 열고 Type을 Subscribe로 설정한 뒤 URL 입력란에 붙여 넣으세요. 알아보기 쉬운 이름을 지정하고 내용을 확인한 다음 저장하면 클라이언트가 구독을 가져와 파싱합니다.
붙여 넣을 때 물음표 뒤의 매개변수를 직접 삭제하지 마세요. 일부 링크의 매개변수는 접근 권한 확인에 사용되므로 문자 하나만 빠져도 가져오기에 실패할 수 있습니다. 복사한 내용에 따옴표, 앞뒤 공백, 줄바꿈이 포함되었다면 원본과 대조해 수정하세요. 개인 인증 정보가 포함된 실제 링크를 다른 사람에게 보내 테스트를 부탁하지 마세요.
저장한 뒤 Home으로 돌아가 해당 구독 그룹에 서버 항목이 표시되는지 확인하세요. 그룹 이름만 보이고 내용이 비어 있다면 가져오기가 완료된 것이 아닙니다. 구독 주소가 저장된 상태와 서버 목록이 파싱된 상태는 구분해야 합니다. 목록이 정상적으로 표시되면 그룹을 펼쳐 사용할 항목을 선택한 뒤 연결 단계로 진행하세요.
Subscribe 업데이트 후 다시 확인하기
서비스 제공자가 구독 내용을 변경했거나 기존 항목이 만료되었을 가능성이 있다면 Home에서 해당 구독의 작업 메뉴를 열고 업데이트하세요. 메뉴 위치와 표시 방식은 앱 인터페이스에 따라 다를 수 있으므로 현재 화면을 기준으로 확인합니다. 업데이트가 끝나면 목록과 선택 항목을 다시 확인하세요. 기존 항목이 변경되거나 삭제될 수 있으므로 업데이트 완료 표시만 보고 이전 선택을 그대로 사용하지 마세요.
문제 해결 대신 짧은 시간 안에 반복해서 새로 고치지 마세요. 업데이트에 실패하면 먼저 오류 내용을 기록하고, 현재 기기에서 구독 URL에 접속할 수 있는지와 서비스 제공자가 접근 제한을 안내했는지 확인하세요. 구독 목록은 정상인데 서버 연결이 실패한다면 구독 전체를 바로 삭제하지 말고 서버 매개변수와 연결 경로를 확인하세요.
링크 형식과 서버 응답 문제를 구분하려면 구독 가져오기 실패 또는 서버 목록이 비어 있을 때 확인할 사항을 참고하세요. 가져오기가 끝나면 규칙 동작을 결정하는 구성 파일을 확인합니다.
03 · Config: 현재 구성 파일 확인
Config를 열어 현재 활성화된 구성 파일을 확인하세요. 서버 항목은 사용할 수 있는 연결을 정하고, 구성 파일은 규칙 등의 처리 설정을 정의합니다. 두 항목은 서로 다른 내용입니다. 구독을 성공적으로 가져와도 Config의 규칙이 바뀌는 것은 아닙니다. 반대로 구성 파일을 선택해도 누락된 서버 인증 정보가 자동으로 채워지지 않습니다.
처음 사용하는 경우 현재 구성을 먼저 확인하세요. 연결 테스트를 위해 파일 전체를 바로 교체할 필요는 없습니다. 신뢰할 수 있고 용도를 이해하는 구성이 있다면 안내에 따라 Config에 가져와 선택하세요. 가져오기 전에 원본 파일을 보관하고 수정 전에는 사본을 저장합니다. 출처를 알 수 없는 구성은 트래픽 처리 경로를 바꿀 수 있으므로 파일 이름만 보고 활성화하지 마세요.
아래는 규칙을 읽는 순서를 설명하기 위한 간단한 예시이며, 현재 파일을 그대로 덮어쓰라는 뜻은 아닙니다. 예시의 example.com은 도메인 예시입니다. PROXY가 실제로 어떤 프록시를 가리키는지는 현재 구성과 클라이언트 설정을 확인해야 합니다.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,PROXY
Config 모드에서는 요청이 규칙 순서대로 일치 항목을 찾습니다. 첫 번째 줄은 도메인 접미사를 기준으로, 두 번째 줄은 대상 IP 범위를 기준으로 일치 여부를 확인합니다. FINAL은 앞선 규칙에 일치하지 않은 요청을 처리합니다. 따라서 파일에 규칙이 있다고 해서 반드시 적용되는 것은 아닙니다. 앞쪽 규칙의 순서와 최종 정책도 중요합니다.
이번 단계에서는 현재 사용 중인 구성을 확인하는 데 집중하세요. 세 가지 처리 방식을 다시 확인하려면 Global Routing 단계를 참고하세요. 앱 다운로드, App Store 지역, 구매 복원에 관한 내용은 설치 가이드에서 확인할 수 있습니다.
04 · Global Routing: 트래픽 처리 방식 선택
Home으로 돌아가 Global Routing을 엽니다. 여기서는 요청 전반의 처리 방식을 선택하며, 서버를 가져오거나 잘못된 인증 정보를 수정하지는 않습니다. 세 가지 모드는 Config, Proxy, Direct입니다. 현재 작업에 맞는 모드를 선택한 뒤 Home으로 돌아가 선택 내용을 확인하세요.
- Config
현재 활성화된 구성 파일의 규칙에 따라 요청을 처리하고 해당 정책을 적용합니다. 대상마다 처리 경로를 다르게 지정하려면 이 모드를 사용하세요. 사용하기 전에 현재 구성과 최종 정책을 확인해야 합니다. 그렇지 않으면 특정 요청의 실제 경로가 예상과 다를 수 있습니다.
- Proxy
클라이언트가 처리하는 요청을 프록시로 보냅니다. 첫 확인 단계에서 규칙 차이로 인한 변수를 줄일 때 유용합니다. 올바른 서버 선택과 매개변수가 필요하며, 사용할 수 없는 서버를 정상화해 주지는 않습니다. 모든 앱의 트래픽이 반드시 프록시로 전달되는 것도 아닙니다.
- Direct
요청을 직접 연결해 현재 네트워크에서의 접속 상태와 비교할 수 있습니다. Direct로 전환해도 클라이언트 연결 스위치가 꺼지는 것은 아닙니다. 연결을 완전히 중지하려면 Home으로 돌아가 스위치를 끄세요.
처음 확인할 때는 Proxy에서 선택한 서버를 테스트한 다음 Config로 전환해 규칙 동작을 확인하세요. Proxy에서는 정상이고 Config에서만 문제가 발생한다면 서버를 다시 입력하기보다 규칙과 정책을 먼저 살펴보세요. 두 모드 모두 실패하더라도 서버 문제라고 단정할 수는 없습니다. 시스템 연결 상태와 대상 서비스도 확인해야 합니다.
모드를 바꿀 때마다 같은 대상을 다시 요청하세요. 서로 다른 페이지에서 나타난 결과를 비교하지 마세요. 확인이 끝나면 계속 사용할 모드로 되돌리고, 다음에 같은 상황을 재현할 수 있도록 현재 구성 파일과 서버 이름을 기록하세요.
05 · Home: 연결 및 시스템 권한 승인
Home에서 두 가지를 다시 확인하세요. 사용할 서버가 선택되어 있고 Global Routing이 방금 선택한 모드인지 확인한 뒤 상단의 연결 스위치를 켭니다. 처음 연결할 때 시스템에서 VPN 구성을 추가하라는 메시지가 표시될 수 있습니다. 현재 조작 중인 Shadowrocket에서 요청한 내용인지 확인한 다음 시스템 안내에 따라 허용하고 기기 인증을 완료하세요.
시스템 권한 승인은 클라이언트가 필요한 네트워크 구성을 만들도록 허용하는 절차입니다. 구매 안내가 아니며 서버 인증 성공을 의미하지도 않습니다. 요청을 취소했다면 Shadowrocket으로 돌아가 연결을 다시 시도하고 시스템 안내에 따라 진행하세요. 스위치가 켜진 상태로 유지되지 않는다고 서버를 연달아 다시 추가하지 마세요. 입력 정보와 시스템 권한은 별도로 확인해야 합니다.
권한 승인이 끝나면 앱으로 돌아와 스위치와 연결 상태가 유지되는지 확인하세요. 시스템에 VPN 상태가 표시되면 해당 네트워크 연결이 설정된 것입니다. 하지만 대상 웹사이트가 정상적으로 열리는지, 특정 Rule이 적용되었는지까지 확인된 것은 아닙니다. 상태 표시만으로 절차를 끝내지 말고 다음 단계에서 실제 접속을 확인하세요.
기기에 이미 다른 VPN 연결이 있다면 현재 사용 중인 연결이 무엇인지 먼저 확인한 뒤 비교 테스트를 진행하세요. 특정 네트워크에서 연결이 자동으로 복구된다면 Settings에서 On Demand가 켜져 있는지 확인할 수 있습니다. 처음 문제를 점검할 때는 설정을 기록해 두어 자동 연결 동작을 수동 스위치 오류로 오해하지 않도록 하세요. 관리 대상 기기는 관리 정책을 따르세요.
06 · Connectivity Test: 연결 확인
Home으로 돌아가 Connectivity Test를 실행하고 추가한 서버의 테스트 결과를 확인하세요. 테스트 방식과 현재 네트워크가 결과에 영향을 줄 수 있으므로 테스트 설정을 먼저 확인합니다. 특정 항목에 응답이 있다는 것은 해당 테스트를 통과했다는 뜻입니다. 인증, 대상 서비스 접속, 모든 요청이 정상이라는 의미는 아닙니다.
그런 다음 브라우저를 열어 접근 권한이 있고 로딩 완료 여부를 분명히 확인할 수 있는 서비스를 방문하세요. 페이지 제목이나 캐시된 이미지에만 의존하지 말고 새로 고쳐 실제 콘텐츠가 표시되는지 확인합니다. 로그인이 필요한 서비스라면 계정 로그인 문제와 네트워크 연결 문제를 구분하세요. 권한 안내가 표시된다고 곧바로 연결 실패로 판단하지 마세요.
- 테스트 당시의 네트워크, 서버, Global Routing, 현재 Config를 기록하세요.
- Proxy 모드에서 같은 대상에 다시 접속해 기본 프록시 경로를 확인하세요.
- Config로 전환해 다시 접속하고 규칙 처리 결과를 확인하세요.
- 비교가 필요하면 Direct를 사용한 다음 원하는 모드로 되돌리세요.
규칙 적용 여부를 확인하려면 앱에서 볼 수 있는 연결 기록이나 로그를 열어 방금 보낸 요청을 찾고, 적용된 규칙과 정책을 확인하세요. 도메인이 DOMAIN-SUFFIX에 일치하는 경우와 최종적으로 FINAL에 도달하는 경우는 서로 다릅니다. 두 규칙이 같은 정책을 사용하더라도 같은 규칙이 적용된 것으로 보면 안 됩니다.
지연 시간 테스트는 특정 측정 방식에서의 응답을 보여 주는 값으로, 실제 전송 속도와 같지 않습니다. 앱 내 테스트는 정상이지만 웹페이지가 열리지 않는다면 DNS, 대상 서비스 상태, 인증 문제도 확인해야 합니다. 한 번에 조건 하나만 바꾸고 같은 작업을 반복해야 서버, 네트워크, 구성 중 무엇이 영향을 주었는지 판단할 수 있습니다.
07 · 문제가 발생한 단계 확인하기
먼저 문제가 발생한 지점을 한 문장으로 정리하세요. 예를 들면 “구독을 가져왔지만 항목이 표시되지 않음”, “스위치가 켜진 상태로 유지되지 않음”, “테스트에는 응답이 있지만 웹페이지가 열리지 않음”, “Config에서만 문제가 발생함”과 같습니다. 각각 다른 단계에서 생기는 문제입니다. 현재 구성과 필요한 기록을 보관한 뒤 조치하세요. 구독 삭제, 서버 변경, DNS 수정, 규칙 교체를 동시에 하면 어떤 변경이 영향을 주었는지 알기 어렵습니다.
구독은 저장됐지만 목록이 비어 있는 경우
Subscribe 단계로 돌아가 URL 전체가 입력되었는지, 구독 주소가 맞는지, 접근 권한이 유효한지 확인하세요. 응답이 로그인 페이지나 오류 안내라면 클라이언트가 이를 서버 목록으로 파싱하지 못할 수 있습니다. 내용 형식이나 권한을 확인해야 한다면 서비스 제공자에게 문의하세요. 우선 Global Routing을 바꿀 필요는 없습니다.
서버 항목은 있지만 연결되지 않는 경우
먼저 올바른 서버 항목이 선택되어 있는지 확인한 뒤 Type, 주소, 포트, 인증 정보, 추가 매개변수를 하나씩 점검하세요. 구독으로 관리하는 항목은 한 번 정상적으로 업데이트한 뒤 다시 선택해 보세요. 직접 입력한 항목은 원본 정보와 항목별로 대조합니다. 다른 네트워크에서 결과가 달라진다면 네트워크 차이를 기록하세요. 그 결과만으로 인증 정보를 바로 수정하지는 마세요.
스위치가 켜지지 않거나 켜진 직후 연결이 끊기는 경우
시스템 권한 승인이 끝났는지, 다른 VPN 연결이 사용 중인지, 기기에 관리 제한이 있는지 확인하세요. 스위치가 자동으로 다시 켜진다면 On Demand 조건을 확인합니다. 웹 접속 테스트에 앞서 시스템 연결 문제부터 해결하세요. 권한 승인이 완료되지 않은 문제는 규칙을 반복해서 바꿔도 해결되지 않습니다.
Proxy에서는 정상인데 Config에서 일부 대상에 문제가 생기는 경우
Config에서 예상한 파일이 활성화되어 있는지 확인하고 대상 요청에 실제로 적용된 규칙과 FINAL의 처리 방향을 살펴보세요. 도메인 규칙과 IP 범위 규칙은 일치 기준이 다르며 DNS 결과도 이후 처리에 영향을 줄 수 있습니다. 사본에서 규칙 하나만 수정해 다시 테스트하세요. 특정 대상 하나 때문에 규칙 전체를 교체하지 마세요.
테스트에는 응답이 있지만 실제 서비스를 사용할 수 없는 경우
대상 서비스가 정상인지, 계정에 접근 권한이 있는지, 클라이언트 기록에 인증·파싱·연결 오류가 있는지 확인하세요. 서비스 제공자에게 문의할 때는 발생 시간, 현재 네트워크 유형, 프로토콜 유형, 이미 진행한 비교 테스트를 설명하세요. 구독 URL, 비밀번호와 기타 인증 정보는 공개하지 마세요. 테스트 결과는 참고 자료일 뿐이므로 실제 요청 결과와 함께 판단해야 합니다.
앞으로 기존 구독만 업데이트하려면 구독 업데이트 단계로 바로 이동하세요. 트래픽 분기 동작을 비교하려면 Global Routing 안내를 확인하세요. 기기 변경, 재설치, 구매 기록 관련 문제는 App Store 설치 가이드에서 확인할 수 있습니다. 서버 매개변수부터 다시 점검할 필요는 없습니다.