vmess:// 또는 vless:// 텍스트를 처음 받았지만 어디에 붙여넣어야 할지 모르는 사용자를 위한 안내입니다. 두 링크의 필드와 HTTP 구독 주소의 차이를 살펴보고, v2rayN·v2rayNG의 클립보드 및 QR 코드 가져오기 절차와 실패 시 점검 순서를 설명합니다.
공유 링크와 구독 링크는 서로 다른 진입 방식입니다
vmess://와 vless://는 모두 단일 노드 공유 링크입니다. 클라이언트가 링크 하나를 해석하면 일반적으로 주소, 포트, 사용자 식별자, 전송 방식, 보안 매개변수를 포함한 서버 설정 하나가 추가됩니다. 공유 링크 세 개를 복사해 일괄 가져오면 서로 독립된 설정 세 개가 생성되며, 원본 텍스트가 나중에 바뀌어도 자동으로 업데이트되지 않습니다.
구독 링크는 보통 https://로 시작하는 웹 주소입니다. 클라이언트가 해당 주소에 접속하면 서버는 여러 노드 기록을 반환합니다. 내용은 Base64로 묶인 텍스트일 수도 있고, 클라이언트가 인식할 수 있는 구조화된 데이터일 수도 있습니다. 구독 그룹에는 “목록을 가져오는 주소”가 저장되므로 수동 또는 예약 업데이트가 가능하며, 다음 가져오기 때 추가·삭제·매개변수 변경 사항이 로컬에 반영됩니다.
단일 공유 링크
가져오면 로컬 노드 하나가 생성되므로 임시 테스트, 단일 노드 이전 또는 특정 프로토콜 설정 확인에 적합합니다. 이후 매개변수가 바뀌면 다시 가져오거나 직접 수정해야 합니다.
적합한 경우: vmess:// 또는 vless:// 주소 하나만 받은 경우
구독 링크
권장한 번에 여러 노드를 가져오고 구독 그룹이 업데이트 관계를 관리합니다. 데스크톱과 Android에서 같은 구독 주소를 각각 저장할 수 있습니다.
적합한 경우: 여러 노드와 여러 기기의 목록을 장기간 관리할 때
| 판단 기준 | 공유 링크 | 구독 링크 |
|---|---|---|
| 일반적인 시작 형식 | vmess://、vless:// |
https:// |
| 한 번 가져온 결과 | 노드 하나당 링크 하나 | 구독 그룹 하나에 여러 노드 포함 |
| 업데이트 방식 | 다시 가져오거나 설정 편집 | 수동 업데이트 또는 클라이언트 설정에 따른 자동 업데이트 |
| 주요 진입 방식 | 클립보드에서 가져오기, QR 코드 스캔 | 구독 그룹 설정, 구독 설정 |
vmess://와 vless://에는 각각 무엇이 저장되나요?
VMess 공유 형식은 JSON을 인코딩한 뒤 vmess:// 뒤에 붙이는 방식이 일반적입니다. 디코딩한 v는 보통 2이고, add는 서버 주소, port는 원격 포트, id는 UUID입니다. net과 type은 전송 설정을, tls·sni 등의 필드는 보안 계층을 설명합니다. 생성 도구에 따라 비어 있는 필드는 생략될 수 있지만, 주소·포트·사용자 식별자로 유효한 아웃바운드 설정을 구성할 수 있어야 합니다.
다음은 필드를 설명하기 위한 VMess JSON입니다. 예시는 예약된 도메인을 사용하므로 직접 연결할 수 없으며, 클라이언트로 가져온 뒤 어떤 설정 항목이 생성되는지 보여주기 위한 것입니다.
{
"v": "2",
"ps": "VMess WS 예시",
"add": "node.example.com",
"port": "443",
"id": "8f4c756b-3d92-4f9a-9f52-3e4b1d6a7280",
"aid": "0",
"scy": "auto",
"net": "ws",
"type": "none",
"host": "node.example.com",
"path": "/gateway",
"tls": "tls",
"sni": "node.example.com"
}
VLESS 공유 형식은 표준 URI에 가깝습니다. 사용자 식별자는 @ 앞에, 서버와 포트는 그 뒤에 있으며 전송 및 보안 설정은 쿼리 매개변수로 지정합니다. # 뒤에는 표시 이름이 들어갑니다. 필드를 읽기 쉬워 문제를 확인할 때 security·type·flow·sni·pbk·sid가 누락되지 않았는지 바로 점검할 수 있습니다.
vless://[email protected]:443?encryption=none&security=reality&sni=www.example.com&fp=chrome&pbk=Yfg3cV9mR7wP2nK6aB4dL8sQ1xT5uH0jE9zN2pM6rA0&sid=6ba85179&type=tcp&flow=xtls-rprx-vision#VLESS%20REALITY%20예시
결론: 프로토콜 이름은 첫 번째 판단 기준일 뿐입니다
가져오기는 성공했지만 연결에 실패했다면 VMess 또는 VLESS만 확인하지 마세요. 포트, 전송 유형, TLS 또는 REALITY, 보안 도메인, 경로, flow를 차례로 비교해야 합니다. 어느 하나라도 서버 설정과 다르면 핸드셰이크가 실패할 수 있습니다.
v2rayN에서 클립보드로 공유 링크 가져오기
다음 절차는 v2rayN 7.15.4의 한국어 인터페이스를 기준으로 확인한 예시입니다. 7.x 버전에 따라 메뉴 이름은 달라질 수 있지만 처리 순서는 같습니다. 먼저 공유 텍스트 전체를 복사한 다음 클라이언트가 클립보드의 지원 URI를 인식하도록 합니다. 복사할 때 따옴표를 추가하거나 채팅 앱에 표시된 설명까지 함께 선택하지 마세요.
한 번에 여러 링크를 받았다면 각 URI를 한 줄에 하나씩 배치하세요. v2rayN의 일괄 가져오기는 줄마다 지원되는 프로토콜을 인식합니다. 일반 설명, 빈 줄, 해석할 수 없는 텍스트는 보통 설정을 생성하지 않습니다. 가져오기가 끝나면 바로 추가된 개수를 확인하고, 곧바로 시스템 프록시를 켜지는 마세요.
- v2rayN을 실행하고 메인 창이 나타날 때까지 기다린 뒤 코어 구성 요소가 정상적으로 로드되었는지 확인합니다.
- 완전한
vmess://또는vless://텍스트를 복사합니다. 일괄 가져오기에서는 한 줄에 링크 하나를 배치하세요. - 「서버」 메뉴를 열고 「클립보드에서 일괄 URL 가져오기」를 선택합니다. 일부 7.x 인터페이스에서는 서버 목록에 포커스를 둔 뒤 Ctrl + V를 사용할 수도 있습니다.
- 서버 목록에서 새로 추가된 항목을 찾아 더블클릭으로 편집 창을 연 다음 주소, 포트, UUID, 전송 방식과 보안 유형을 확인합니다.
- 대상 노드를 마우스 오른쪽 버튼으로 클릭해 활성 서버로 지정한 뒤 사용 환경에 따라 「시스템 프록시」 또는 TUN 모드를 선택합니다.
- 「설정」→「매개변수 설정」에서 로컬 수신 포트를 확인합니다. 이 글의 테스트 설정은 SOCKS
10808, HTTP10809입니다. 포트가 다른 프로그램에서 사용 중이면 비어 있는 포트로 변경하고 코어를 다시 시작하세요.
가져온 뒤 필드를 확인하고 연결을 테스트하세요
VMess over WebSocket 설정에서는 Host와 Path를 특히 확인해야 합니다. 예를 들어 서버 경로가 /gateway인데 클라이언트가 /로 바뀌면 주소·포트·UUID가 모두 맞아도 의도한 전송을 완료할 수 없습니다. VLESS REALITY 설정에서는 security=reality, Server Name, Public Key, Short ID, Fingerprint, flow=xtls-rprx-vision을 함께 확인하세요.
노드를 선택한 뒤 v2rayN 로그를 열어 실패 지점이 도메인 확인, TCP 연결 수립, 핸드셰이크 중 어디인지 살펴볼 수 있습니다. 포트 충돌이면 먼저 로컬 수신 포트를 처리하고, 연결 시간 초과면 원격 주소와 네트워크를 확인하세요. 핸드셰이크 오류라면 노드 편집 창으로 돌아가 보안 매개변수를 비교합니다. 이 순서가 계속 삭제하고 다시 가져오는 것보다 문제를 찾기 쉽습니다.
v2rayNG에서 클립보드 또는 QR 코드로 가져오기
다음 단계는 v2rayNG 1.10.31의 일반적인 인터페이스를 예로 듭니다. v2rayNG는 Xray 코어를 사용하며 VMess, VLESS, VLESS REALITY 등의 설정을 인식할 수 있습니다. Android는 백그라운드 실행을 제한할 수 있으므로 가져오기에 성공했다는 것은 설정이 목록에 저장되었다는 의미일 뿐입니다. 연결이 계속 유지되는지는 앱 실행 상태와 시스템 네트워크 설정에도 좌우됩니다.
같은 기기에서 텍스트를 받았다면 클립보드 가져오기가 가장 간단하고, QR 코드가 다른 화면에 표시되어 있다면 스캔이 편리합니다. QR 코드는 공유 URI를 그래픽으로 인코딩한 것일 뿐입니다. 스캔 후 얻는 필드는 같은 텍스트를 붙여넣었을 때와 완전히 동일하며, 단일 노드 링크가 구독으로 바뀌지는 않습니다.
- 공유 링크 전체를 복사하고 v2rayNG 메인 화면을 엽니다.
- 오른쪽 상단의 추가 버튼을 누르고 「클립보드에서 가져오기」를 선택합니다. 성공하면 노드 이름이 설정 목록에 표시됩니다.
- 링크가 QR 코드로 표시되어 있다면 「QR 코드 스캔」을 선택하고 카메라 권한을 허용한 뒤 QR 코드 전체가 화면 안에 들어오도록 맞춥니다.
- 새 설정을 눌러 현재 선택 항목으로 만든 다음 편집 화면에서 주소, 포트, 사용자 ID, 전송 프로토콜과 보안 옵션을 확인합니다.
- 메인 화면의 연결 버튼을 눌러 시스템이 로컬 프록시 연결을 설정하는지 확인합니다. 특정 앱만 적용하려면 「설정」의 앱별 프록시 옵션에서 범위를 구성하세요.
- 로컬 포트를 확인하려면 사이드 메뉴의 「설정」으로 들어가 로컬 SOCKS 수신 포트를 확인합니다. 이 글의 예시는
10808로 설정되어 있으며, 다른 앱을 수동으로 구성할 때는 같은 포트를 입력해야 합니다.
가져오기 방법: 링크가 있는 위치에 따라 입구를 선택하세요
링크가 현재 기기에 있음
- 길게 눌러 URI 전체 복사
- 「클립보드에서 가져오기」 선택
- 가져온 뒤 노드 이름과 포트 확인
QR 코드가 다른 화면에 있음
- 「QR 코드 스캔」 선택
- 이미지를 온전하고 선명하게 유지
- 스캔 후 REALITY 또는 TLS 필드 확인
같은 URI를 클립보드와 QR 코드로 가져왔다면 노드 필드가 일치해야 합니다. 일치하지 않으면 QR 코드가 만료되었거나 텍스트가 잘리지 않았는지 확인하세요.
가져오기에 실패하거나 가져온 뒤 연결되지 않을 때 점검하는 방법
먼저 “해석 실패”와 “연결 실패”를 구분해야 합니다. 해석 실패는 가져온 뒤 목록에 새 기록이 나타나지 않는 경우로, 링크 텍스트·인코딩·클라이언트 지원 범위에 문제가 있을 가능성이 큽니다. 연결 실패는 설정은 생성되었지만 실행 로그에 시간 초과, 연결 거부 또는 핸드셰이크 오류가 표시되는 경우입니다. 두 문제는 서로 다른 경로로 확인해야 합니다.
붙여넣은 뒤 유효한 링크를 찾지 못했다는 메시지가 표시되나요?
텍스트가 vmess:// 또는 vless://로 시작해 끝까지 끊김 없이 복사되었는지 확인합니다. 앞의 글머리 기호, 한글 따옴표, 끝의 마침표를 삭제하고, 여러 링크는 한 줄에 URI 하나씩 배치한 뒤 다시 가져오세요.
VMess 노드는 생성되지만 이름과 주소가 비어 있나요?
Base64 내용이 불완전하거나 디코딩된 JSON 구조가 손상되었을 가능성이 큽니다. 원본 링크를 다시 복사하고 채팅 도구가 중간에 줄바꿈을 삽입하지 않았는지 확인하세요. 알 수 없는 add·port·id를 직접 작성해 보완하지 마세요.
VLESS REALITY를 가져온 뒤 핸드셰이크가 계속 실패하나요?
보안 유형 REALITY, Server Name, Public Key, Short ID, Fingerprint, flow를 차례로 확인하세요. 서버가 Vision을 사용한다면 클라이언트의 flow도 보통 서버와 일치해야 합니다.
노드는 연결됨으로 표시되지만 브라우저에서 웹 페이지가 열리지 않나요?
데스크톱에서는 v2rayN의 시스템 프록시 상태를 확인하고 브라우저가 다른 프록시 포트를 고정해 사용하고 있지 않은지 확인하세요. Android에서는 v2rayNG 연결이 계속 실행 중인지 확인합니다. 이후 로그에서 DNS 또는 로컬 포트 충돌 정보를 살펴보세요.
반복해서 가져온 뒤 같은 이름의 노드가 여러 개 생겼나요?
공유 링크에는 구독 그룹의 업데이트 관계가 없으므로 클라이언트는 보통 다시 가져온 항목을 새 설정으로 처리합니다. 주소·포트·UUID를 먼저 비교해 중복을 확인한 뒤 기존 기록을 삭제하세요. 여러 노드를 장기간 사용한다면 구독 그룹으로 관리하는 편이 좋습니다.
| 현상 | 우선 확인할 항목 | 다음 단계 |
|---|---|---|
| 가져온 개수가 0개 | 프로토콜 헤더, 줄바꿈, 텍스트 완전성 | 원본 URI 다시 복사 |
| 설정은 있지만 연결 시간 초과 | 원격 주소, 포트, 현재 네트워크 | 코어 연결 로그 확인 |
| TLS 핸드셰이크 오류 | SNI, Host, 시스템 시간 | 설정 출처와 항목별 비교 |
| REALITY 핸드셰이크 오류 | pbk、sid、fp、flow | 완전한 링크 다시 가져오기 |
| 브라우저가 프록시를 사용하지 않음 | 시스템 프록시 상태, 10808 및 10809 | 앱과 클라이언트의 포트 통일 |
기기 시간도 확인해야 합니다. TLS와 REALITY 핸드셰이크는 정상적인 시간 환경에 의존하므로 시스템 날짜가 크게 어긋나면 인증서 또는 핸드셰이크 오류가 발생할 수 있습니다. 날짜와 시간대를 자동으로 설정한 뒤 클라이언트를 다시 시작하고 연결을 테스트하면 로컬 시간으로 인한 문제를 배제할 수 있습니다.
단일 노드를 구독 관리로 바꿔야 하는 경우
노드 하나만 테스트할 때는 공유 링크가 가장 간단합니다. 노드가 늘어나면 하나씩 복사하는 과정에서 중복 기록과 만료된 매개변수 문제가 생깁니다. 특히 주소·포트·전송 경로·REALITY 매개변수가 바뀌어도 로컬의 기존 링크는 자동으로 변경되지 않습니다. 이때는 설정 제공자에게 정확한 구독 주소를 받아 클라이언트에 저장하고 업데이트 관계를 관리해야 합니다.
v2rayN에서는 구독 메뉴가 보통 「구독 그룹」→「구독 그룹 설정」에 있습니다. 그룹을 추가한 뒤 별칭과 구독 주소를 입력하고 저장한 다음 「모든 구독 업데이트」를 실행합니다. v2rayNG에서는 「구독 설정」으로 들어가 주소를 추가한 뒤 메인 화면으로 돌아와 구독을 업데이트합니다. 이미 가져온 수십 개의 단일 노드 설정을 업데이트 가능한 하나의 그룹으로 착각하지 마세요.
- VMess 또는 VLESS 노드 하나를 임시로 확인할 때: 클립보드로 가져오기
- 데스크톱에서 Android로 노드 하나를 옮길 때: 같은 URI 또는 QR 코드로 가져온 뒤 필드를 다시 확인
- 자주 바뀌는 노드 십여 개를 관리할 때: 구독 그룹을 사용해 하나씩 덮어쓰는 작업을 피하기
- 구독에서 특정 노드 하나만 문제가 있을 때: 해당 노드의 매개변수를 먼저 확인하고 구독 전체를 바로 삭제하지 않기
- 수동으로 수정한 설정을 보존해야 할 때: 독립 노드로 복사해 이름을 바꾸고 다음 구독 업데이트에서 그룹 내용이 덮어써지지 않게 하기
결론: 업데이트 관계가 필요한지에 따라 선택하세요
단일 노드 공유는 “이 설정 하나를 가져오기”에 적합하고, 구독은 “이 설정 그룹을 계속 업데이트하기”에 적합합니다. 노드 수만이 기준은 아니며, 지속적인 동기화가 필요한지가 더 안정적인 판단 기준입니다.
공유하기 전에 전체 매개변수를 보존하고 공유 범위를 관리하세요
공유 URI에는 보통 연결에 필요한 UUID, 서버 주소, 전송 매개변수가 포함되므로 연결 자격 증명처럼 관리해야 합니다. 복사할 때 내용을 온전히 유지하고, 전달할 때 수신 대상과 사용 범위를 확인하세요. 현재 사용 중인 링크를 공개적으로 게시하지 마세요. 링크 출처에서 연결 식별자를 갱신했다면 기존 설정을 삭제하고 새 내용을 가져오세요.
점검이 끝난 뒤 노드 이름에 프로토콜, 지역 또는 용도를 추가할 수 있습니다. 예를 들면 “VLESS REALITY 일상” 또는 “VMess WS 테스트”와 같이 지정합니다. 이름은 로컬 식별용일 뿐 연결에는 영향을 주지 않습니다. 연결 결과를 결정하는 것은 주소·포트·사용자 식별자·전송 계층·보안 매개변수입니다.