이미 구독을 이용 중이라면 서버에서 제공한 프로토콜 그대로 가져오세요. VMess 노드를 VLESS로 바꾸면 안 됩니다. VMess는 프로토콜 설계에 인증과 데이터 보호를 포함합니다. 반면 흔히 쓰이는 VLESS encryption=none 설정은 TLS나 REALITY 같은 외부 보안 계층에 의존합니다. 이 글에서는 노드를 선택하거나 가져오기 항목을 확인할 때, 또는 핸드셰이크 오류를 해결할 때 필요한 내용을 살펴봅니다. 일치해야 하는 항목과 시간 오류 확인법, 프로토콜 이름만으로 속도를 판단할 수 없는 이유를 설명합니다.
1분 비교: 프로토콜, 전송 방식, 보안 계층은 서로 다릅니다
노드는 세 계층으로 나눠 살펴보세요. VMess와 VLESS는 프록시 프로토콜이고, TCP와 WebSocket 등은 연결을 전달하는 전송 방식이며, TLS와 REALITY는 외부 보안과 관련됩니다. 뒤의 두 계층을 무시한 채 VMess 노드와 VLESS 노드만 비교하면 실제 동작을 판단하기 어렵습니다.
| 비교 항목 | VMess | VLESS |
|---|---|---|
| 사용자 식별 정보 | 일반적으로 UUID를 사용하며 서버 설정과 일치해야 합니다 | 일반적으로 UUID를 사용하며 서버 설정과 일치해야 합니다 |
| 데이터 보호 | 일반적인 설정은 프로토콜 계층에서 데이터를 암호화하며 TLS를 추가로 적용할 수도 있습니다 | 흔히 쓰이는 encryption=none 설정은 이 계층에서 암호화하지 않으므로 적절한 외부 보안 계층이 필요합니다 |
| 시간 조건 | 인증에 시간이 사용되므로 클라이언트와 서버의 시간이 동기화되어야 합니다 | VMess와 같은 시간 범위 인증 조건은 없지만, 외부 인증서 등에는 시스템 시간이 여전히 영향을 줍니다 |
| 전송 설정 | 서버의 전송 유형, 경로 등과 일치해야 합니다 | 전송 및 보안 매개변수를 맞춰야 하며 UUID만 입력해서는 안 됩니다 |
| 프로토콜 변경 | 클라이언트 유형을 바꿔도 서버가 수신하는 프로토콜은 바뀌지 않습니다 | 사용하려면 해당 VLESS 서버 진입점이 있어야 합니다 |
v2rayN은 노드를 관리하고 코어를 실행하는 데스크톱 클라이언트입니다. VMess와 VLESS는 코어에서 처리하는 프로토콜입니다. Android용 v2rayNG는 Xray 코어를, v2flyNG는 v2fly 코어를 사용합니다. 실제로 사용할 수 있는지는 클라이언트에 포함된 코어가 전체 설정을 지원하는지에 달려 있습니다. 프로그램 이름만으로 판단할 수 없습니다.
암호화 방식: VLESS의 none이 연결 전체가 평문이라는 뜻은 아닙니다
일반적인 VLESS 설정에서 encryption=none은 VLESS 계층을 가리키며, 모든 네트워크 계층을 뜻하지는 않습니다. 노드에 TLS가 올바르게 설정되어 있다면 클라이언트와 서버 사이의 데이터는 TLS로 보호됩니다. REALITY를 사용하는 경우에는 클라이언트와 서버 모두 이를 지원하고 관련 매개변수가 일치해야 합니다. none을 확인했다고 외부 보안을 끄거나 TLS와 REALITY를 서로 바꿔 쓸 수 있는 옵션으로 여겨서는 안 됩니다.
프로토콜 계층과 외부 보안을 각각 확인하세요
VMess 노드
- UUID, 암호화 설정, 서버 요구 사항을 확인합니다.
- 최신 VMess AEAD 설정에서는 일반적으로 alterId=0을 사용합니다.
- 서버에서 TLS를 요구하면 클라이언트에서도 TLS를 켜고 서버 이름을 정확히 입력해야 합니다.
VLESS 노드
- 일반적인 설정에서는 encryption 값이 none입니다.
- TLS 노드는 서버 이름과 인증서 검증 설정을 확인합니다.
- REALITY 노드는 공개 키, shortId, 서버 이름, 지정된 flow를 확인합니다.
가져온 뒤 서버 매개변수와 대조하세요. security를 tls에서 reality로 단독 변경하거나 연결을 위해 인증서 검증을 건너뛰지 마세요.
VMess의 프로토콜 계층 암호화와 TLS의 인증서 신원 확인은 서로 다른 기능입니다. TLS 인증서 오류가 표시되면 시스템 시간, 서버 이름, 서버 인증서를 먼저 확인하세요. VMess에 이미 암호화가 있다는 이유로 오류를 무시해서는 안 됩니다. 이 글에서는 흔히 쓰이는 VLESS none 구성을 다룹니다. 다른 암호화 확장 기능을 사용한다면 해당 코어와 서버 문서를 확인하고, 기존 항목을 그대로 적용하지 마세요.
시간 검증: VMess 연결 실패 시 먼저 시계를 확인하세요
VMess 인증 데이터에는 시간 정보가 포함됩니다. 클라이언트 시간이 크게 어긋나면 주소, 포트, UUID가 모두 맞아도 서버가 연결을 거부할 수 있습니다. 일반적인 구현에서는 양쪽의 시간 오차가 약 120초 이내여야 하지만, 구체적인 기준은 사용 중인 코어 구현에 따라 다릅니다. 문제를 해결할 때는 허용 범위의 가장자리에 맞추기보다 양쪽의 시간을 자동으로 동기화하세요.
- Windows에서 ‘설정’ → ‘시간 및 언어’ → ‘날짜 및 시간’을 열고 ‘자동으로 시간 설정’을 켠 다음 ‘지금 동기화’를 실행합니다.
- 날짜와 연도가 올바른지 확인하세요. 시간대가 실제 위치와 다르게 표시되더라도 시스템의 시간값이 틀렸다는 뜻은 아닐 수 있습니다. 하지만 날짜를 잘못 수동 설정하면 인증에 직접 영향을 줍니다.
- 노드에 다시 연결한 뒤 로그를 확인하세요. 서버를 직접 관리한다면 서버 시간 동기화도 점검해야 합니다. 구독 서비스를 이용한다면 시간이 동기화되어 있다는 사실을 운영자에게 알려 주세요.
VLESS에는 VMess와 같은 시간 범위 조건이 없지만, 시계의 영향을 전혀 받지 않는 것은 아닙니다. TLS 인증서에는 유효 시작일과 만료일이 있으므로 시스템 날짜가 틀리면 핸드셰이크가 실패할 수 있습니다. 따라서 VLESS로 바꾼 뒤 연결된다고 해서 기기 시간을 계속 잘못 설정해도 되는 것은 아닙니다.
성능과 선택: 프로토콜 오버헤드보다 회선부터 비교하세요
VLESS는 기본 프로토콜 설계가 간결하며, 흔히 쓰이는 none 설정은 이 계층에서 데이터 암호화 작업을 생략합니다. 하지만 실제 연결에는 TLS나 REALITY가 사용되는 경우가 많고, 전송 캡슐화, 코어 구현, 기기 성능도 영향을 줍니다. 따라서 일정한 속도 향상을 단정할 수는 없습니다. 같은 프로토콜이라도 서버의 출구 회선에 따라 프로토콜 자체보다 더 큰 차이가 날 수 있습니다.
VLESS + TLS 또는 REALITY
권장새 설정을 만들고 양쪽에서 지원하는 경우 우선 검토해 볼 수 있습니다. 보안 방식은 둘 중 하나를 선택한 뒤 서버 안내에 따라 매개변수를 빠짐없이 입력하세요. 두 옵션을 동시에 켜는 방식이 아닙니다.
추천 대상: 서버를 관리하고 보안 매개변수를 이해하며 새 진입점을 만들려는 사용자
기존 VMess AEAD 설정
사용할 수 있는 구독이 이미 있다면 정상 작동하는 설정을 유지하는 편이 간편합니다. 프로토콜 이름이 오래됐다고 회선이 느린 것은 아니며, 이름을 바꾸기 위해 연결 구성을 전부 다시 만들 필요도 없습니다.
추천 대상: 서버에서 VMess만 제공하거나 안정적으로 작동하는 VMess 노드를 이미 사용하는 사용자
결론: 같은 조건에서 먼저 테스트한 뒤 전환 여부를 결정하세요
기기, 네트워크, 테스트 대상, 시간을 동일하게 유지하고 각 진입점에서 최소 세 번 반복 테스트하세요. 연결 성공률, 첫 바이트까지 걸리는 시간, 지속 다운로드 속도를 기록합니다. 서버 회선을 직접 제어할 수 없다면 결과는 두 노드 간 차이로 해석해야 합니다. 이를 두 프로토콜의 고정적인 성능 차이라고 단정하지 마세요.
클라이언트 목록의 지연 시간만으로 전체 성능을 판단할 수도 없습니다. TCP 연결만 확인하는 테스트가 있는가 하면 프록시를 통해 대상 주소에 접속하는 테스트도 있습니다. 두 결과가 의미하는 바는 다릅니다. 지연 시간은 낮은데 웹페이지가 열리지 않는다면 프로토콜 유형을 바로 바꾸기보다 TLS 핸드셰이크, DNS, 라우팅을 확인하세요.
v2rayN 노드 가져오기: 6가지 항목을 확인하세요
공유 링크를 받았다면 전체 내용을 복사한 뒤 v2rayN 메인 창에서 ‘클립보드에서 공유 링크 가져오기’를 선택하세요. 일반적인 데스크톱 화면에서는 메인 창에서 Ctrl+V를 눌러 가져올 수도 있습니다. 구독 주소를 받았다면 노드의 서버 주소 입력란에 넣지 말고 구독 그룹에 추가한 뒤 구독을 업데이트하세요. 메뉴 위치는 화면에 따라 달라질 수 있으니 기능 이름을 기준으로 찾으세요.
- 프로토콜 유형:
vmess://와vless://는 각각 다른 방식으로 가져옵니다. 링크 접두어를 직접 바꾸지 마세요. 이는 형식 변환이 아닙니다. - 주소와 포트: 서버 도메인 또는 IP 주소와 서버에서 실제로 수신하는 포트를 확인하세요. 443은 흔한 예일 뿐입니다. 로컬 프록시 수신 포트를 서버 포트 대신 입력할 수 없습니다.
- 사용자 식별 정보: UUID는 서버에서 승인한 사용자 정보와 일치해야 합니다. 복사할 때 공백이나 줄바꿈이 섞이지 않도록 하고, 구독에 포함된 값을 새 UUID로 임의 교체하지 마세요.
- 전송 방식: WebSocket은 path와 Host를 확인해야 합니다. 다른 전송 방식은 해당 항목을 확인하세요. Host, 서버 주소, TLS 서버 이름은 항상 같은 값인 것은 아닙니다.
- 보안 설정: TLS에서는 SNI, 즉 화면에 표시되는 서버 이름을 확인하세요. REALITY에서는 공개 키와 shortId도 확인해야 합니다. 공유 링크에는
pbk와sid같은 매개변수가 포함되는 경우가 많습니다. - 추가 매개변수:
flow는 호환되는 설정 조합에서만 사용합니다. 서버에서xtls-rprx-vision을 명시적으로 요구한다면 호환되는 코어를 사용하고 값을 일치시키세요. 모든 VLESS 노드에 일괄 추가하지 마세요.
가져오기에 성공했다는 것은 클라이언트가 형식을 인식했다는 뜻일 뿐, 원격 서버에 연결할 수 있다는 의미는 아닙니다. 연결 후에는 코어 로그를 확인하고 브라우저가 프록시를 사용 중인지 점검하세요. Windows에서 시스템 프록시를 따르는 앱을 프록시로 연결하려면 v2rayN의 시스템 프록시 메뉴에서 ‘시스템 프록시 자동 설정’을 선택할 수 있습니다. 시스템 프록시와 TUN은 서로 다른 연결 방식이므로 프로토콜 사용 가능 여부를 확인하기 위해 모든 모드를 동시에 켤 필요는 없습니다.
자주 묻는 질문: 가져오기는 되지만 핸드셰이크 실패 또는 웹페이지가 열리지 않는 경우
기존 VMess 노드를 VLESS로 바꿀 수 있나요?
클라이언트의 프로토콜 선택만 바꿔서는 안 됩니다. 먼저 서버 운영자에게 VLESS 진입점과 관련 매개변수를 받은 뒤 새 노드로 가져오세요. 주소, 포트, UUID가 같아 보여도 서버에서 해당 프로토콜을 실제로 지원해야 합니다.
VLESS encryption이 none으로 표시되는데 auto로 바꿔야 하나요?
흔히 쓰이는 VLESS none 설정은 원래 값을 그대로 두세요. VMess의 암호화 옵션을 그대로 적용해서는 안 됩니다. 노드 편집 창에서 TLS 또는 REALITY 설정을 확인하고 서버 설정과 일치시키세요. 이 항목만 바꿔 외부 보안 설정을 대신할 수는 없습니다.
갑자기 모든 VMess 연결이 되지 않으면 무엇부터 확인하나요?
먼저 기기의 시간을 동기화한 다음 구독을 업데이트하고 로그를 확인하세요. 로그에 연결 시간 초과가 표시되면 네트워크와 원격 포트를 추가로 점검합니다. 인증 또는 핸드셰이크 오류라면 UUID, 시간, 보안 매개변수를 확인하세요. 원인을 찾기 전에 노드를 일괄적으로 다시 만들지 마세요.
노드 테스트는 통과했는데 브라우저에서 웹페이지가 열리지 않으면 어떻게 하나요?
먼저 대상 노드가 선택되어 있는지, 시스템 프록시가 켜져 있는지 확인하세요. 그런 다음 DNS 오류와 라우팅 적용 여부를 점검합니다. 테스트 주소에 접속됐다는 것은 해당 요청이 성공했다는 뜻일 뿐, 브라우저나 다른 도메인, 모든 앱이 같은 경로를 사용한다고 보장하지는 않습니다.
프로토콜을 선택할 때는 서버에서 제공하는 프로토콜을 먼저 확인하고, 다음으로 클라이언트 코어의 지원 여부를 살핀 뒤, 실제 네트워크 상태에 따라 결정하는 것이 가장 확실합니다. VMess에서는 시간 동기화와 인증 매개변수가 중요하고, 일반적인 VLESS 설정에서는 외부 보안과 관련 항목이 중요합니다. 특정 프로토콜 이름을 좇기보다 필요한 매개변수를 빠짐없이 입력하고 양쪽 설정을 일치시키는 것이 더 중요합니다.