단일 공유 링크는 보통 서버 하나의 정보를 담고, 구독 링크는 서버 목록을 가져오고 업데이트하는 데 사용됩니다. 직접 보유한 서비스 제공업체의 설정 정보나 구독 링크가 있는 사용자를 위해 Shadowrocket의 Home → Add Server에서 가져오기 메뉴를 선택하는 방법, 네 가지 링크 형식을 구분하는 방법, 가져온 뒤 필드를 확인하는 방법을 설명합니다. 예시에 나오는 도메인, 비밀번호, UUID, token은 모두 임의의 값이며 실제 연결에 사용할 수 없습니다.
1. 먼저 구분하기: 서버 정보를 담은 링크인가, 목록을 가져오는 링크인가?
먼저 링크의 시작 부분을 확인하고 제공업체의 안내와 대조하세요. 링크 길이만으로 구독 링크인지 판단할 수는 없습니다. ss://, vmess://, vless://, trojan://는 보통 서버 하나의 연결 매개변수를 담는 공유 형식입니다. https://로 시작하는 주소는 구독 링크일 수도 있고 웹페이지나 원격 구성 파일일 수도 있으므로, 제공되는 콘텐츠의 용도를 확인해야 합니다.
| 비교 항목 | 단일 공유 링크 | 구독 링크 |
|---|---|---|
| 주요 내용 | 서버 하나의 주소, 포트, 인증 및 전송 매개변수 | 서버 목록을 가져오는 주소이며, 접근용 token이 포함될 수 있음 |
| 일반적인 시작 부분 | ss://、vmess://、vless://、trojan:// | https://로 시작하며 구체적인 용도는 제공업체의 안내에 따름 |
| 가져오기 메뉴 | 클립보드에서 가져오라는 안내를 따르거나 Home → Add Server에서 해당 Type을 선택해 입력 | Home → Add Server → Type → Subscribe |
| 이후 관리 | 매개변수가 바뀌면 다시 가져오거나 수정 | 기존 구독 항목에서 목록 업데이트 |
구독은 프록시 프로토콜의 한 종류가 아니며, https:// 주소만으로 목록에 특정 프로토콜만 포함되어 있다고 판단할 수도 없습니다. 구독 응답에는 제공업체가 출력한 형식에 따라 서로 다른 유형의 서버 정보가 여러 개 포함될 수 있습니다. 구독에 항목이 하나만 있을 수도 있으므로, 가져온 뒤 항목 수만 보고 링크의 종류를 판단하지 마세요.
2. 네 가지 공유 형식에서 확인할 항목
접두사를 확인하는 것은 첫 단계일 뿐입니다. 저장하기 전에 Add Server에서 실제 필드와 대조해야 합니다. 주소와 포트가 맞더라도 인증, TLS, 전송 매개변수가 올바르다는 뜻은 아닙니다. 아래 예시는 형식을 알아보기 위한 것이며 실제로 사용할 수 있는 서비스 정보가 아닙니다.
ss://: Method, Password, 주소와 포트 확인
Shadowsocks 공유 형식은 암호화 방식과 비밀번호를 조합해 Base64로 인코딩한 다음 서버 주소와 포트를 붙이는 경우가 많습니다. 아래 예시에서 인증 정보 부분을 디코딩하면 aes-128-gcm:test가 됩니다. 예시 포트는 8388이며, 모든 Shadowsocks 서비스가 이 포트를 사용하는 것은 아닙니다.
ss://[email protected]:8388#Example-SS
- Home → Add Server → Type에서
Shadowsocks를 선택하고 Address, Port, Method, Password를 확인하세요. #Example-SS는 메모 부분이며 비밀번호에 포함되지 않습니다.- 원래 링크에
plugin매개변수가 있다면 해당 확장 옵션도 확인해야 합니다. 주소, 포트, 비밀번호만 남겨서는 안 됩니다.
vmess://: 흔히 Base64로 인코딩된 JSON 형식
VMess 공유 링크는 일반적으로 JSON 객체를 인코딩해 vmess:// 뒤에 붙이며, 사용자@주소 형식으로 표시하지 않습니다. 아래는 디코딩한 예시이며, 그대로 붙여 넣어 가져올 수 있는 완전한 공유 링크가 아닙니다.
{
"v": "2",
"ps": "Example-VMess",
"add": "vmess.example.com",
"port": "443",
"id": "00000000-0000-4000-8000-000000000001",
"aid": "0",
"net": "ws",
"type": "none",
"host": "edge.example.com",
"path": "/demo",
"tls": "tls",
"sni": "edge.example.com"
}
add와port는 연결 대상이며id는 UUID입니다.v는 공유 데이터의 형식 필드이지 앱 버전이 아닙니다.net=ws는 WebSocket을 뜻하며,host와path는 전송 설정에 맞춰야 합니다. 모두 서버 주소로 취급하면 안 됩니다.tls와sni는 TLS 설정과 대조해야 합니다. 포트가443이라는 이유만으로 값을 임의로 추가하거나 삭제하지 마세요.
vless://: UUID 외에 전송 및 TLS 매개변수도 확인
VLESS는 URI 형식으로 매개변수를 지정하는 경우가 많습니다. 아래 예시에서는 UUID가 @ 앞에 있으며, 쿼리 부분에 TCP 전송과 TLS 설정이 표시됩니다. encryption=none이라고 해서 연결 전체에 TLS가 없다는 뜻은 아닙니다.
vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=vless.example.com#Example-VLESS
- Add Server에서
VLESS를 선택하고 UUID, Address, Port를 먼저 확인하세요. - 전송 유형과 TLS Server Name도 확인하세요. 원래 링크에
flow같은 필드가 있다면 해당 매개변수에 따라 설정하고, 예시만 보고 임의로 추가하지 마세요. - 같은
vless://접두사에도 서로 다른 전송 조합이 사용될 수 있습니다. 모든 VLESS 링크를 TCP 예시와 똑같이 설정하면 안 됩니다.
trojan://: Password와 TLS Server Name을 각각 확인
Trojan 링크는 일반적으로 @ 앞에 비밀번호를 포함합니다. 비밀번호에 URI 예약 문자가 있으면 올바르게 퍼센트 인코딩해야 합니다. 인코딩된 문자열을 다시 인코딩하면 실제 인증 정보가 달라집니다.
trojan://[email protected]:443?security=tls&type=tcp&sni=trojan.example.com#Example-Trojan
- Add Server에서
Trojan을 선택하고 Password, Address, Port, TLS 설정을 각각 확인하세요. sni는 TLS 핸드셰이크에 사용하는 서버 이름입니다. 연결에 사용하는 Address와 반드시 같지는 않습니다.- 연결 오류를 피하려고 인증서 검증을 임의로 끄지 마세요. 먼저 서버 이름, 기기 시간, 원래 매개변수를 확인하세요.
3. Home에서 가져오기 메뉴 선택하기
기존 구독은 Subscribe 항목으로 유지하세요. 공유 링크가 하나뿐이라면 먼저 앱의 클립보드 자동 인식을 이용해 보세요. 아래에서는 Add Server의 각 설정 용도를 비교합니다. ‘권장’은 이미 구독 링크를 보유한 경우에만 해당하며, 프로토콜 성능 순위를 뜻하지 않습니다.
Type → Subscribe
권장URL에 보유한 구독 주소를 입력하고 저장하면 목록을 가져옵니다. 구독 관계를 유지하면 이후에도 기존 항목에서 업데이트할 수 있어 매개변수를 하나씩 관리할 필요가 없습니다.
적합한 경우: 기존 구독이 있고 서버 목록을 계속 업데이트해야 할 때
Type → VLESS 등 해당 프로토콜 선택
서버 하나의 실제 프로토콜에 맞춰 Address, Port, 인증 필드를 입력합니다. 여기서 VLESS는 메뉴 예시일 뿐이며, 다른 프로토콜은 각각 해당하는 Type을 선택해야 합니다.
적합한 경우: 서버 매개변수 전체를 보유했거나 공유 링크를 자동으로 인식하지 못할 때
결론: 이후 업데이트가 필요하다면 기존 구독 항목을 유지하세요
자료에 구독 주소라고 명시되어 있다면 Type → Subscribe에서 원래 URL을 저장하세요. 처음 가져온 단일 항목을 구독 자체로 취급하면 이후 원래 목록을 업데이트할 때 해당 항목을 계속 사용할 수 없습니다.
진행 방법: 보유한 정보에 맞는 절차 선택
단일 공유 링크를 보유한 경우
ss://등의 접두사부터 링크 전체를 복사하세요. 대화창의 따옴표나 설명은 포함하지 마세요.- Shadowrocket을 여세요. 클립보드에서 가져오라는 안내가 표시되면 확인하고, 시스템에서 붙여넣기 권한을 요청하면 필요한 경우 허용하세요.
- 안내가 표시되지 않으면 Home → Add Server에서 해당 Type을 선택하고 원래 매개변수를 기준으로 직접 입력하세요.
- 저장한 뒤 항목의 편집 화면을 열어 주소, 포트, 인증, 전송, TLS 설정을 확인하세요.
구독 주소를 보유한 경우
- Home → Add Server → Type → Subscribe로 이동하세요.
- URL에 구독 주소 전체를 입력하세요. 아래 예시는 임의의 값입니다.
- 저장한 뒤 목록을 불러올 때까지 기다립니다. Home으로 돌아가 구독 그룹과 항목을 확인하세요.
- 이후에는 기존 구독 항목에서 업데이트해 같은 구독을 반복해서 추가하지 않도록 하세요.
두 절차 모두 저장된 필드를 확인하는 것으로 마무리해야 합니다. ‘저장 성공’만으로 연결이 가능하다고 판단해서는 안 됩니다.
https://example.com/sub?token=xxxx
위 HTTPS 주소는 텍스트 예시일 뿐이므로 요청하거나 가져오지 마세요. 실제로는 보유한 구독 원문을 사용하고 쿼리 매개변수를 그대로 유지해야 합니다. 링크가 채팅 앱에서 줄바꿈되었다면 공백, 줄바꿈, 문장 끝의 구두점이 섞이지 않았는지 먼저 확인하세요.
4. 구독 업데이트와 연결 테스트를 따로 확인하는 방법
구독을 성공적으로 가져왔다는 것은 목록을 불러왔다는 뜻일 뿐, 모든 서버에 연결할 수 있다는 뜻은 아닙니다. 반대로 기존 서버를 사용할 수 있다고 해서 구독 주소가 여전히 유효하다는 뜻도 아닙니다. 구독에 접근하는 요청과 프록시 연결에는 서로 다른 요청 및 인증 정보가 사용됩니다.
- 먼저 목록이 바뀌었는지 확인하세요. Home에서 기존 구독을 업데이트한 뒤 오류가 표시되는지, 항목이 나타나는지 확인합니다. 연결 스위치만 보고 업데이트 결과를 판단해서는 안 됩니다.
- 다음으로 업데이트에 사용할 네트워크 경로를 확인하세요. 현재 네트워크에서 구독 주소에 접근할 수 없다면, 사용할 수 있는 연결이 이미 있는 상태에서 Settings → Subscribe → Update via Proxy를 확인할 수 있습니다. 이 설정은 구독 업데이트의 접근 경로를 바꿀 뿐, 만료되거나 잘못된 token을 수정하지는 않습니다.
- 서버 하나를 선택해 확인하세요. Home으로 돌아가 항목을 선택한 뒤 Connectivity Test로 탐지 결과를 확인합니다. 탐지에 성공해도 대상 웹페이지, 인증, 모든 전송 방식이 정상이라는 뜻은 아니므로 실제 접속도 확인해야 합니다.
- 마지막으로 트래픽 라우팅을 확인하세요. Home → Global Routing에서 현재 모드를 확인합니다. Direct는 서버 프록시를 사용하지 않고 요청을 보냅니다. Proxy는 규칙의 영향을 일시적으로 분리해 확인할 때 사용할 수 있으며, Config는 현재 구성 규칙에 따라 트래픽을 처리합니다. 테스트가 끝나면 원래 필요한 모드로 되돌리세요.
5. 가져오기 오류, 필드 변경, 링크 보안 관련 질문
먼저 원문이 완전한지 확인한 다음 형식, 필드, 네트워크 순으로 점검하세요. 비밀번호를 바꾸거나 쿼리 매개변수를 삭제하는 것부터 시작하지 마세요. 이런 변경으로 원래 파싱할 수 있던 링크가 인증에 실패하는 항목으로 바뀔 수 있습니다.
링크를 복사했는데 앱을 열어도 가져오기 안내가 표시되지 않으면 어떻게 하나요?
복사한 내용이 프로토콜 접두사부터 시작하는지, 따옴표나 설명, 줄바꿈이 포함되지 않았는지 먼저 확인하세요. 시스템에서 붙여넣기를 허용할지 물으면 필요에 따라 허용합니다. 그래도 안내가 표시되지 않으면 Home → Add Server에서 해당 Type을 선택하고 제공업체가 알려준 전체 필드를 직접 입력하세요. 공유 링크 전체를 Address에 넣으면 안 됩니다.
구독 주소가 브라우저에서 열리는데 가져온 목록은 왜 비어 있나요?
열린 페이지가 서버 목록 응답인지, 로그인 페이지나 오류 페이지 또는 사용 안내인지 먼저 확인하세요. Home으로 돌아가 Subscribe 항목의 URL 전체를 확인하고 특히 token 쿼리 매개변수가 있는지 살펴보세요. 응답 내용이 지원되는 구독 형식과 맞지 않으면 웹페이지 내용을 한 줄씩 서버로 가져오려 하지 말고 원래 제공업체에 출력 형식을 확인하세요.
링크의 # 뒤 내용, sni, path를 삭제해도 되나요?
# 뒤의 문자열은 보통 메모로 사용됩니다. sni와 path는 TLS 또는 WebSocket 연결에 직접 영향을 줄 수 있습니다. Home의 항목 편집 화면에서 해당 필드를 각각 확인하고 원래 매개변수를 유지하세요. 링크를 짧게 만들려고 쿼리 부분을 일괄 삭제하지 마세요.
구독을 업데이트하면 직접 수정한 서버 필드가 유지되나요?
구독 항목을 직접 수정한 내용이 계속 유지된다고 보장할 수는 없습니다. 이후 업데이트 과정에서 필드가 다시 생성되거나 덮어써질 수 있습니다. 문제를 확인할 때는 수정한 내용을 먼저 기록하고, 필요하다면 별도의 항목을 만들어 테스트한 다음 원래 구독을 업데이트해 확인하세요. 별도 항목은 원래 구독의 변경 사항을 자동으로 반영하지 않습니다.
Base64로 인코딩된 링크를 다른 사람에게 보내 점검을 요청해도 되나요?
전체 내용을 공개적으로 보내지 마세요. Base64는 인코딩 방식이지 기밀을 보호하는 수단이 아닙니다. 공유 링크에는 Password나 UUID가, 구독 URL에는 접근용 token이 포함될 수 있습니다. 도움을 요청할 때는 민감 정보를 가린 필드 이름, 오류 현상, 메뉴 경로만 제공하세요. 인증 정보가 유출되었다면 원래 제공업체의 관리 메뉴에서 해당 정보를 변경해야 합니다.
최종 확인 순서는 ‘정보 유형 확인 → 올바른 메뉴 선택 → 필드 점검 → 업데이트와 연결을 따로 테스트’입니다. 이 순서로 확인하면 파싱 오류, 구독 접근 오류, 서버 인증 오류, 규칙 경로 문제를 구분할 수 있어 이미 올바른 매개변수를 잘못된 단계에서 반복 수정하는 일을 피할 수 있습니다.