이 글은 이미 이용 중인 서비스의 설정이나 구독을 보유한 사용자를 대상으로 링크 유형을 구분하고, 프로토콜 필드를 확인한 뒤 적절한 가져오기 방법을 선택하는 방법을 안내합니다. Shadowrocket은 설정 데이터를 읽으며 QR 코드는 같은 내용을 담는 또 다른 형식입니다. 단일 설정과 원격 구독을 먼저 구분하고 주소, 포트, 인증 필드를 확인하면 구독 주소를 서버 주소 입력란에 넣는 실수를 줄일 수 있습니다.
1. 단일 노드 URI와 구독 URL의 차이
ss://, vmess://, vless://, trojan://은 여기서 다루는 네 가지 공유 링크 접두어입니다. 각 접두어는 연결 매개변수를 해석하는 방식을 나타내며, 일반적으로 서버 설정 하나에 해당합니다. 구독 URL은 원격 콘텐츠를 가리키며, Shadowrocket이 해당 콘텐츠를 가져온 뒤 내부 항목을 해석합니다. 구독 하나에 여러 프로토콜의 설정이 포함될 수도 있고 항목이 하나뿐일 수도 있습니다.
흔히 구독 주소에는 HTTPS가 사용됩니다. 예를 들어 https://example.com/sub?token=xxxx와 같은 형태입니다. 이는 설명을 위한 가상의 값이며 실제 설정을 가져올 수 없습니다. https://로 시작한다는 이유만으로 구독 URL이라고 단정할 수는 없습니다. 웹페이지, 계정 페이지, 설정 파일 주소도 같은 접두어를 사용할 수 있으므로 서비스 제공자의 안내와 실제 응답 내용을 확인해야 합니다.
판별 방법: 링크가 반환하는 내용을 먼저 확인하세요
프로토콜 접두어가 있으면 단일 설정으로 처리하세요. HTTPS 주소라면 Subscribe를 사용하기 전에 로그인 페이지가 아닌 구독 인터페이스인지 확인하세요. 쿼리 매개변수를 삭제해 구독 주소를 ‘간단하게’ 만들지 마세요.
2. ss://와 vmess://: 서로 다른 인코딩 방식
ss://: Shadowsocks 인증 정보와 서버 위치
일반적인 Shadowsocks 공유 형식은 암호화 방식과 비밀번호를 결합해 인코딩하고, 서버 도메인과 포트는 바깥에 둡니다. 과거 형식에서는 더 많은 필드를 한꺼번에 인코딩하기도 했습니다. 아래 예시는 구조 설명용이며 실제로 사용할 수 있는 서비스가 아닙니다.
ss://[email protected]:8388#Demo-SS
Base64 디코딩 후 인증 부분:
aes-128-gcm:pass
aes-128-gcm은 암호화 방식이고pass는 예시 비밀번호입니다. 가져온 뒤 각 항목을 따로 확인해야 하며, 인코딩된 문자열 전체를 비밀번호 입력란에 넣으면 안 됩니다.example.com은 예시 서버 주소이고8388은 이 예시의 포트입니다. 실제 포트는 사용 중인 서비스 설정과 일치해야 합니다.#Demo-SS는 표시용 메모이며 서버 인증에는 사용되지 않습니다. 메모에 한글이나 공백이 있으면 퍼센트 인코딩될 수 있습니다.- 링크에 플러그인 매개변수가 포함되어 있으면 전체 매개변수를 유지하고 현재 앱이 해당 설정을 해석할 수 있는지 확인하세요. 도메인, 포트, 비밀번호만 남겨서는 안 됩니다.
vmess://: 일반적으로 JSON을 Base64로 인코딩한 형식
일반적인 VMess 공유 링크는 JSON을 인코딩한 문자열을 vmess:// 뒤에 붙입니다. 아래는 디코딩한 예시이며 그대로 붙여 넣을 수 있는 완전한 URI가 아닙니다. VMess 공유 형식은 출처에 따라 다를 수 있으므로 특정 JSON 필드 배치를 모든 링크에 공통되는 표준으로 간주해서는 안 됩니다.
{
"v": "2",
"ps": "Demo-VMess",
"add": "example.com",
"port": "443",
"id": "00000000-0000-0000-0000-000000000000",
"aid": "0",
"net": "ws",
"type": "none",
"host": "example.com",
"path": "/demo",
"tls": "tls"
}
이 형식에서 add와 port는 연결 주소와 포트를, id는 인증 UUID를, net은 전송 방식을 나타냅니다. 여기서 host와 path는 WebSocket 관련 매개변수이므로 웹 주소처럼 보인다는 이유로 생략하면 안 됩니다. 연결 주소, HTTP Host, TLS 서버 이름은 서로 다른 개념입니다. 실제 값은 기존 설정과 하나씩 대조해 확인하세요.
3. vless://와 trojan://: 비슷해 보이는 인증 필드, 서로 다른 의미
두 링크 모두 일반적으로 ‘인증 정보, 서버 주소, 포트, 쿼리 매개변수, 메모’ 순서로 표시됩니다. 모양이 비슷하다고 해서 프로토콜을 서로 바꿔 쓸 수 있는 것은 아닙니다. 아래 도메인, UUID, 비밀번호는 모두 예시 데이터입니다.
vless://[email protected]:443?encryption=none&security=tls&type=ws&host=example.com&path=%2Fdemo&sni=example.com#Demo-VLESS
trojan://[email protected]:443?security=tls&type=tcp&sni=example.com#Demo-Trojan
| 필드 위치 | VLESS 예시 | Trojan 예시 | 확인 사항 |
|---|---|---|---|
@ 앞 | UUID | 비밀번호 | 인증 방식이 다르므로 서로 대신 입력할 수 없습니다 |
| 주소와 포트 | example.com:443 | example.com:443 | 443은 예시값일 뿐이며 기존 설정을 따릅니다 |
type | ws | tcp | 전송 방식을 나타내며 프로토콜 이름은 아닙니다 |
sni | example.com | example.com | TLS 서버 이름 관련 설정에 사용됩니다 |
# 뒤 | Demo-VLESS | Demo-Trojan | 표시용 메모이며 인증 필드가 아닙니다 |
encryption=none은 VLESS 예시의 프로토콜 매개변수이며, 이 예시에서 TLS를 사용하지 않는다는 뜻은 아닙니다. 여기서 security=tls는 TLS 관련 설정을 지정합니다. 포트가 443이라는 이유만으로 TLS가 활성화되었다고 판단해서도 안 됩니다. 포트 번호 자체는 암호화 방식을 나타내지 않습니다.
쿼리 매개변수의 %2F는 슬래시를 나타내며 &는 매개변수를 구분합니다. 복사할 때는 원본 전체 텍스트를 그대로 유지해 이스케이프된 경로가 다시 인코딩되지 않도록 하세요. 공유 형식에 따라 지원하는 매개변수가 다르므로 가져온 뒤 TLS, 전송 방식, Host, Path 등의 값이 해당 설정에 제대로 반영되었는지 확인해야 합니다.
4. QR 코드, 붙여넣기, Subscribe: 설정 유형에 맞는 가져오기 방법
QR 코드에는 단일 URI나 구독 URL을 담을 수 있습니다. QR 코드를 스캔해도 링크 형식 자체는 바뀌지 않습니다. 아래 비교는 Shadowrocket의 가져오기 방법에 한정됩니다. ‘권장’은 업데이트 가능한 구독을 이미 보유한 경우에 적합한 방법이라는 뜻이며, 특정 프로토콜이나 서비스가 더 낫다는 의미는 아닙니다.
Subscribe
권장원격 구독 주소를 저장한 뒤 해당 주소에서 설정 목록을 가져옵니다. 이후 업데이트할 때도 공유 URI를 하나씩 다시 붙여 넣는 대신 같은 주소를 사용합니다.
적합한 경우: 구독 URL을 보유하고 원격 업데이트 연결을 유지하려는 경우
공유 URI 붙여넣기
프로토콜 링크 전체를 복사한 다음 앱의 클립보드 가져오기 기능을 사용합니다. 가져오는 것은 해당 텍스트에 포함된 매개변수이며 구독 관계가 자동으로 생성되지는 않습니다.
적합한 경우: ss://, vmess://, vless:// 또는 trojan:// 링크 하나를 받은 경우
QR 코드 스캔
Home에서 스캔 기능을 사용해 QR 코드를 읽은 다음 인식된 내용을 확인합니다. 결과가 HTTPS 주소라면 구독 인터페이스인지 추가로 확인해야 합니다.
적합한 경우: 설정이 QR 코드로 제공되어 긴 문자열을 직접 입력하지 않으려는 경우
구독 가져오기 단계
- 이미 사용 중인 서비스의 관리 페이지에서 구독 URL 전체를 복사하고 경로와 쿼리 매개변수를 그대로 유지하세요. 페이지 제목이나 로그인 페이지 주소를 복사하지 마세요.
Home → + → Type → Subscribe로 이동해 구독 주소를URL에 입력하고, 알아보기 쉬운 메모를 작성한 뒤 저장합니다.- 가져오기가 완료될 때까지 기다린 다음 예상한 설정 항목이 표시되는지 확인하세요. HTTP 오류나 파싱 실패가 발생했다면 목록이 비어 있는 것을 가져오기 성공으로 간주해서는 안 됩니다.
- 원격 변경 내용을 반영하려면 Home에서 해당 구독의 업데이트 기능을 사용하세요. 업데이트 후 항목 수, 주소, 선택된 항목이 바뀌었는지 확인합니다.
단일 URI를 가져오려면 프로토콜 접두어부터 마지막 메모까지 전체 텍스트를 먼저 복사한 다음 Shadowrocket으로 돌아가 클립보드에서 가져오세요. 시스템에서 붙여넣은 콘텐츠 접근을 허용할지 묻는 경우 이번 작업에 필요한 권한을 부여하면 됩니다. 인식된 결과가 나타나지 않으면 채팅 앱의 서식 때문에 문자열에 공백, 줄바꿈, 한글 문장 부호가 삽입되지 않았는지 확인하세요. URI 전체를 서버 주소 입력란 하나에 붙여 넣지 마세요.
5. 가져온 뒤 연결 상태와 라우팅을 각각 확인
Home에 항목이 표시된다는 것은 설정이 저장되었다는 뜻일 뿐, 인증, TLS 핸드셰이크, 대상 웹페이지 접속이 모두 성공했다는 의미는 아닙니다. 먼저 해당 항목의 편집 화면을 열어 원본 설정과 프로토콜, 주소, 포트, 인증 필드를 대조한 다음 전송 및 TLS 매개변수를 확인하세요.
- Home에서 사용할 항목을 선택하고 구독 업데이트 전에 남아 있던 다른 설정을 선택한 것은 아닌지 확인하세요.
Connectivity Test를 실행하고 성공, 시간 초과 또는 오류 등 구체적인 결과를 기록하세요. 테스트 결과만으로 대상 웹사이트에 실제로 접속할 수 있는지 확인할 수는 없습니다.Home → Global Routing을 확인하세요.Config은 현재 설정의 규칙에 따라 트래픽을 처리하고,Proxy는 프록시 경로를 사용하며,Direct는 직접 연결합니다.Scene은 지정된 장면에 따라 처리합니다.Config을 사용하는 경우 Config에서도 현재 설정과 규칙을 확인하세요. 공유 URI에는 일반적으로DOMAIN-SUFFIX,GEOIP,IP-CIDR,FINAL규칙이 포함되지 않습니다.
구독 업데이트는 원격 항목을 동기화하는 기능이며 로컬 라우팅 규칙을 자동으로 수정하지 않습니다. Settings → On Demand는 조건에 따라 연결을 시작하는 동작을 관리하며 구독 가져오기 메뉴가 아닙니다. 가져오기, 연결 트리거, 라우팅을 각각 구분해 확인해야 문제가 발생한 단계를 찾을 수 있습니다.
6. 공유 링크와 구독 업데이트 관련 자주 묻는 질문
ss://를 복사했는데 인식되지 않는 이유는 무엇인가요?
접두어가 그대로 있는지, 텍스트가 잘리지 않았는지, 따옴표나 설명 문구가 섞이지 않았는지 먼저 확인하세요. 원본에서 전체 링크를 다시 복사한 뒤 클립보드 가져오기를 실행합니다. 그래도 실패하면 플러그인 매개변수가 포함된 링크인지 또는 다른 인코딩 형식인지 확인하고, 사용 중인 서비스 제공자에게 현재 앱이 지원하는 형식의 설정을 요청하세요.
구독 URL이 웹페이지에서 열리는데 Subscribe에서 오류가 나는 이유는 무엇인가요?
웹페이지가 열린다는 사실은 응답을 받았다는 뜻일 뿐입니다. 로그인 페이지로 이동하는지, 설정 콘텐츠가 아닌 계정 안내가 반환되는지 확인하세요. URL의 token이 온전히 포함되어 있는지도 점검하세요. 401 또는 403 오류가 발생하면 먼저 인증 상태를 확인하고, 시간 초과가 발생하면 현재 네트워크에서 구독 호스트에 연결할 수 있는지 확인하세요.
구독을 업데이트한 뒤 직접 수정한 항목이 바뀌는 이유는 무엇인가요?
구독 항목은 원격 콘텐츠에서 가져오므로 업데이트할 때 다시 생성되거나 교체될 수 있습니다. 직접 수정한 내용을 유지해야 한다면 필요한 매개변수를 별도의 설정으로 저장하고 기록한 뒤 업데이트하세요. 업데이트가 끝나면 현재 선택된 항목을 다시 확인하세요. 메모가 같다는 이유만으로 항목 내용도 같다고 판단하지 마세요.
문제 해결을 위해 전체 링크를 다른 사람에게 보내도 되나요?
공유 URI에는 비밀번호나 UUID가 포함될 수 있고 구독 URL의 token은 전체 설정에 접근할 수 있는 권한을 부여할 수 있습니다. 인증 정보와 token을 가리고 프로토콜, 포트, 오류 메시지, 필요한 전송 설정만 제공하세요. 유효한 인증 정보가 이미 유출되었다면 사용 중인 서비스의 관리 페이지에서 재설정한 다음 로컬 설정을 업데이트하세요.
Shadowrocket은 폐쇄형 유료 앱으로, 주로 iPhone과 iPad에서 사용하며 App Store에서만 받을 수 있습니다. 앱은 일회성 구매이며 연결 서비스는 포함되지 않습니다. 이 글은 사용자가 자신의 설정과 구독을 이미 보유한 경우를 전제로 합니다. 이 사이트는 노드, 구독 또는 연결 서비스를 제공·판매·추천하지 않습니다.