링크의 시작 부분으로 단일 설정과 구독을 구분한 뒤, 프로토콜별로 인증 정보, 서버 주소, 포트와 전송 매개변수를 확인하세요. 이미 서비스 제공업체의 설정 정보를 보유하고 Shadowrocket으로 가져오려는 사용자를 위한 안내입니다. 읽고 나면 텍스트를 단일 설정으로 가져올지 Subscribe로 저장할지 판단하고, 복사 과정에서 링크가 잘리거나 매개변수가 누락되는 문제도 점검할 수 있습니다. 아래 설정 예시는 문법 설명용 가상 값으로, 실제 연결에는 사용할 수 없습니다.
공유 링크와 구독 링크: 먼저 가져올 대상을 구분하세요
ss://, vmess://, vless://, trojan://에서 콜론 앞부분을 scheme이라고 하며, 링크 형식을 나타냅니다. 가져오기 도구가 뒤에 이어지는 텍스트를 어떻게 해석할지 알려줄 뿐, 서비스가 작동하는지, 인증 정보가 유효한지 또는 연결 품질이 어떤지를 보장하지는 않습니다. 단일 공유 링크에는 보통 서버 하나에 연결하기 위한 매개변수가 담겨 있으며, 가져오면 설정 하나가 만들어집니다.
구독 링크는 보통 HTTPS 주소이며, 해당 주소에 접속하면 설정 목록을 가져옵니다. Shadowrocket에 구독 주소를 저장하면 나중에 다시 요청해 목록을 갱신할 수 있습니다. 목록에 서버가 여러 개 있어야 하는 것은 아니며, 모두 같은 프로토콜을 사용해야 하는 것도 아닙니다. 항목이 하나뿐이라는 이유만으로 구독이 아니라고 판단할 수는 없습니다.
| 구분 항목 | 단일 공유 링크 | 구독 링크 |
|---|---|---|
| 일반적인 시작 형식 | ss://、vmess://、vless://、trojan:// | https://로 시작하며, 서비스 제공업체의 안내를 확인해야 합니다 |
| 내용을 가져오는 방식 | 링크에 매개변수가 직접 포함됨 | 네트워크 요청으로 설정 목록을 가져옴 |
| 이후 변경 사항 | 원래 링크의 매개변수는 자동으로 갱신되지 않음 | 업데이트하면 서비스 제공업체가 변경한 목록을 가져올 수 있음 |
| 민감 정보 | 비밀번호, UUID, 주소와 연결 매개변수 | 전체 목록에 접근할 수 있는 token이 포함될 수 있음 |
예를 들어 https://example.com/sub?token=xxxx는 구독 주소 형식을 보여주는 예시일 뿐입니다. 일반 웹페이지 주소, 계정 관리 페이지와 구독 주소는 모두 HTTPS로 시작할 수 있으므로, 임의의 웹 주소를 Subscribe에 붙여 넣는다고 설정이 만들어지는 것은 아닙니다. 기존 서비스 제공업체가 구독 주소로 명확히 안내한 주소를 사용하세요. 이 사이트는 서버나 구독을 제공·판매·추천하지 않습니다.
ss://: 사용자 정보 인코딩과 전체 문자열 인코딩 구분하기
ss://는 Shadowsocks에 사용됩니다. 일반적인 SIP002 형식은 암호화 방식과 비밀번호를 인코딩하고, 서버 주소와 포트는 평문으로 이어 붙입니다. 아래 예시에서 YWVzLTEyOC1nY206dGVzdA를 디코딩하면 aes-128-gcm:test가 됩니다. 콜론 왼쪽은 method, 오른쪽은 password입니다.
ss://[email protected]:8388#Example%20SS
ss://: Shadowsocks 공유 링크 형식을 선택합니다.YWVzLTEyOC1nY206dGVzdA: Base64URL로 인코딩된 사용자 정보이며, 구독 token이 아닙니다.server.example.invalid: 서버 주소입니다. 실제 연결에 사용할 수 없는 예시 도메인입니다.8388: 예시 서버 포트입니다. 실제 값은 서비스 제공업체가 안내한 설정과 일치해야 합니다.#Example%20SS: 표시 이름입니다.%20은 공백을 뜻합니다.
method:password@host:port 전체를 Base64로 인코딩한 구형 링크도 있습니다. 따라서 @가 보이지 않는다고 링크가 잘못된 것은 아닙니다. 먼저 가져오기 도구로 파싱한 뒤 결과를 확인하세요. 형식을 맞추려고 @, 콜론 또는 슬래시를 임의로 넣지 마세요. plugin 매개변수가 있는 링크에는 인코딩된 추가 설정이 포함될 수 있으므로, 물음표 앞부분만 남겨서는 안 됩니다.
vmess://: 먼저 JSON을 디코딩한 뒤 필드 확인하기
일반적인 VMess 공유 링크는 vmess:// 뒤에 Base64로 인코딩된 JSON 객체가 이어집니다. 아래에는 디코딩된 내용을 표시하며, 그대로 붙여 넣어 가져올 수 있는 완전한 공유 링크가 아닙니다. scheme 바로 뒤에 원본 JSON을 붙이지 말고, 예시를 실제 계정 설정으로 사용하지 마세요.
{
"v": "2",
"ps": "Example VMess",
"add": "server.example.invalid",
"port": "443",
"id": "11111111-1111-4111-8111-111111111111",
"aid": "0",
"scy": "auto",
"net": "ws",
"type": "none",
"host": "edge.example.invalid",
"path": "/example",
"tls": "tls",
"sni": "edge.example.invalid"
}
add와 port는 실제 접속 대상을 가리키고, id는 인증 식별자이며, net은 전송 유형을 나타냅니다. 예시는 WebSocket을 사용하므로 host와 path가 포함됩니다. TLS를 사용하는 경우 tls와 sni도 확인해야 합니다. 여기서 v는 공유 링크 형식의 필드이며 Shadowrocket 앱 버전이 아닙니다.
- 완전한
vmess://텍스트를 가져온 뒤 주소, 포트와 UUID가 있는지 먼저 확인하세요. - 전송 유형을 확인하세요. 서버에서 WebSocket을 요구한다면 설정을 '간단하게' 만들겠다고 일반 TCP로 바꾸지 마세요.
- WebSocket Host, 경로와 TLS Server Name을 각각 확인하세요. 세 항목의 역할은 서로 다르며 값이 같을 필요도 없습니다.
- 가져온 뒤 필드가 누락됐다면 기존 서비스 제공업체에 원래 매개변수를 확인하세요. 포트를 바꾸거나 인증을 끄는 방식으로 추측하지 마세요.
공유 링크 형식이나 매개변수 이름은 서로 다를 수 있습니다. 링크가 인식되더라도 모든 확장 필드가 올바르게 매핑됐다는 뜻은 아닙니다. 특히 전송 계층, TLS와 인증 매개변수를 저장 전에 하나씩 확인하세요. Base64 텍스트의 줄바꿈, 끝부분 문자 누락, 메신저에서 발생한 문장부호 변환으로 JSON이 완전히 복원되지 않을 수 있습니다.
vless://와 trojan://: 비슷한 URL, 서로 다른 인증 정보
VLESS와 Trojan 공유 링크는 일반 URL과 비슷한 구조를 갖습니다. 사용자 정보는 @ 앞에, 서버는 @ 뒤에 있으며, 물음표 뒤에는 연결 옵션, 해시 기호 뒤에는 메모가 이어집니다. 두 형식은 겉모습이 비슷하지만 인증 필드는 서로 바꿔 쓸 수 없습니다. VLESS는 보통 UUID를, Trojan은 비밀번호를 사용합니다.
vless://[email protected]:443?encryption=none&security=tls&type=ws&host=edge.example.invalid&path=%2Fexample&sni=edge.example.invalid#Example%20VLESS
trojan://[email protected]:443?security=tls&type=tcp&sni=edge.example.invalid#Example%20Trojan
| 필드 | 의미 및 확인 방법 |
|---|---|
encryption=none | VLESS의 프로토콜 매개변수입니다. 외부 TLS가 반드시 비활성화되어 있다는 뜻은 아닙니다. |
security=tls | 예시에서 TLS를 사용한다는 뜻입니다. Server Name과 인증서 검증도 확인해야 합니다. |
type=ws / type=tcp | 전송 유형을 나타내며 서버 설정과 일치해야 합니다. |
host와 path | WebSocket의 Host와 경로입니다. %2Fexample을 디코딩하면 /example이 됩니다. |
sni | TLS Server Name입니다. 접속 대상이 특정 주소라는 이유만으로 같은 값으로 바꾸면 안 됩니다. |
# 뒤의 텍스트 | 보통 표시 이름이며 인증이나 전송 방식에는 영향을 주지 않습니다. |
비밀번호나 메모에 @, #, & 같은 예약 문자가 포함되어 있으면 해당 위치에 맞게 퍼센트 인코딩해야 합니다. 예를 들어 사용자 정보에 들어가는 문자 그대로의 @는 %40으로 나타낼 수 있습니다. 링크 전체를 반복해서 인코딩하거나 디코딩하지 마세요. 비밀번호에 포함된 문자가 구분자로 잘못 해석될 수 있습니다.
결론: scheme만으로 모든 설정을 추측하지 말고 매개변수를 먼저 확인하세요
vless:// 또는 trojan://가 보여도 전송 유형, TLS Server Name과 서버 포트를 확인해야 합니다. 예시에서 443을 사용한다고 해서 본인 설정도 모두 443으로 바꾸지 마세요.
Shadowrocket 가져오기 절차: 단일 설정과 Subscribe를 구분하세요
아래는 iPhone / iPad에서의 조작 순서입니다. 기존 서비스 제공업체에서 전체 링크를 복사하고, 안내 문구나 따옴표, 문장 끝의 마침표가 함께 들어가지 않았는지 확인하세요. ss://, vmess://, vless://, trojan://는 단일 설정으로 가져오고, HTTPS 구독 주소는 특정 프록시 프로토콜을 직접 선택하는 대신 Subscribe로 저장해야 합니다.
- 단일 설정 가져오기: 공유 링크 전체를 복사한 뒤 Shadowrocket을 열고 클립보드 가져오기 안내가 표시되면 확인을 누르세요. 시스템에서 붙여넣기 권한을 요청하면 이번에 허용해야 앱이 링크를 가져올 수 있습니다.
- 안내가 표시되지 않는 경우: Home에서 오른쪽 상단의
+를 눌러 Add Server로 이동한 뒤 페이지의 URL 가져오기 기능을 사용하세요. 직접 입력하려면 Type에서 해당 프로토콜을 선택하고 원본 설정에 따라 각 항목을 입력합니다. - 구독 가져오기: Home →
+→ Type에서 Subscribe를 선택하고 URL에 구독 주소를 입력하세요. 알아보기 쉬운 메모를 설정해 저장한 뒤 구독을 업데이트합니다. - 저장 후 확인: Home으로 돌아가 단일 설정 또는 구독 그룹이 표시되는지 확인하세요. 항목을 열어 주소, 포트, 인증 정보와 전송 매개변수를 확인하고, 표시 이름만으로 설정이 올바른지 판단하지 마세요.
- 업데이트 대상 구분: Subscribe를 업데이트하면 원격 목록을 다시 요청합니다. 따로 저장한 단일 설정의 비밀번호나 서버 주소는 구독 업데이트만으로 변경되지 않습니다.
QR 코드는 텍스트를 담는 방식일 뿐, 내용이 단일 설정인지 구독인지를 결정하지 않습니다. 스캔 전후에 디코딩된 내용의 scheme을 확인하세요. QR 코드에 계정 웹페이지 주소가 들어 있다면 서버 설정으로 사용할 수 없습니다. 처음 연결할 때 시스템에서 VPN 설정 권한을 요청하면 Shadowrocket에서 진행 중인지 확인한 뒤 허용하세요.
가져온 뒤 접속되지 않는 경우: Global Routing으로 규칙과 연결 상태 구분하기
Home에 표시된다는 것은 설정 저장에 성공했다는 뜻일 뿐, 인증이나 TLS, 대상 주소 접속까지 정상이라는 뜻은 아닙니다. 확인할 서버를 선택해 Connectivity Test를 실행하고 실제 웹 요청 결과도 살펴보세요. 테스트 한 번에 응답이 왔다고 모든 앱, 도메인 또는 전송 방식이 정상이라고 단정할 수는 없습니다.
Global Routing → Config
권장현재 Config의 규칙에 따라 정책을 선택합니다. 규칙에 일치하지 않는 트래픽의 경로는 FINAL 등의 기본 규칙으로 결정되며, 기본적으로 모두 직접 연결되는 것은 아닙니다. 일상적으로 사용하기 전에 규칙과 선택한 서버를 확인한 뒤 이 설정으로 되돌리세요.
적합한 경우: 규칙을 확인하고 대상별로 트래픽을 분리하는 일상적인 설정
Global Routing → Proxy
클라이언트가 처리하는 범위의 트래픽을 프록시로 보냅니다. Config의 규칙 분기가 문제의 원인인지 확인할 때 잠시 사용할 수 있습니다. 전환 후에도 실패한다면 인증 정보, 서버, 전송 및 TLS 매개변수를 계속 확인하세요.
적합한 경우: 규칙의 영향을 잠시 확인한 뒤 원래 설정으로 복원
Global Routing → Direct
클라이언트가 처리하는 범위의 트래픽을 직접 연결합니다. 이때 웹페이지가 열려도 방금 가져온 서버에 연결할 수 있다는 뜻은 아닙니다. 공유 링크를 확인할 때 직접 연결 결과를 프록시 테스트 결과로 간주하지 마세요.
적합한 경우: 기본 네트워크 상태를 비교할 때. 서버 인증 확인용은 아닙니다.
한 번에 설정 하나만 변경하고 변경 전후의 결과를 기록하세요. 예를 들어 'Config에서 특정 도메인에 접속할 수 없지만 Proxy로 바꾸면 접속됨'이라면 해당 도메인에 적용되는 규칙을 확인해야 합니다. '두 설정 모두 접속 실패'라면 연결 매개변수, 기본 네트워크와 대상 서비스 중 어느 쪽에 문제가 있는지 추가로 살펴보세요. TLS 인증 오류가 발생하면 Server Name, 인증서 유효성과 시스템 시간을 확인하세요. 인증을 끄는 방법을 일반적인 해결책으로 사용해서는 안 됩니다.
자주 묻는 문제: 링크 잘림, 중복 가져오기와 업데이트 차이
복사해서 붙여 넣었더니 형식 오류가 표시됩니다. 프로토콜을 지원하지 않는 건가요?
먼저 vmess://가 누락되는 등 시작 부분이 온전한지 확인한 다음, 끝부분에 한국어 마침표나 줄바꿈이 들어갔는지 살펴보세요. 원본에서 링크 전체를 다시 복사하고, 메신저 말풍선에 보이는 한 줄만 복사하지 마세요. 형식 오류가 발생하면 먼저 텍스트가 온전한지 확인해야 하며, 이를 곧바로 프로토콜을 사용할 수 없다는 뜻으로 받아들여서는 안 됩니다.
구독을 업데이트했는데 수동으로 추가한 항목의 비밀번호는 왜 그대로인가요?
구독 그룹과 개별 항목은 서로 다른 대상입니다. 먼저 Home에서 현재 어떤 그룹을 보고 있는지 확인한 뒤 구독 업데이트 결과를 살펴보세요. 직접 추가한 항목은 기존 서비스 제공업체에서 받은 새 매개변수로 따로 수정하거나 새 단일 링크를 다시 가져와야 합니다.
서버 이름과 주소가 있는데도 연결되지 않는 이유는 무엇인가요?
해당 항목의 편집 화면을 열어 포트, 비밀번호 또는 UUID, 전송 유형, TLS Server Name, WebSocket Host와 경로를 차례로 확인하세요. 이름은 메모일 뿐입니다. 주소가 맞아도 경로가 다르면 핸드셰이크가 실패할 수 있습니다. 확인을 마친 뒤 Connectivity Test와 실제 접속 테스트를 진행하세요.
전체 링크를 공개 토론 게시판에 올려 확인을 요청해도 되나요?
전체 링크, QR 코드 또는 구독 token을 공개하지 마세요. 문의할 때는 scheme, 전송 유형, 민감 정보를 가린 오류 내용과 재현 절차만 남기면 됩니다. 인증 정보가 이미 노출됐다면 기존 서비스 제공업체의 계정 관리 기능으로 재설정하거나 폐기한 다음 로컬 항목을 업데이트하세요.
설정을 정리할 때는 현재 작동하는 항목을 먼저 보존하고, 새로 가져온 항목을 확인한 뒤 중복 내용을 정리하세요. 이름이 같아도 같은 항목이 아닐 수 있고, 서버 주소가 같아도 포트, 계정 또는 전송 매개변수가 다를 수 있습니다. 중복 여부는 메모 이름만 보지 말고 전체 설정을 비교해 판단하세요.