처음 구독 주소를 받았거나 클라이언트에서 가져오기 메뉴를 찾지 못했거나 업데이트 후 설정이 보이지 않는 사용자를 위한 안내입니다. 구독 링크와 단일 노드 링크의 차이, v2rayN·v2rayNG의 정확한 조작 경로, 주요 데이터 형식, 시간 초과·빈 목록·형식 오류의 점검 순서를 차례로 설명합니다.
먼저 구독 링크와 단일 노드 링크를 구분하세요
구독 링크는 보통 HTTPS로 시작하는 URL입니다. 클라이언트가 이 URL에 접속하면 서버가 여러 설정을 반환하고, 이후 ‘구독 업데이트’를 실행할 때 같은 주소를 다시 요청해 해당 그룹을 새 결과로 갱신합니다. 구독 주소 자체에 vmess나 vless 같은 프로토콜명이 반드시 포함되는 것은 아니므로 URL 모양만 보고 어떤 노드가 들어 있는지 판단할 수 없습니다.
단일 노드 링크는 하나의 설정을 직접 설명하며, 일반적으로 vmess:// 또는 vless://로 시작합니다. 임시로 하나의 설정을 가져올 때 적합하지만 정기적으로 갱신되는 구독 관계가 자동으로 만들어지지는 않습니다. 단일 노드 링크를 ‘구독 주소’ 입력란에 넣거나 구독 URL을 ‘클립보드에서 URL 가져오기’에 전달하면 가져온 결과가 비어 있을 수 있습니다.
클라이언트 버전을 업그레이드하면 메뉴가 ‘구독 그룹’, ‘구독 설정’ 또는 ‘구독 그룹 설정’처럼 조금 다르게 표시될 수 있지만, 진입점을 판단하는 방법은 같습니다. URL을 저장하고 반복해서 업데이트하려면 구독 그룹으로 들어가고, 프로토콜 접두사로 시작하는 텍스트 하나만 가져오려면 클립보드 가져오기를 사용하세요.
구독 URL
권장원격 주소를 저장해 그룹별로 여러 설정을 업데이트할 수 있으며, 이름이나 매개변수가 바뀌어도 다시 가져올 수 있습니다.
적합한 경우: 장기 사용, 많은 설정, 정기적인 갱신 필요
단일 노드 URI
VMess 또는 VLESS 설정 하나를 직접 가져오며 이후 업데이트 관계는 만들지 않습니다.
적합한 경우: 임시 테스트, 단일 설정 이전, 프로토콜 매개변수 확인
일괄 텍스트
한 텍스트 안에 여러 프로토콜 링크를 한 줄씩 넣어 클립보드에서 일괄 분석할 수 있지만, 구독과 같은 기능은 아닙니다.
적합한 경우: 기존 설정을 소량 오프라인 이전
v2rayN 데스크톱에서 구독 추가 및 업데이트
시작하기 전에 구독 URL 전체를 복사해 끝의 접근 매개변수가 빠지지 않도록 하세요. URL에 물음표, 등호 또는 연결 기호가 포함되어 있다면 그대로 유지하고 임의로 잘라내지 마세요. 구독 정보는 접근 자격 증명에 해당하므로 공개 로그, 스크린샷 설명 또는 공유 문서에 붙여 넣지 않는 것이 좋습니다.
그룹 열기
v2rayN을 실행한 뒤 메인 화면에서 ‘구독 그룹’ → ‘구독 그룹 설정’을 선택합니다. 일부 7.x 인터페이스에서는 왼쪽 그룹 영역에서 바로 관리 화면으로 들어갈 수 있습니다.
구독 추가
‘추가’ 또는 ‘+’를 클릭하고 메모에 알아보기 쉬운 이름을 입력한 다음, 전체 HTTPS 주소를 URL 입력란에 붙여 넣습니다.
그룹 저장
활성화 상태를 확인한 뒤 저장합니다. 이 단계에서는 구독 주소만 기록되며 서버 목록에 새 설정이 아직 나타나지 않을 수 있습니다.
업데이트 실행
메인 화면으로 돌아가 ‘구독 그룹’ → ‘모든 구독 업데이트(프록시 사용 안 함)’를 선택합니다. 현재 네트워크에서 구독 주소에 직접 연결할 수 없다면 프록시를 통한 업데이트를 시도하세요.
설정 선택
업데이트가 완료되면 해당 그룹을 펼쳐 설정 하나를 더블클릭하거나 오른쪽 클릭 메뉴에서 활성 서버로 지정한 뒤 시스템 프록시를 켭니다.
클립보드에 vmess:// 또는 vless://가 있다면 새 구독 그룹을 만들지 마세요. ‘서버’ → ‘클립보드에서 일괄 URL 가져오기’를 사용한 뒤 주소, 포트, 전송 방식과 TLS 관련 필드를 확인합니다. 단일 URI는 ‘모든 구독 업데이트’를 눌러도 자동으로 바뀌지 않습니다.
v2rayNG Android에서 구독 추가
v2rayNG에서도 구독 관리와 단일 설정 가져오기는 서로 다른 메뉴입니다. 구독 URL은 ‘구독 그룹 설정’으로, QR 코드와 클립보드의 프로토콜 링크는 단일 설정 가져오기로 처리합니다. 이 글은 1.10.x 계열 인터페이스를 기준으로 하며, 화면 크기에 따라 사이드 메뉴가 왼쪽 상단 메뉴 버튼으로 표시될 수 있습니다.
설정으로 이동
사이드 메뉴를 열고 ‘구독 그룹 설정’으로 들어갑니다. 먼저 메인 화면의 단일 설정 추가 버튼을 누르지 마세요.
주소 입력
오른쪽 상단의 ‘+’를 누르고 구독 메모와 전체 주소를 입력합니다. 필요하면 자동 업데이트를 켤 수 있지만, 처음 추가할 때는 수동으로 한 번 업데이트하는 것이 좋습니다.
저장 후 돌아가기
구독 그룹을 저장한 뒤 메인 화면으로 돌아와 오른쪽 상단 메뉴를 열고 ‘구독 업데이트’를 실행합니다. 완료 메시지가 표시된 후 설정 목록을 확인하세요.
설정 선택
목록에서 대상 설정을 눌러 현재 활성 항목으로 만든 다음 연결 버튼을 누릅니다. 처음 연결할 때는 시스템 네트워크 연결 확인 메시지가 나타납니다.
결과 확인
연결 후 실시간 로그를 확인해 DNS, 핸드셰이크, 인증서 이름 또는 연결 시간 초과 오류가 없는지 살핀 다음 브라우저에서 일반 HTTPS 페이지를 열어 다시 테스트합니다.
단일 노드 URI를 복사했다면 메인 화면에서 ‘클립보드에서 설정 가져오기’를 사용하세요. 가져오기 전에 클립보드에 대상 링크만 있는지 확인해 앞뒤에 설명 문구가 섞이지 않도록 합니다. 여러 링크를 일괄 가져올 때는 한 줄에 하나씩 배치하세요. 한 줄이 손상되어도 다른 줄의 프로토콜 매개변수가 바뀌지는 않지만, 일부 분석 실패 메시지가 표시될 수 있습니다.
- 업데이트 후 목록이 비어 있음: 먼저 구독 그룹 설정으로 돌아가 그룹이 활성화되어 있는지, 주소 앞뒤에 공백이 없는지 확인하세요.
- 업데이트는 성공했지만 수량이 그대로임: 현재 올바른 그룹을 보고 있는지 확인하고 서버에서 반환하는 내용이 실제로 변경되었는지 확인하세요.
- 연결 버튼이 즉시 원래 상태로 돌아옴: 로그를 열어 포트, 코어 시작 상태와 설정 분석 오류를 확인하고 구독을 반복해서 삭제하지 마세요.
- 코어를 바꿔야 함: v2rayNG는 Xray 코어를 사용합니다. v2fly 코어가 필요한 Android 클라이언트는 v2flyNG를 사용할 수 있지만, 두 클라이언트가 최신 프로토콜 매개변수를 동일한 범위로 지원한다고 단정해서는 안 됩니다.
Base64, VMess, VLESS 형식 구분하기
‘Base64 구독’은 보통 구독 응답 본문이 Base64로 인코딩되어 있으며, 디코딩해야 한 줄에 하나씩 된 프로토콜 링크가 나온다는 뜻입니다. Base64는 텍스트 인코딩 방식이지 프록시 프로토콜이 아니며, 연결 암호화 여부를 결정하지도 않습니다. 클라이언트가 구독을 업데이트할 때 인식과 디코딩을 처리하므로 일반적으로 직접 다룰 필요가 없습니다.
VMess 단일 노드는 vmess://로 시작하는 경우가 많고, 뒤에 인코딩된 JSON 데이터가 이어질 수 있습니다. 디코딩하면 주소, 포트, 사용자 식별자, 전송 방식 등의 필드를 확인할 수 있습니다. VLESS URI는 보통 쿼리 매개변수로 암호화 계층, 전송 계층, 서버 이름, 핑거프린트와 흐름 제어 등을 표현하므로 매개변수 구조가 눈에 더 잘 보입니다.
구독 URL
- 형태
- https://로 시작
- 내용
- 원격에서 여러 설정 반환
- 업데이트
- 다시 가져오기 지원
- 가져오기 메뉴
- 구독 그룹 설정
URL은 데이터로 들어가는 입구일 뿐이며, 실제 프로토콜은 반환된 내용으로 결정됩니다.
Base64 목록
- 특성
- 텍스트 인코딩
- 디코딩 결과
- 여러 줄의 프로토콜 URI
- 일반적인 메뉴
- 구독 응답 본문
- 수동 수정
- 대부분 필요 없음
인코딩 오류가 발생하면 먼저 응답이 완전한지 확인하세요.
VMess URI
- 접두사
- vmess://
- 식별 정보 필드
- UUID
- 일반적인 전송 방식
- TCP、WebSocket
- 가져오기 메뉴
- 클립보드 일괄 URL
인코딩된 내용은 문자 하나만 빠져도 전체 분석이 실패할 수 있습니다.
VLESS URI
- 접두사
- vless://
- 식별 정보 필드
- UUID
- 매개변수 위치
- 쿼리 문자열
- 가져오기 메뉴
- 클립보드 일괄 URL
Reality, SNI, Flow 등의 매개변수는 서버 설정과 일치해야 합니다.
구독 URL 구조:
https://sub.example.com/client/feed?id=7319&token=8f2d1a
단일 노드 구조:
vmess://인코딩된 설정 텍스트
vless://[email protected]:443?security=reality&type=tcp&flow=xtls-rprx-vision#예시 이름
위 내용은 구조를 설명하기 위한 예시입니다. 실제로 가져올 때 예시 주소를 연결 가능한 설정으로 사용하지 마세요. 특히 VLESS URI에서는 security, type, flow, sni, fp와 공개 키 등의 필드가 서로 조합되어 작동합니다. 주소와 포트만 남겨서는 연결이 성립되지 않는 경우가 많습니다.
구독 업데이트 시 클라이언트에서 실제로 하는 작업
업데이트를 누르면 클라이언트는 먼저 구독 주소에 요청을 보내고, 응답이 일반 URI 목록인지 Base64 텍스트인지 호환되는 구조화 콘텐츠인지 식별합니다. 그런 다음 각 설정을 분석해 해당 그룹에 기록합니다. 요청 성공이 모든 설정의 분석 성공을 의미하지는 않으므로 업데이트 메시지, 설정 수와 로그를 함께 확인해야 합니다.
일부 구독은 설정 이름, 서버 주소 또는 프로토콜 매개변수가 바뀌면 기존 기록을 교체합니다. 구독으로 생성된 설정을 수동으로 수정해도 다음 업데이트에서 원격 데이터로 덮어써질 수 있습니다. 장기간 보존할 로컬 수정 사항은 별도 설정으로 복사하고 이름에 출처를 표시해 자동 업데이트 항목과 혼동하지 않도록 하세요.
- 요청 단계: 구독 도메인을 확인하고 HTTPS 연결을 수립한 뒤 응답을 기다립니다. 이 단계에서 실패하면 보통 시간 초과, 도메인 확인 실패 또는 인증서 오류로 나타납니다.
- 디코딩 단계: 응답 본문을 식별하고 Base64 디코딩을 시도합니다. 내용이 로그인 페이지, 오류 페이지 또는 게이트웨이 안내로 바뀌었다면 형식 오류가 발생할 수 있습니다.
- 분석 단계: VMess, VLESS 등의 설정을 하나씩 읽고 필요한 필드를 클라이언트 내부 구조로 변환할 수 있는지 확인합니다.
- 기록 단계: 결과를 지정된 구독 그룹에 넣고 이름 또는 내부 식별자에 따라 기존 항목을 처리합니다.
- 사용 단계: 사용자가 활성 설정을 선택하면 코어가 매개변수를 읽고 로컬 리스닝 포트를 시작합니다. 실제 연결이 발생하는 것은 이 단계입니다.
가져오기 실패 시 이 순서로 점검하세요
먼저 실패가 요청, 디코딩, 분석 또는 코어 시작 중 어느 단계에서 발생했는지 확인하세요. 구독 업데이트 중 이미 오류가 발생했다면 시스템 프록시 포트를 먼저 조정할 필요가 없습니다. 설정은 나타났지만 연결되지 않는다면 프로토콜 매개변수, 코어 로그와 로컬 리스닝 상태를 확인해야 합니다.
구독 업데이트에 계속 시간 초과가 표시되나요?
먼저 브라우저에서 구독 도메인에 HTTPS 연결을 수립할 수 있는지 확인하되 페이지 본문은 공개하지 마세요. v2rayN은 사용 가능한 설정이 있을 때 ‘구독 그룹’ → ‘모든 구독 업데이트(프록시 사용)’로 바꿀 수 있습니다. 사용 가능한 설정이 없다면 로컬 네트워크와 도메인 확인부터 점검하세요.
성공으로 표시되지만 목록이 비어 있나요?
구독 그룹 설정을 열어 그룹이 활성화되어 있는지, URL 앞뒤에 공백이 있는지 확인하고 현재 목록 필터가 해당 그룹을 표시하는지도 확인하세요. 응답이 실제로 로그인 페이지나 오류 안내라면 클라이언트가 프로토콜 링크를 하나도 분석하지 못할 수 있습니다.
vmess 링크를 붙여 넣어도 반응이 없나요?
‘서버’ → ‘클립보드에서 일괄 URL 가져오기’를 사용했는지, 구독 주소 입력란을 사용하지 않았는지 확인하세요. 복사할 때는 vmess://부터 링크 끝까지 모두 유지하고 중간에 줄바꿈을 넣지 마세요.
vless를 가져온 뒤 Reality 매개변수가 사라졌나요?
전체 URI를 다시 복사하고 security=reality, 서버 이름, 핑거프린트, 공개 키, 짧은 식별자와 Flow를 중점적으로 확인하세요. 출처에서 주소, 포트와 UUID만 제공했다면 서버에 필요한 나머지 필드를 보완해야 합니다.
설정은 보이지만 웹페이지가 열리지 않나요?
먼저 활성 설정을 선택하고 시스템 프록시를 켰는지 확인한 다음 코어 로그를 살펴보세요. 로그에 10808 등의 로컬 포트가 사용 중이라고 표시되면 ‘설정’ → ‘매개변수 설정’에서 로컬 리스닝 포트를 변경하고 해당 포트를 사용하는 프록시 설정도 함께 업데이트하세요.
교차 테스트로 범위를 좁힐 수도 있습니다. 같은 구독이 v2rayN에서는 업데이트되지만 v2rayNG에서는 되지 않는다면 Android의 네트워크 권한, 시스템 시간과 클라이언트 버전을 우선 확인하세요. 두 클라이언트 모두 실패한다면 구독 주소의 유효 기간, 요청 매개변수와 서버 응답을 먼저 점검하세요. 구독이 정상적으로 데이터를 반환하는지 확인하기 전에는 코어 설정을 자주 바꾸지 마세요.
가져오기 완료 후 확인 목록
구독 가져오기는 설정을 클라이언트에 기록하는 작업일 뿐입니다. 정상적으로 사용할 수 있는지는 활성 설정, 코어 지원 범위, 시스템 프록시 또는 네트워크 연결 상태, DNS 처리 방식과 원격 매개변수의 일치 여부에 따라 달라집니다. 정해진 순서로 확인하면 로컬 프록시가 켜지지 않은 상태를 구독 오류로 잘못 판단하는 일을 줄일 수 있습니다.
- 대상 구독 그룹이 활성화되어 있고, 업데이트 후 예상한 수의 설정이 표시됩니다.
- 현재 활성 항목이 올바른 그룹에 속하며 주소, 포트와 프로토콜 유형이 비어 있지 않습니다.
- v2rayN 코어가 시작되고 로컬 리스닝 포트를 다른 프로세스가 사용하지 않습니다.
- 데스크톱에서는 필요에 따라 시스템 프록시를 켰고, v2rayNG에서는 시스템 연결 확인을 완료했습니다.
- 코어 로그에 핸드셰이크, 인증서 이름, Reality 매개변수 또는 DNS 오류가 계속 나타나지 않습니다.
- 구독을 업데이트한 뒤 활성 설정을 다시 선택해 이미 교체된 이전 기록을 계속 사용하지 않도록 합니다.
- 단일 노드 링크와 구독 URL에 각각 올바른 메뉴를 사용하며 두 가져오기 방식을 혼용하지 않습니다.
기기를 이전할 때는 구독으로 생성된 노드를 하나씩 복사하기보다 새 클라이언트에서 구독 주소를 다시 추가하고 업데이트하는 편이 좋습니다. 이렇게 하면 그룹 관계를 유지하면서 이후에도 계속 갱신할 수 있습니다. 원격 구독에서 제공하지 않는 로컬 수동 설정만 별도로 내보내거나 다시 입력하면 됩니다.