VMess와 VLESS의 차이: 일반 사용자가 알아야 할 네 가지
VMess와 VLESS가 인증 방식, 전송 계층 의존도, 암호화 방식, 클라이언트 호환성에서 어떻게 다른지 네 가지 항목으로 정리하고, 일상적인 사용에서 언제 이 차이를 신경 써야 하는지도 설명합니다.
전문 읽기 →v2rayN · v2rayNG · v2flyNG
v2rayN, v2rayNG, v2flyNG 세 가지 GUI 클라이언트의 다운로드 경로와 설정 방법을 이 사이트에 정리했습니다. Windows, macOS, Android, Linux 네 플랫폼을 모두 다루며, 각 플랫폼마다 구독 가져오기 절차와 JSON 설정 파일 레퍼런스를 제공해 설치부터 라우팅 분기까지 필요한 설정을 확인할 수 있습니다.
설정 주제
구독, 라우팅, 코어, 시스템 프록시는 일상적인 사용에서 가장 자주 손대는 네 가지 설정입니다. 각 주제마다 바로 대조해 볼 수 있는 설정 예시와 함께, 그 설정이 어떤 문제를 해결하는지, 오류가 났을 때 어디를 먼저 확인해야 하는지를 정리했습니다. 전체 필드 목록과 예시는 설정 모음 페이지에 모아 두었습니다.
{
"remarks": "기본 구독",
"url": "https://example.com/sub?token=xxxx",
"autoUpdateInterval": 360, // 단위: 분
"enabled": true
}
구독은 노드 정보와 클라이언트 사이의 중계 계층입니다. 구독 주소 하나가 서버에서 관리하는 설정 묶음을 가리키고, 클라이언트는 정해진 간격으로 다시 가져오므로 노드가 늘거나 줄어도 설정을 직접 고칠 필요가 없습니다. v2rayN에서는 구독 그룹에서 구독마다 자동 업데이트 간격을 따로 지정할 수 있으며, 흔히 쓰는 값은 6시간에서 24시간 사이입니다. 간격이 너무 짧으면 요청이 잦아지고, 너무 길면 노드 변경이 늦게 반영됩니다. 업데이트가 실패하면 먼저 구독 주소가 온전한지 확인하고, 그다음 로컬 시간과 네트워크 상태를 점검한 뒤 마지막으로 로그 페이지에 표시된 응답 내용을 확인합니다. 안드로이드에서는 구독 그룹 화면을 아래로 당기면 수동으로 새로 고칠 수 있습니다.
구독 필드와 업데이트 메커니즘 자세히 →{
"domainStrategy": "IPIfNonMatch",
"rules": [
{ "type": "field", "outboundTag": "direct", "domain": ["geosite:cn"] },
{ "type": "field", "outboundTag": "proxy", "domain": ["geosite:geolocation-!cn"] },
{ "type": "field", "outboundTag": "direct", "ip": ["geoip:private"] }
]
}
라우팅은 어떤 트래픽이 프록시를 거치고 어떤 트래픽이 직접 연결될지를 정합니다. 위 예시는 중국 본토 사이트와 LAN 주소는 direct 아웃바운드로, 나머지 도메인은 proxy 아웃바운드로 보내며, domainStrategy는 도메인 해석 시점을 제어합니다. 일상에서 가장 자주 손보는 것은 geosite와 geoip 두 규칙 집합입니다. geosite는 사이트 분류를, geoip는 IP 대역 분류를 담당하며, 둘 다 코어에 내장된 규칙 파일에서 제공됩니다. 규칙을 잘못 쓰면 로컬 서비스가 열리지 않거나 일부 사이트가 눈에 띄게 느려지는데, 이럴 때는 먼저 로그 페이지에서 규칙이 걸린 줄을 확인하고, 다시 규칙 집합으로 돌아가 하나씩 대조합니다.
routing 전체 필드와 규칙 우선순위 →{
"outbounds": [{
"tag": "proxy",
"protocol": "vless",
"settings": { "vnext": [{
"address": "example.com",
"port": 443,
"users": [{ "id": "b831381d-6324-4d53-ad4f-8cda48b30811", "flow": "xtls-rprx-vision" }]
}]},
"streamSettings": { "network": "tcp", "security": "reality" }
}]
}
아웃바운드 프로토콜과 전송 방식은 클라이언트와 서버가 어떻게 핸드셰이크할지를 결정합니다. VMess와 VLESS는 흔히 쓰이는 두 가지 아웃바운드 프로토콜로, VMess는 자체 인증 필드를 갖고 있고 VLESS는 인증을 전송 계층에 맡겨 구조가 더 가볍습니다. 전송 계층은 tcp, ws, grpc 등을 고를 수 있고, 보안 계층은 tls 또는 REALITY를 고를 수 있으며, 세 계층의 조합이 하나의 아웃바운드 설정 안에 들어갑니다. v2rayN과 v2rayNG는 기본적으로 Xray 코어를 사용하며 V2Fly 코어 버전도 제공합니다. 설정을 가져온 뒤 필드를 인식할 수 없다는 메시지가 나오면 보통 코어와 프로토콜이 맞지 않는 경우이므로, 해당 프로토콜을 지원하는 코어로 바꾸면 됩니다.
프로토콜 필드와 코어 대응 관계 →{
"inbounds": [{
"tag": "socks",
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": { "udp": true }
}]
}
시스템 프록시 모드는 클라이언트가 로컬에서 포트 하나를 열어 두고, 시스템이나 브라우저가 트래픽을 이 포트로 넘겨 주는 방식입니다. 위 예시는 로컬 인바운드의 전형적인 형태로, 루프백 주소만 열고 LAN이나 외부에는 열지 않습니다. v2rayN의 시스템 프록시 스위치는 시스템 프록시 설정을 자동으로 기록하며, 스위치를 끄면 원래대로 돌아옵니다. TUN 모드는 애플리케이션 자체의 프록시 설정에 의존하지 않고 모든 트래픽을 가져갑니다. 안드로이드에서는 VpnService가 가상 네트워크 인터페이스를 만들며 동작이 TUN 모드에 가깝고, 설정에서 앱별로 프록시를 거칠지 직접 연결할지를 정할 수 있습니다.
inbounds와 로컬 수신 포트 →Windows · macOS · Android · Linux
데스크톱에서는 v2rayN을 쓰고, 안드로이드에서는 v2rayNG와 v2flyNG 중 하나를 고르면 됩니다. 플랫폼별 설치 파일 경로와 시스템 요구 사항, 설치 절차는 다운로드 페이지에 플랫폼별로 묶어 정리해 두었으며, 아래 플랫폼 카드를 누르면 해당 항목으로 바로 이동합니다.
v2rayN은 데스크톱 버전과 클래식 WPF 버전 두 가지를 제공합니다. 데스크톱 버전은 차세대 크로스플랫폼 인터페이스이고, 클래식 WPF 버전은 기능이 안정적이며 업데이트 주기가 완만합니다. 두 버전은 같은 설정 파일 형식을 공유합니다.
다운로드하러 가기 → macOSv2rayN은 Apple Silicon과 Intel 두 가지 칩용 설치 파일을 제공합니다. M 시리즈 칩은 arm64, 초기 Intel 기기는 x64를 선택하세요. 처음 실행할 때는 시스템 설정에서 열기를 허용해야 합니다.
다운로드하러 가기 → Android안드로이드에서는 Xray 코어를 쓰는 v2rayNG를 우선 권장하며, V2Fly 코어가 필요하면 v2flyNG를 선택합니다. 두 클라이언트 모두 arm64와 범용 설치 파일을 제공하니 2015년 이후 주류 기종이라면 arm64를 고르면 됩니다.
다운로드하러 가기 → Linuxv2rayN은 deb와 rpm 두 가지 패키지 형식을 제공하며 x64와 arm64 아키텍처를 모두 지원합니다. Debian, Ubuntu 계열은 deb를, Fedora, openSUSE 계열은 rpm을 선택하고, 설치가 끝나면 애플리케이션 메뉴에서 실행하면 됩니다.
다운로드하러 가기 →세 단계
전체 절차는 튜토리얼 페이지에 플랫폼별로 펼쳐져 있고, 여기서는 간단히 정리했습니다. 세 단계는 건너뛸 수 없습니다. 구독 가져오기가 성공해야 노드를 고를 수 있고, 노드에 연결된 다음에야 분기 설정을 논할 수 있습니다.
다운로드 페이지에서 운영체제에 맞는 설치 파일을 고르세요. 데스크톱과 안드로이드에 각각 하나씩만 설치하면 되고, 여러 클라이언트를 동시에 설치할 필요는 없습니다. 설정 파일은 두 플랫폼에서 함께 쓸 수 있습니다.
서버에서 제공한 구독 주소를 복사해 클라이언트의 구독 그룹에서 새 항목을 만들고 붙여 넣은 뒤, 저장하고 한 번 수동으로 업데이트하면 노드 목록이 서버 페이지에 나타납니다.
데스크톱에서는 시스템 프록시나 TUN 모드를 먼저 켠 다음 노드를 선택해 연결하고, 안드로이드에서는 연결 전에 VpnService 권한이 허용되어 있는지 확인하세요. 연결하면 알림 표시줄에 상시 알림이 나타납니다.
Project V · V2Fly · Xray
세 클라이언트는 독립된 프로젝트가 아니라 Project V 생태계의 그래픽 인터페이스 계층입니다. 클라이언트, 코어, 설정 파일 세 가지의 역할 분담을 이해해 두면 필드 인식 오류나 연결 이상이 생겼을 때 문제를 더 쉽게 찾을 수 있습니다.
Project V는 V2Ray를 핵심으로 하는 프록시 도구 모음으로, 처음에는 커뮤니티 개발자들이 시작했고 이후 V2Fly와 Xray 두 주요 코어 갈래로 나뉘었습니다. 코어는 프로토콜 구현과 암호화, 전송을 담당하며 그래픽 인터페이스는 제공하지 않습니다. 일반 사용자가 직접 접하는 v2rayN, v2rayNG, v2flyNG는 모두 코어 위에 올라가 설정 파일과 구독 관리, 시스템 통합을 클릭 가능한 인터페이스로 감싼 것입니다. 이런 계층 분리의 장점은 같은 설정 파일을 서로 다른 클라이언트 사이에서 옮겨 쓸 수 있다는 점입니다. 클라이언트를 바꿔도 노드를 다시 설정할 필요가 없고, 문제를 찾을 때도 인터페이스와 코어를 나눠서 판단할 수 있습니다.
V2Fly와 Xray는 현재 활동 중인 두 코어 계보입니다. V2Fly는 Project V의 원래 구현을 이어가며 프로토콜 지원 범위가 보수적인 편이고, Xray는 V2Fly를 바탕으로 VLESS, XTLS, REALITY 같은 비교적 새로운 프로토콜과 전송 특성을 확장했으며 업데이트 주기가 더 빠릅니다. v2rayN과 v2rayNG는 기본적으로 Xray 코어를 사용하면서, 구형 프로토콜 호환이 필요한 경우를 위해 V2Fly 코어 버전도 함께 제공합니다. v2flyNG가 안드로이드에서 V2Fly 코어에 대응하는 클라이언트입니다. 두 코어는 같은 JSON 설정 구조를 공유하고 필드 이름도 대체로 일치하지만, 일부 신규 프로토콜 필드는 Xray에서만 쓸 수 있습니다. 설정을 가져올 때 필드를 인식할 수 없다는 메시지가 나오면 현재 어떤 코어를 쓰고 있는지 먼저 확인하세요.
세 클라이언트 모두 오픈소스 라이선스로 배포되며 소스 코드가 공개되어 있어 커뮤니티가 직접 빌드하고 배포할 수 있습니다. 오픈소스가 주는 직접적인 이점은 설정 형식과 필드 의미, 프로토콜 구현에 대한 논의 기록이 공개되어 있다는 점으로, 모르는 필드를 만나면 코어 문서와 대조해 확인할 수 있습니다. 클라이언트 자체에는 노드 정보가 들어 있지 않고 어떤 중앙 서버에도 의존하지 않습니다. 노드는 사용자 자신의 서버나 구독이 제공하며, 클라이언트는 설정 파일에 따라 연결을 시작할 뿐이고 구독 주소와 노드 정보는 모두 로컬에 저장됩니다.
업데이트 구조는 두 계층으로 나뉩니다. 클라이언트 버전은 인터페이스 기능과 코어 버전을 따라 올라가고, 구독 내용은 서버가 관리하며 클라이언트가 정해진 간격으로 가져오므로 서로 영향을 주지 않습니다. 일상적인 사용에서 클라이언트를 자주 바꿀 필요는 없고, 오히려 코어 버전이 올라가면서 설정 필드가 달라지는 경우가 더 흔합니다. 업그레이드 후 필드를 인식할 수 없다는 메시지가 나오면 설정 모음 페이지의 해당 장에 나온 예시와 먼저 대조해 보세요. 이 사이트의 레퍼런스는 현재 주류 버전의 설정 구조에 맞춰 정리했으며, 필드 예시는 범용적인 형태만 남겼습니다. 구체적인 값은 서버가 내려주는 설정을 기준으로 하세요.
최근 글
구독 업데이트, 노드 선택, 프로토콜 차이처럼 자주 묻는 주제를 각각 독립된 글로 정리했습니다. 글마다 주제 하나만 다루고 그에 맞는 설정 예시를 함께 넣었습니다.
VMess와 VLESS가 인증 방식, 전송 계층 의존도, 암호화 방식, 클라이언트 호환성에서 어떻게 다른지 네 가지 항목으로 정리하고, 일상적인 사용에서 언제 이 차이를 신경 써야 하는지도 설명합니다.
전문 읽기 →base64 구독, 원본 JSON 설정, vmess·vless 공유 링크 세 가지 형식의 차이를 비교하고, 어떤 상황에 무엇을 써야 하는지와 변환 과정에서 필드가 가장 쉽게 유실되는 지점을 짚습니다.
전문 읽기 →v2rayNG의 시스템 수준 설정 세 가지를 정리합니다. VpnService 권한과 상시 알림, 백그라운드에서 종료되지 않도록 v2rayNG를 배터리 최적화 예외에 추가하기, 그리고 앱별로 프록시를 거칠지 직접 연결할지 고르기입니다.
전문 읽기 →자주 묻는 질문
결론만 한 줄로 정리했고, 자세한 설명은 용어 사전과 설정 모음 페이지에, 대응하는 조작 절차는 튜토리얼 페이지에 있습니다.
VMess와 VLESS 중 무엇을 골라야 할까요?
일반적인 사용 환경에서는 둘 다 충분하며, VLESS는 구조가 더 가볍고 REALITY와 함께 쓰는 구성이 더 흔합니다. 이미 쓰는 설정이 정상적으로 연결된다면 굳이 바꿀 필요는 없고, 프로토콜을 바꾸려면 서버 쪽도 함께 조정해야 합니다.
용어 사전 →구독을 가져왔는데 노드 목록이 비어 있다면?
먼저 구독 주소가 온전한지, 클라이언트의 로컬 시간이 정확한지 확인한 뒤 수동으로 한 번 업데이트해 보세요. 실패 원인은 대부분 주소가 잘린 경우와 네트워크가 연결되지 않은 경우 두 가지이며, 업데이트 로그에 반환 상태가 기록됩니다.
튜토리얼 페이지 →라우팅 규칙에서 geosite와 geoip는 무엇인가요?
도메인과 IP 대역을 기준으로 나눈 두 가지 규칙 집합입니다. geosite는 사이트별로, geoip는 지역 IP 대역별로 분류하며, 분기 규칙이 이들을 이용해 트래픽을 매칭합니다. 코어에 내장된 규칙 파일에서 제공됩니다.
용어 사전 →데스크톱과 안드로이드에서 같은 구독을 쓸 수 있나요?
네. 구독 내용과 설정 파일 형식은 두 플랫폼에서 공통으로 쓰이며, 클라이언트마다 해석 방식만 다를 뿐입니다. 같은 구독을 각각 가져오면 되고, 노드가 늘거나 줄면 양쪽에 함께 반영됩니다.
설정 모음 →