공식 가이드 · 기존 구독 및 서버 정보
Shadowrocket 구독 및 서버 관리
구독 주소, 서버 항목, Config 파일의 차이를 먼저 확인한 뒤 가져오기, 갱신, 정리를 진행하세요. 앱은 한 번 구매하면 계속 사용할 수 있지만, 앱 구매만으로 연결 가능한 서버가 제공되지는 않습니다.
이 페이지는 8개 관리 주제에 따라 작업 기준, 항목별 범위, 문제 해결 순서를 설명하는 참고 가이드입니다. 처음 설정한다면 먼저 빠른 시작 가이드를 읽고 한 번 연결한 뒤 해당 장에서 세부 사항을 확인하세요.
- 사용자가 기존 구독을 보유한 경우
- 앱 ID 932747118
- 다운로드 경로 App Store
Shadowrocket은 주로 iPhone과 iPad에서 사용합니다. 이 페이지는 서버나 구독을 제공·판매·추천하지 않습니다. 앱 다운로드 경로와 정품 확인은 정품 다운로드 안내를 참고하세요. 시스템 요구 사항은 App Store 페이지에 표시된 내용을 기준으로 합니다.
[Subscribe]구독 가져오기
구독 주소와 최초 가져오기 확인
구독은 서버 목록을 다시 가져올 수 있는 주소이며, 특정 서버 한 대나 규칙 설정 파일과는 다릅니다.
먼저 입력 내용의 용도 확인
가져오기 전에 이미 보유한 전체 구독 주소를 준비하고, 서비스 제공자가 Shadowrocket용으로 안내한 주소인지 확인하세요. 경로, 쿼리 매개변수, 토큰이 함께 목록을 결정할 수 있으므로 도메인만 복사해서는 충분하지 않을 수 있습니다. 페이지 제목이나 링크 길이만으로 용도를 판단하지 말고, 계정 안내·로그인·갱신 페이지 주소를 구독 입력란에 넣지 마세요. 웹페이지에 접속할 수 있다는 사실과 구독 내용을 파싱할 수 있다는 것은 별개입니다.
서버 항목에는 연결에 필요한 프로토콜과 매개변수가 저장되고, 구독은 원격에서 해당 항목을 가져오며, Config는 규칙과 DNS 등의 동작을 제어합니다. 세 항목은 함께 존재할 수 있지만 서로 대체할 수 없습니다. 구독을 가져온 뒤 서버 목록이 표시되어도 가져오기와 파싱이 완료되었다는 뜻일 뿐, 선택한 서버에 연결할 수 있거나 기존 규칙이 트래픽을 예상대로 처리한다는 뜻은 아닙니다.
Home에서 Subscribe 항목 만들기
Home에서 추가 메뉴를 열고 Add Server로 이동한 다음 Type에서 Subscribe를 선택하세요. 실제 메뉴 위치는 앱 화면을 기준으로 확인합니다. URL에 전체 주소를 붙여 넣고 구독을 알아보기 쉬운 이름으로 표시한 뒤 저장하세요. 앱에서 구독 가져오기나 업데이트 여부를 묻는다면 안내에 따라 진행합니다. 작업 중 네트워크가 연결되어 있는지 확인하고, 처리 중 같은 주소를 반복해서 추가하지 마세요. 비슷한 구독 그룹이 여러 개 생길 수 있습니다.
저장하기 전에 주소 앞뒤에 공백, 줄 바꿈, 따옴표 또는 한글 문장 부호가 섞이지 않았는지 확인하세요. 메신저에서 긴 주소가 자동으로 줄 바뀌어도 복사한 주소가 반드시 잘린 것은 아니지만, 이미지에서 문자를 인식하면 잘못 읽힐 수 있습니다. 특히 물음표 뒤의 내용, 대소문자를 구분하는 토큰, 퍼센트 인코딩을 확인하세요. 주소는 접속 정보이므로 앱에 직접 붙여 넣고, 형식을 확인한다며 낯선 웹페이지에 입력하지 마세요.
https://example.com/sub?token=xxxx
위 내용은 형식 예시일 뿐 실제로 사용할 수 있는 구독 주소가 아닙니다. 실제 주소는 이용 중인 서비스 제공자에게서 받으세요. 예시에서 물음표 뒤의 token은 쿼리 매개변수이며, 모든 구독이 같은 매개변수 이름을 사용한다고 볼 수는 없습니다. 일부 주소는 식별 정보를 경로에 포함합니다. 확인할 때 원문을 그대로 유지하고, 보기 좋게 정리한다며 일부를 삭제하거나 예시의 매개변수를 임의로 추가하지 마세요.
저장 후 네 가지 항목 확인
처음 가져오기가 완료되면 구독 그룹이 표시되는지, 서버 항목이 있는지, 프로토콜이 보유한 정보와 일치하는지, 이름으로 그룹을 구분할 수 있는지 차례로 확인하세요. 목록이 비어 있다면 먼저 기존 주소를 보관하고 앱의 안내 문구를 확인한 뒤 서비스 제공자가 구독 주소를 변경했는지 확인합니다. 서버를 하나씩 바로 수정하거나 기존 목록을 먼저 삭제하지 마세요. 가져오기 실패와 서버 연결 실패는 구분해서 처리해야 합니다.
목록이 정상적으로 표시되지만 모르는 이름이 있다면 이름을 연결 품질이나 위치의 보증으로 여기지 말고 기존 구독 안내와 먼저 대조하세요. 표시 이름은 구독 내용에 따라 정해지며 이후 업데이트에서 바뀔 수 있습니다. 특정 항목을 추적해야 한다면 목록에서 보이는 순서만 기억하지 말고 소속 구독과 프로토콜도 함께 기록하세요.
[Check]구독 가져오기 성공, 서버 테스트 성공, 실제 요청 성공은 서로 다른 확인 단계입니다. 순서대로 각각 확인하고, 하나의 결과로 나머지를 대신 판단하지 마세요.
파싱에 실패하면 전체 주소와 현재 네트워크를 먼저 확인한 뒤 응답 내용이 여전히 구독 데이터인지 살펴보세요. 원격 서버에서 로그인 안내, 오류 페이지 또는 빈 내용을 반환하면 요청에 응답이 있더라도 서버 목록을 만들 수 없습니다. 세부 점검 절차는 구독 목록이 비어 있거나 파싱에 실패할 때 확인하기를 참고하세요. 오류 문구만 보관하고 다른 사람에게 도움을 요청할 때 전체 토큰을 공유하지 마세요.
같은 구독이 이미 있다면 다시 가져오기보다 기존 항목을 업데이트하세요. 새 주소를 시험해야 한다면 다른 이름으로 임시 그룹을 만들고 기존 그룹은 비교용으로 남겨 두세요. 새 목록이 완전하고 실제 요청도 성공하는지 확인한 뒤 기존 항목을 삭제할지 결정합니다. 이렇게 진행하면 원격 내용 변경과 로컬 작업의 영향을 구분할 수 있어 실수로 삭제한 뒤 원인을 파악하기 어려워지는 일을 줄일 수 있습니다.
[Add Server]서버 직접 입력
프로토콜에 맞춰 연결 항목 확인
직접 입력은 서버 매개변수 전체를 이미 알고 있을 때 사용합니다. 먼저 Type을 선택하고 각 항목을 대조해 입력하세요. 누락된 정보를 추측해 채우지 마세요.
주소, 인증 정보, 전송 설정 구분하기
Add Server에서 Type은 뒤에 나오는 항목을 해석하는 기준이 됩니다. 주소와 포트가 같더라도 프로토콜이 다르면 자동으로 호환되지 않습니다. 보유한 서버 안내에 따라 Shadowsocks, VMess, VLESS, Trojan 등 실제 유형을 선택한 뒤 서버 주소와 포트를 입력하세요. 서버 주소는 보통 도메인이나 IP입니다. 전체 공유 링크를 주소 입력란에 붙여 넣거나 도메인 뒤에 경로 또는 이름을 덧붙이지 마세요.
포트에는 서버 측에서 제공한 숫자만 입력하세요. TLS가 보인다고 흔히 쓰이는 포트를 임의로 입력하거나, 프로토콜 이름만 보고 인터넷 예시를 따라 하면 불확실성이 커집니다. 비밀번호, UUID, 암호화 방식 같은 인증 정보도 원래 값 그대로 입력해야 합니다. 비슷해 보이는 문자가 있으므로 직접 입력하기보다 복사하는 편이 정확합니다. 복사 후에도 앞뒤 공백을 확인하고, 입력기가 영문 기호를 전각 기호로 바꾸지 않도록 주의하세요.
| 프로토콜 | 중점 확인 항목 | 혼용하면 안 되는 내용 |
|---|---|---|
| Shadowsocks | 주소, 포트, 암호화 방식, 비밀번호 | 암호화 방식은 서버 측 설정과 일치해야 합니다. 비밀번호와 UUID는 서로 다른 정보입니다. |
| VMess / VLESS | 주소, 포트, UUID, 전송 및 TLS 매개변수 | UUID가 같다는 이유만으로 프로토콜 유형을 서로 바꿔 쓸 수는 없습니다. |
| Trojan | 주소, 포트, 비밀번호, TLS 및 SNI | 연결 주소와 인증서에 사용되는 이름은 다를 수 있습니다. |
| Hysteria2 | 주소, 포트, 인증 및 TLS 관련 매개변수 | 해당 프로토콜의 원래 매개변수를 따르고 다른 유형의 항목을 적용하지 마세요. |
| WireGuard | 키, 피어, 주소 및 라우팅 관련 매개변수 | 개인 키는 민감 정보이므로 일반 메모로 공유하지 마세요. |
TLS, SNI, 전송 매개변수는 각각 역할이 다릅니다
연결 주소는 서버를 찾는 데 사용되며, SNI는 일반적으로 TLS 핸드셰이크에서 이름을 선택하는 데 관여하고, 인증서 검증은 서버 신원을 확인합니다. 서로 대체할 수 없는 개념입니다. 안내에 SNI가 명시되어 있다면 주소 항목을 그대로 복사하지 말고 안내된 값을 입력하세요. IP로 연결하더라도 인증서는 도메인에 대응할 수 있습니다. 이름 불일치나 인증서 오류가 발생하면 정보를 먼저 확인하고, 검증을 끄는 방법을 일반적인 해결책으로 사용하지 마세요.
전송 설정의 Host, Path 등이 연결 주소와 반드시 같은 것은 아닙니다. Path의 첫 슬래시, 대소문자, 쿼리 부분이 중요할 수 있고, Host는 해당 애플리케이션 계층 요청에 사용될 수 있습니다. 선택한 전송 방식에서 실제로 사용하는 매개변수만 입력하세요. 구독 주소의 경로를 서버 전송 설정으로 옮기지 마세요. 둘 다 슬래시를 포함할 수 있지만 서로 다른 요청에 쓰입니다.
Trojan을 예로 들면 주소, 포트, 비밀번호는 연결 대상과 인증 정보를 지정하고 SNI와 인증서 검증은 TLS와 관련됩니다. 비밀번호가 맞아도 TLS 설정이 올바르다고 단정할 수 없고, 핸드셰이크에 성공해도 인증이 완료되었다는 뜻은 아닙니다. 문제를 해결할 때는 항목별로 확인하고 주소, 비밀번호, SNI를 한꺼번에 바꾸지 마세요. 각 항목의 설명은 Trojan 매개변수 입력 안내에서 확인할 수 있습니다.
저장 후 한 번에 한 항목씩 확인
이름에는 용도와 출처를 기록하고 비밀번호, 토큰, 개인 키는 넣지 않는 것이 좋습니다. 저장한 뒤 목록으로 돌아가 프로토콜과 주소가 잘못 바뀌지 않았는지 확인하고 해당 항목을 선택해 테스트하세요. 실패하면 원래 매개변수와 하나씩 대조해 확실한 문제만 수정합니다. 여러 값을 연달아 추측해 바꾸면 실패 원인이 뒤섞이고, 가장 정확했던 설정을 덮어쓸 수도 있습니다.
구독에 포함된 항목과 비교하려면 별도의 직접 입력 테스트 항목을 만들 수 있습니다. 다만 구독이 관리하는 원본 항목을 직접 수정하지 마세요. 이후 업데이트에서 로컬 수정 내용이 덮어써지거나 항목이 다시 생성될 수 있습니다. 수정 내용이 유지되는지는 실제 업데이트 결과에 따라 다릅니다. 별도 테스트 항목을 만들면 비교 기준을 유지하고 결과가 원래 구독에서 비롯된 것인지 로컬 매개변수 변경에서 비롯된 것인지 명확히 알 수 있습니다.
[Parameters]필수 매개변수가 없다면 이용 중인 서비스의 관리 담당자에게 확인하세요. 앱은 서버 이름만으로 비밀번호, UUID, SNI 또는 키를 알아낼 수 없습니다.
저장은 항목이 기록되었다는 뜻일 뿐 서버가 연결을 받아들였다는 뜻은 아닙니다. 특정 전송 방식만 실패한다면 해당 방식의 매개변수와 현재 네트워크 조건을 확인하세요. 모든 항목이 실패한다면 기본 네트워크와 전역 설정부터 살펴봅니다. 지원 프로토콜과 세부 항목은 현재 앱 화면을 기준으로 확인하세요. 다른 유형의 서버 정보를 프로토콜 이름만 바꿔 변환하려 하지 마세요.
[Import]QR 코드 및 클립보드
가져오기 내용과 결과 확인
QR 코드와 클립보드는 입력 방법일 뿐입니다. 올바르게 가져올 수 있는지는 그 안에 담긴 주소, 형식, 매개변수에 달려 있습니다.
Scan QR Code가 모든 페이지를 인식하는 것은 아닙니다
Scan QR Code를 사용하기 전에 QR 코드가 본인이 보유한 서버 정보나 구독 안내에서 제공된 것인지 확인하세요. QR 코드에는 단일 공유 링크가 담길 수도 있고 웹페이지 주소만 담길 수도 있습니다. 스캐너가 내용을 읽었다고 해서 앱이 이를 서버로 변환할 수 있는 것은 아닙니다. 스캔 후 일반 페이지가 열리거나 파싱할 수 없다는 안내가 표시되면 원래 안내에서 용도를 확인하세요. QR 코드 옆에 서버 이름이 적혀 있다는 이유만으로 가져오기용 코드라고 판단하지 마세요.
다른 화면의 QR 코드를 스캔할 때는 코드 전체가 카메라 화면에 들어오도록 하고 빛 반사, 모서리 잘림, 여러 코드가 한 화면에 잡히는 상황을 피하세요. 내용이 긴 QR 코드는 더 촘촘할 수 있으므로 너무 작게 표시하면 인식이 어려울 수 있습니다. 여러 번 압축된 메신저 미리보기 이미지보다 원본의 선명한 이미지를 사용하세요. 인식 실패는 이미지나 내용 문제일 수 있으며 서버가 만료되었다는 뜻은 아닙니다.
시스템에서 카메라 권한을 요청하면 실제 작업에 필요한 권한을 허용하세요. 이전에 거부했다면 시스템 설정에서 Shadowrocket의 카메라 접근 권한을 확인한 뒤 다시 스캔합니다. 권한 문제는 서버 인증과 무관하므로 구독 주소를 수정할 필요가 없습니다. 앱에 다른 이미지 인식 메뉴가 있더라도 현재 화면을 기준으로 확인하고, 모든 시스템이나 기기에서 버튼 위치가 같다고 가정하지 마세요.
클립보드 가져오기에서는 원래 문자열을 그대로 유지하세요
공유 링크를 복사할 때 프로토콜 접두사부터 매개변수와 이름까지 전체를 선택하세요. 메시지의 설명, 번호, 글머리 기호, 코드 블록 표시는 링크에 포함되지 않습니다. 앱에 클립보드 가져오기 메뉴가 있다면 복사 후 앱에서 직접 실행하고 시스템 안내에 따라 필요한 접근을 허용하세요. 시스템 안내가 표시되지 않는다고 복사에 실패한 것은 아닙니다. 준비한 링크를 다른 내용으로 덮어쓰지 않도록 연달아 다른 항목을 복사하지 마세요.
한 번에 복사한 여러 링크를 일괄 가져올 수 있는지는 해당 메뉴가 내용을 어떻게 인식하는지에 따라 다릅니다. 확인하기 쉽도록 처음에는 한 개만 가져와 파싱 결과를 확인한 뒤 나머지를 처리하세요. 여러 줄의 텍스트에 설명, 빈 줄, 웹페이지 표시가 섞여 있으면 일부 줄이 무시될 수 있습니다. 가져온 뒤 실제 항목을 하나씩 확인하세요. ‘가져오기 완료’ 안내만으로 모든 정보가 저장되었다고 단정할 수 없습니다.
시스템에서 붙여넣기를 허용할지 묻는 경우 거부했다면 앱이 제공하는 메뉴에서 다시 시도하고 권한 안내를 확인하세요. 복사 기능과 구독 네트워크 요청은 별개의 과정입니다. 클립보드에서 내용을 읽지 못했다면 입력 단계의 문제이고, 구독 항목은 만들어졌지만 가져오기에 실패했다면 요청 단계의 문제입니다. 어느 단계에서 실패했는지 먼저 구분해야 올바른 주소나 서버 매개변수를 반복해서 수정하는 일을 피할 수 있습니다.
가져온 뒤에는 이름만 보지 말고 항목을 대조하세요
단일 공유 링크를 가져온 뒤 Type, 주소, 포트, 필요한 TLS 및 전송 항목을 확인하세요. 이름이 맞아도 다른 매개변수가 모두 읽혔다는 뜻은 아닙니다. 일부 형식은 이름을 퍼센트 인코딩합니다. 인코딩 문자가 보이거나 표시 방식이 달라도 연결에 영향이 없을 수 있지만, 링크 매개변수가 이름에 들어갔거나 이름이 주소 입력란에 남지 않았는지 확인하세요.
구독 QR 코드를 가져온 뒤에는 이번 목록의 서버 한 대만 저장된 것이 아니라 업데이트 가능한 구독 항목이 만들어졌는지도 확인하세요. 확인 기준은 QR 이미지의 제목이 아니라 앱에 저장된 항목 유형과 업데이트 메뉴입니다. 계속 업데이트해야 한다면 그중 서버 하나만 복사하기보다 올바른 구독 항목을 유지하는 편이 좋습니다. 단일 항목을 가져와도 일반적으로 구독 업데이트 관계까지 자동으로 이어지지는 않습니다.
[Privacy]QR 코드, 공유 링크, 클립보드 내용에는 전체 인증 정보가 포함될 수 있습니다. 공용 인식 페이지에 업로드하지 말고, 화면을 캡처해 도움을 요청하기 전에 QR 코드, 비밀번호, 쿼리 토큰을 제거하세요.
QR 코드를 반복해서 스캔하면 비슷한 항목이 여러 개 생길 수 있습니다. 정리하기 전에 소속 그룹, 프로토콜, 주소를 비교하고 현재 선택된 항목이 무엇인지 확인하세요. 이름이 같아도 매개변수가 다르면 중복으로 보고 바로 삭제하면 안 됩니다. 이름이 달라도 주소는 같고 인증 또는 전송 설정이 다를 수 있습니다. 확실하지 않다면 두 항목을 모두 보관하고 임시 이름으로 구분한 뒤 테스트 장의 절차에 따라 하나씩 비교하세요.
가져오기가 끝나면 클립보드를 일반 텍스트로 바꿔 인증 정보가 실수로 붙여 넣어질 가능성을 줄일 수 있습니다. 다만 이미 공유한 정보가 취소되는 것은 아닙니다. 전체 링크가 공개된 적이 있다면 이용 중인 서비스의 관리 메뉴에서 인증 정보를 변경한 뒤 앱에 저장된 내용도 업데이트하세요. 입력 방식이 편리하더라도 인증 정보 관리를 대신할 수는 없습니다. 원본 공유 정보는 계속 민감 데이터로 취급해야 합니다.
[Update]업데이트 설정
구독 새로고침과 앱 업데이트 구분
구독 새로고침은 원격 서버 목록을 다시 가져오는 작업이고, 앱 업데이트는 App Store에서 진행합니다. 서로 대신할 수 없습니다.
업데이트 전에 비교할 상태를 기록하세요
구독을 업데이트하면 서버가 추가·삭제·이름 변경될 수 있고 주소, 포트, 인증 정보가 바뀔 수도 있습니다. 실행하기 전에 올바른 그룹을 선택했는지 확인하고 현재 선택된 항목과 소속 구독을 기록하세요. 연결 문제를 확인 중이라면 먼저 오류 상황을 적어 둔 다음 새로고침하는 것이 좋습니다. 그렇지 않으면 목록이 바뀐 뒤 기존 문제와 새 매개변수가 섞여 어느 작업이 결과를 바꿨는지 판단하기 어려워집니다.
업데이트 후 로컬에서 직접 수정한 내용이 유지된다고 가정하지 마세요. 구독 항목은 원격 내용으로 관리되므로 로컬 이름, 정렬 순서, 항목이 유지되는지는 실제 업데이트 결과에 따라 다릅니다. 별도로 관리해야 하는 매개변수는 직접 입력 항목으로 만들고 용도를 표시하세요. 업데이트 전에 기존 그룹을 비울 필요도 없습니다. 이전 상태를 남겨 두면 가져오기에 실패했을 때 앱이 기존 데이터를 유지하는지 확인하는 데 도움이 됩니다.
수동 업데이트와 자동 업데이트의 역할
서비스 제공자가 매개변수 변경을 안내했거나 목록이 오래된 것처럼 보일 때, 또는 최초 가져오기 후 다시 확인할 때 수동 업데이트를 사용하세요. 해당 구독에서 업데이트를 실행하고 완료될 때까지 기다린 뒤 안내 문구와 그룹 내용을 확인합니다. 짧은 시간 안에 연속으로 탭해도 원격 오류가 해결되지는 않으며 결과를 구분하기 어려워질 수 있습니다. 한 번 실패했다면 다음 단계로 넘어가기 전에 오류가 네트워크, 인증, 파싱 중 어디에 해당하는지 확인하세요.
현재 앱에 자동 업데이트 관련 설정이 있다면 사용 빈도에 맞게 활성화하고 옵션을 확인할 수 있습니다. 시스템의 백그라운드 작업은 네트워크, 기기 상태, 시스템 제한의 영향을 받으므로 업데이트 주기를 설정했다고 해서 매번 정해진 시각에 요청이 완료되는 것은 아닙니다. 중요한 변경 사항을 확인해야 한다면 앱에서 실제 목록을 확인하고 필요하면 직접 새로고침하세요. 백그라운드 작업이 실행될 것으로 예상되는 시간에만 의존하지 마세요.
구독 업데이트가 사용하는 네트워크 경로는 현재 연결 상태, 라우팅 모드, 앱 설정에 따라 달라질 수 있습니다. 연결을 켠 상태에서 업데이트에 실패하고 끈 뒤 성공했다면 경로 차이를 확인할 이유는 있지만, 특정 서버가 고장 났다고 바로 단정할 수는 없습니다. 같은 기본 네트워크에서 비교하고 한 번에 한 조건만 바꾸세요. 네트워크를 바꾸고 주소를 교체한 뒤 구독 전체를 다시 가져오는 작업을 동시에 하지 마세요.
실패한 단계에 맞게 처리하고, 재설정으로 진단을 대신하지 마세요
요청 단계 실패는 연결할 수 없음, 시간 초과, 이름 확인 오류 등으로 나타날 수 있습니다. 이때는 기기에서 현재 네트워크를 정상적으로 사용할 수 있는지 확인하세요. 인증 또는 접근 단계에서 실패하면 주소에 인증 정보가 빠짐없이 포함되어 있는지, 원격에서 기존 주소를 폐기했는지 확인합니다. 파싱 단계에서 실패하면 반환 내용이 여전히 구독 형식인지 확인하세요. 단계마다 확인 대상이 다르므로 모두 ‘서버를 사용할 수 없음’으로 뭉뚱그리지 마세요.
원격에서 구독 주소를 변경했다면 기존 구독의 해당 항목을 수정한 뒤 업데이트 결과를 확인하세요. 그룹 이름만 바꿔도 요청 주소는 바뀌지 않으며, 서버 한 대만 수정해도 구독 전체의 진입점이 고쳐지지는 않습니다. 주소를 변경하기 전후로 비교할 그룹 두 개를 잠시 유지할 수 있지만, 어느 쪽이 이전 기록인지 명확히 표시하세요. 그래야 새 주소가 여전히 적용되지 않았다고 오해하며 이전 그룹을 계속 사용하는 일을 막을 수 있습니다.
[Update boundary]업데이트 성공 안내가 표시되어도 목록에 항목이 반드시 추가되는 것은 아니며 서버마다 연결이 보장되는 것도 아닙니다. 원격 내용이 바뀌지 않았다면 업데이트 후 목록이 그대로일 수 있습니다.
업데이트 후 그룹이 존재하는지, 항목 내용이 바뀌었는지, 현재 어떤 항목이 선택되었는지 순서대로 확인하세요. 원격 목록에서 서버가 빠지면 로컬에서 선택한 항목을 다시 확인해야 할 수 있습니다. 연결 스위치가 켜져 있다는 이유만으로 업데이트 전과 같은 항목을 사용 중이라고 판단하지 마세요. 규칙이 특정 이름의 객체를 참조한다면 해당 참조가 여전히 예상한 항목과 연결되는지도 확인하세요.
목록의 항목 수가 바뀌었다고 서비스 품질이 바뀌었다고 단정할 수 없습니다. 원격에서 항목을 분리하거나 합치거나 이름을 바꿨을 수 있으므로 실제 매개변수와 안내를 대조하세요. 여러 번 새로고침해도 예상한 내용을 받지 못한다면 오류 문구, 작업 순서, 완료한 확인 사항을 정리해 이용 중인 서비스의 관리 담당자에게 문의하세요. 문제 설명만 전달하고 공개된 곳에 전체 구독 주소를 올리지 마세요.
Shadowrocket 앱 자체는 App Store에서 확인하고 업데이트해야 하며 구독을 새로고침해도 앱이 업데이트되지는 않습니다. 앱 업데이트 여부, 호환성, 시스템 요구 사항은 App Store 페이지에 표시된 내용을 기준으로 합니다. 정식 다운로드 경로와 앱 ID 확인 방법은 정품 확인 안내를 참고하세요. 목록이 비어 있는 문제는 구독 요청 및 파싱 과정을 확인해야 합니다.
[Organize]여러 구독 정리
출처 관계와 알아보기 쉬운 이름 유지
정리의 목적은 각 항목의 출처와 업데이트 주체, 현재 선택 상태를 파악하는 것입니다. 모든 이름을 똑같이 만드는 것이 아닙니다.
구독 항목과 직접 입력 항목 구분하기
여러 구독을 함께 사용한다면 용도, 계정 내 식별명, 테스트 표시 등으로 각 그룹을 구분하기 쉽게 이름을 정하세요. 이름에 계정 전체 정보, 비밀번호, 구독 토큰을 넣지 말고 너무 길게 만들 필요도 없습니다. 좁은 화면에서도 구분되는 짧은 이름과 별도 관리 기록을 사용하는 편이 세부 정보를 이름에 모두 넣는 것보다 관리하기 쉽습니다.
구독 항목은 원격 목록에서 관리하고 직접 입력 항목은 사용자가 별도로 유지합니다. 특히 구독에서 복사해 테스트에 사용하는 항목은 로컬 비교용이라는 점이 드러나도록 이름을 구분하세요. 그렇지 않으면 구독을 새로고침한 뒤에도 복사본에 오래된 매개변수가 남아 이를 업데이트된 서버로 오해하고 원격에서 문제가 해결되지 않았다고 판단할 수 있습니다.
목록을 깔끔하게 합치려고 모든 서버를 하나씩 직접 입력 항목으로 복사하지 마세요. 기존 업데이트 관계가 끊기고 이후 인증이나 주소가 바뀔 때 항목마다 직접 관리해야 합니다. 별도 수정, 임시 비교, 특정 매개변수 보존이 꼭 필요할 때만 로컬 복사본을 만드세요. 그 외 항목은 해당 구독의 관리 범위에 두는 것이 좋습니다.
중복 여부는 여러 항목을 비교해 판단하세요
이름이 같아도 같은 서버라는 뜻은 아니며 주소가 같아도 연결 설정이 같은 것은 아닙니다. 포트, 프로토콜, 인증 정보, SNI, 전송 매개변수가 다를 수 있습니다. 정리하기 전에 최소한 소속 그룹, Type, 주소, 포트를 비교하세요. 그래도 판단하기 어렵다면 인증 및 전송 설정을 확인합니다. 민감 정보는 기기에서 비교하고 중복 항목을 정리하려고 공용 스프레드시트나 온라인 도구에 내보내지 마세요.
같은 구독을 두 번 가져왔다면 어느 그룹에 현재 유효한 주소가 저장되어 있는지, 어느 그룹이 선택되어 있거나 규칙에서 참조되는지 먼저 확인한 뒤 삭제할 그룹을 결정하세요. 생성 시점만 보고 판단하지 마세요. 나중에 가져온 항목의 주소가 불완전할 수도 있습니다. 남길 그룹이 업데이트되고 실제 요청도 성공하는지 확인한 뒤 다른 그룹을 삭제하면 기존 설정을 끊을 위험을 줄일 수 있습니다.
| 확인된 상황 | 먼저 확인할 항목 | 처리 원칙 |
|---|---|---|
| 이름이 완전히 같음 | 그룹, 프로토콜, 주소, 포트 | 항목이 일치하는지 확인한 뒤 중복 여부를 판단하세요. |
| 주소는 같지만 이름이 다름 | 인증, TLS, 전송 매개변수 | 서로 다른 연결 설정이 같은 주소를 사용할 수 있습니다. |
| 로컬 복사본과 구독 항목이 함께 있음 | 복사본의 용도와 마지막으로 확인한 매개변수 | 구분이 명확한 표시를 유지하고 복사본이 업데이트된다고 가정하지 마세요. |
| 업데이트 후 이름이 바뀜 | 원래 그룹과 실제 연결 항목 | 기존 이름만으로 검색하거나 삭제하지 마세요. |
서버 선택과 Global Routing을 구분하세요
서버 한 대를 선택해도 모든 요청이 그 서버를 거치는 것은 아닙니다. Global Routing의 Config, Proxy, Direct는 각각 설정, 프록시, 직접 연결 방식입니다. Config는 현재 설정의 규칙에 따라 트래픽을 처리하고, Proxy는 해당 트래픽을 프록시 방식으로 처리하며, Direct는 직접 연결합니다. 실제 요청을 테스트하기 전에 현재 모드를 확인하세요. 서버를 바꿨는데 요청이 규칙에 따라 직접 연결되면 선택이 적용되지 않았다고 오해할 수 있습니다.
Config 모드에서는 현재 활성화된 Config 파일과 규칙 순서도 확인하세요. 도메인이 DIRECT에 매칭되면 프록시 서버를 바꿔도 해당 요청의 연결 방식은 보통 달라지지 않습니다. 규칙에서 다른 정책 객체를 지정했다면 Home에서 선택한 서버 한 대를 따르지 않을 수도 있습니다. 서버 관리는 연결 정보를 다루고 규칙 관리는 연결 정보가 사용되는 시점을 다루므로 각각 확인해야 합니다.
여러 구독의 이름이 바뀌었다면 Config에서 이름을 참조하는 항목이 있는지 확인하세요. 내용을 확인하지 않은 채 일괄 변경하거나 이름 변경을 단순한 표시 수정으로 여기지 마세요. 참조 관계를 확인하고 기존 설정을 보존한 다음 하나씩 변경하고 검증하세요. 정책 구조가 익숙하지 않다면 이름을 그대로 유지하는 편이 안전합니다. 모든 항목을 한꺼번에 재정렬한 뒤 문제 원인을 찾으려 하지 마세요.
[Working copy]정리 중에는 검증된 상태를 보존하세요. 그룹 하나를 조정할 때마다 선택, 업데이트, 요청 결과를 확인한 뒤 다음 그룹으로 넘어갑니다.
여러 구독을 관리한다고 서버를 자주 바꿔 쓸 필요는 없습니다. 각 그룹의 역할, 임시 테스트 항목, 업데이트에 따라 바뀌는 매개변수를 파악하는 것이 더 중요합니다. 비공개 기록에는 ‘이 항목은 SNI 확인용’처럼 간단한 작업 메모를 남길 수 있습니다. 단순히 ‘잘 됨’이라고만 적는 것보다 근거가 있는 기록이 나중에 삭제, 복구, 이전을 결정할 때 도움이 되며 한 번의 우연한 성공을 지속적인 설정의 근거로 삼지 않게 해줍니다.
[Diagnostics]지연 시간 테스트 및 정렬
같은 조건에서 테스트 결과 비교
지연 시간 테스트는 특정 측정 조건에서 응답을 비교하는 기능입니다. 처리량, 안정성, 특정 웹사이트 접속 가능성을 모두 증명하지는 않습니다.
측정 대상과 테스트 방식부터 확인
Connectivity Test나 목록의 테스트 기능을 사용하기 전에 앱에서 사용하는 테스트 방식과 대상을 확인하세요. 방식에 따라 서버 포트 연결 시간을 측정할 수도 있고 프록시를 통한 테스트 대상 접근 과정을 포함할 수도 있어 결과의 의미가 다릅니다. 테스트 방식, 대상, 기본 네트워크, 시간 조건이 비슷해야 수치를 비교할 수 있습니다. 서로 다른 모드의 결과를 그대로 순위로 매기지 마세요.
테스트 수치는 한 번 또는 여러 번 측정한 결과이지 이후 모든 요청이 같은 결과를 낸다는 뜻은 아닙니다. 현재 네트워크 부하, 무선 신호, 서버 상태, 이름 확인, 대상의 응답이 모두 결과에 영향을 줄 수 있습니다. 한 번 높은 값이 나왔다고 항목을 바로 삭제하거나, 한 번 낮게 나왔다고 모든 용도에 적합하다고 판단하지 마세요. 네트워크를 유지한 채 몇 차례 반복해 결과가 일관적인지 확인한 뒤 전환 여부를 결정하세요.
시간 초과나 실패도 테스트 방식과 함께 해석해야 합니다. 테스트 대상에 연결할 수 없어 여러 서버가 동시에 실패할 수 있고, 프로토콜 항목이 잘못되어 특정 서버만 이상할 수도 있습니다. 테스트 실패가 서버 주소에 전혀 접근할 수 없다는 뜻은 아니며 테스트 성공이 특정 서비스 요청의 성공을 보장하지도 않습니다. 테스트 기능은 문제 위치를 찾는 단서로 사용하고 실제 요청으로 확인하세요.
재현 가능한 확인 순서 만들기
첫째, 네트워크 로그인 미완료나 불안정한 신호가 없는지 기본 네트워크를 확인합니다. 둘째, 이름이 비슷한 이전 항목을 테스트 중인 것은 아닌지 선택한 항목과 프로토콜 매개변수를 확인합니다. 셋째, 고정된 방식으로 테스트하고 결과가 나올 때까지 기다립니다. 넷째, Global Routing과 현재 Config를 확인한 뒤 필요한 대상을 직접 요청합니다. 각 단계에서 무엇을 확인했는지 설명할 수 있어야 합니다.
모든 항목이 동시에 실패하면 기본 네트워크, 공통 테스트 대상, 공통 설정을 먼저 확인하세요. 특정 구독만 실패하면 최근 업데이트 여부와 인증 정보 변경 여부를 살펴봅니다. 서버 한 대만 실패한다면 주소, 포트, TLS, 전송 매개변수를 확인하세요. 문제 범위를 좁히는 편이 앱을 다시 설치하거나 모든 구독을 지우는 것보다 확인 근거를 잘 보존하고 이미 올바른 설정을 다시 만들 필요도 줄입니다.
| 모드 | 화면에 표시되는 이름 | 실제 요청에서 확인할 항목 |
|---|---|---|
| 설정 | Config | 현재 파일, 매칭 규칙, 정책, 규칙 순서 |
| 프록시 | Proxy | 선택한 서버, 연결 매개변수, 실제 요청 결과 |
| 직접 연결 | Direct | 기본 네트워크와 대상 자체를 확인하세요. 직접 연결 성공으로 프록시 사용 가능 여부를 판단하지 마세요. |
실제 요청을 비교하려고 모드를 임시로 바꿀 때는 기존 상태를 기록하고 확인이 끝나면 복원하세요. 한 번 성공한 결과를 얻기 위해 이해하지 못한 모드를 계속 사용하지 마세요. 특히 Config에서는 요청 대상이 DIRECT나 다른 정책에 매칭될 수 있습니다. 서버 목록에 낮은 지연 시간이 표시되어도 해당 요청이 그 서버를 사용한다는 증거는 아닙니다.
정렬은 표시 방식일 뿐, 선택 상태는 따로 확인하세요
지연 시간순 정렬은 이번 테스트에서 응답이 빠른 항목을 찾는 데 도움이 됩니다. 하지만 정렬은 자동 선택이나 지속적인 상태 확인과 같지 않습니다. 정렬한 뒤 현재 선택 표시를 확인하고 목록 첫 항목이 사용 중이라고 착각하지 마세요. 이번 테스트에서 일부 항목만 완료되었다면 미측정, 시간 초과, 측정 완료 결과를 같은 종류로 취급하지 말고 먼저 테스트 범위를 확인하세요.
여러 항목을 테스트하는 동안 구독을 새로고침하거나 항목을 이동하지 마세요. 목록이 바뀌면 테스트 대상, 이름, 위치를 바로 대조하기 어려울 수 있습니다. 테스트를 마치고 비교할 항목을 기록한 뒤 업데이트나 정리를 진행하세요. 다시 테스트할 때 같은 네트워크와 방식을 사용해야 새 매개변수 때문인지 기기가 다른 네트워크로 바뀌었기 때문인지 판단할 수 있습니다.
[Evidence]테스트 방식, 기본 네트워크, 선택 항목, 실제 오류를 기록하면 지연 시간 숫자 하나만 남기는 것보다 문제 해결에 도움이 됩니다. 기록을 공유할 때는 모든 인증 정보를 삭제하세요.
실제 사용에서는 지연 시간과 속도도 구분해야 합니다. 응답 시간이 짧다고 대용량 파일 전송이 빠르거나 장시간 연결이 안정적이라는 뜻은 아닙니다. 테스트 대상, 네트워크, 사용 목적이 다르므로 이 페이지에서는 일률적인 합격 수치를 정하지 않습니다. 결과가 계속 달라진다면 먼저 같은 조건에서 재현하고, 잦은 일괄 테스트로 추가 요청을 만들지 마세요. 그런 다음 오류가 발생한 단계에 따라 매개변수, 구독, 규칙 관련 장을 확인하세요.
[Backup]삭제 및 백업
항목별 저장, 삭제, 복원
정리 작업 전에 백업 범위부터 확인하세요. 앱 구매 내역 복원과 서버 및 설정 복원은 별개입니다.
보존할 항목을 먼저 목록으로 정리
관리해야 할 항목에는 구독 주소, 직접 입력한 서버, Config 파일, 필요한 앱 설정이 포함될 수 있습니다. 이 항목들이 하나의 내보내기 기능으로 모두 저장되는 것은 아닙니다. 백업 전에 실제로 사용하는 항목을 정리하고 현재 앱의 Settings, Data 또는 해당 항목 메뉴에서 제공하는 백업·내보내기 기능을 확인하세요. 파일 하나가 저장되었다고 모든 비밀번호, 선택 상태, 규칙이 포함되었다고 단정할 수 없습니다.
구독 주소로 목록을 다시 가져올 수 있지만 별도로 입력한 서버의 백업을 대신하지는 않습니다. Config는 규칙 구조를 복원할 수 있어도 서버 인증 정보까지 포함하지 않을 수 있습니다. 반대로 서버 한 대만 내보내도 구독의 업데이트 관계는 복원되지 않습니다. 내보내기 내용의 유형과 설명을 확인하고 현재 사용 상태를 손상시키지 않으면서 실제 포함 항목을 점검하는 것이 가장 확실합니다.
원래 매개변수는 직접 관리할 수 있는 안전한 위치에 보관하고 민감 정보를 보호할 수 있는 저장 방식을 사용하세요. 구독 토큰, 비밀번호, UUID, 개인 키, 이러한 정보가 포함된 QR 코드는 공개 메모나 사진 앨범, 공유 링크에 올리지 마세요. 평범한 이름의 백업 파일에도 인증 정보가 포함될 수 있습니다. 다른 사람에게 보내기 전에 확장자만 보고 안전하다고 판단하지 말고 내용을 먼저 확인하세요.
삭제 전에 영향 범위 확인
서버 한 대 삭제, 구독 그룹 삭제, Config 삭제는 각각 다른 작업입니다. 원격 구독에 서버가 남아 있다면 이후 업데이트에서 다시 나타날 수 있습니다. 구독을 삭제하면 해당 구독의 로컬 관리 메뉴를 잃게 됩니다. 관련 항목의 처리 방식은 앱의 확인 안내를 따르세요. 실행 전에 안내를 읽고 현재 선택 항목, 규칙 참조, 보존할 로컬 수정 내용을 확인해 목록 정리를 설정 전체 삭제로 만들지 마세요.
로컬에서 삭제해도 원격 인증 정보가 자동으로 무효화되거나 원격 서비스가 중지되지는 않으며, 구독 토큰 변경을 대신하지도 않습니다. 정보 유출에 대응하려면 이용 중인 서비스 관리 메뉴에서 해당 인증 정보를 처리한 뒤 로컬 기록을 업데이트하세요. 앱에서 항목만 삭제해도 이미 복사된 비밀번호나 링크는 무효화되지 않습니다. QR 코드를 공유한 경우 특히 유의하세요.
삭제할 중복 그룹이 있다면 보존할 그룹의 업데이트와 실제 요청이 성공하는지 확인한 뒤 기존 그룹을 삭제하세요. 기존 그룹에 수동으로 조정한 내용이 있다면 이유와 필요한 매개변수를 먼저 기록합니다. 한 번에 하나씩 처리하고 각 작업 후 Home에서 현재 선택 항목과 Global Routing을 확인한 뒤 다음 항목으로 넘어가세요. 일괄 삭제는 빠르지만 실수로 삭제했을 때 영향을 받은 항목을 찾기 어려워집니다.
[Before delete]백업이 존재하고, 내용이 완전하며, 저장 위치에 접근할 수 있는지 확인한 뒤 삭제하세요. 백업 파일이 보인다고 해서 복원 가능성까지 검증된 것은 아닙니다.
복원할 때는 항목 간 관계에 따라 단계별로 확인
기기를 바꾸거나 앱을 다시 설치한 뒤 먼저 App Store에서 앱을 다시 다운로드하고, 보관해 둔 서버, 구독, 설정을 복원하세요. 앱 구매 기록은 스토어 계정에서 관리하고 연결 정보는 별도의 데이터이므로 혼동하지 마세요. 구매 항목 복원, 기기 호환성, 범용 구입 적용 여부는 App Store 페이지에 표시된 내용을 기준으로 합니다. 복원 메뉴는 구매 항목 및 기기 변경 안내를 참고하세요.
연결 정보를 복원한 뒤 구독 주소가 완전한지 확인하고 최신 목록을 가져오세요. 직접 입력한 서버는 인증 및 전송 항목을 확인합니다. 다음으로 필요한 Config를 복원하고 규칙 참조가 실제 항목과 연결되는지 확인한 뒤 Global Routing, 선택한 서버, 연결 상태를 점검하세요. 매개변수를 확인하기도 전에 여러 모드를 연달아 바꾸면 어느 단계에서 복원이 실패했는지 파악하기 어렵습니다.
백업한 지 오래됐다면 원격 매개변수가 이미 바뀌었을 수 있습니다. 이전 파일로 기존 구조를 복원할 수는 있지만 오래된 인증 정보가 계속 유효하다는 보장은 없습니다. 복원 후 현재 이용 중인 서비스 정보를 확인하고 필요하면 구독을 업데이트하거나 변경된 항목을 다시 입력하세요. 기기 이름, 네트워크 환경, 시스템 권한도 달라질 수 있으므로 처음 연결할 때 VPN 구성 관련 시스템 안내를 확인하고 다른 기기의 상태를 그대로 기준 삼지 마세요.
마지막으로 전체 과정을 확인하세요. 목록이 표시되는지, 필요한 구독을 업데이트할 수 있는지, 선택한 서버 매개변수가 올바른지, 실제 요청이 예상대로 처리되는지, 규칙 모드가 원래 계획대로 설정되었는지 점검합니다. 확인이 끝난 뒤 임시 복사본과 오래된 백업을 정리하고 필요한 복원 안내는 보관하세요. 처음 연결 과정을 다시 진행하려면 빠른 시작 가이드를 참고하세요. 특정 단계에서 문제가 생겼다면 이 페이지의 목차에서 해당 장으로 이동하면 됩니다. 모든 데이터를 삭제하는 것부터 다시 시작할 필요는 없습니다.