Windows
v2rayN
데스크톱 버전은 크로스 플랫폼 인터페이스를 제공하며, 클래식 WPF 버전은 익숙한 데스크톱 사용 방식을 유지합니다. 두 버전 모두 구독 관리, 노드 편집, 로그 확인에 적합하므로 사용 습관에 맞춰 선택하세요.
처음 설치할 때는 먼저 시스템 요구 사항을 확인하세요. 기존 설정이 있다면 새 환경에 덮어쓰기 전에 보존할 구독 그룹과 라우팅 규칙을 내보내세요.
다운로드 페이지로 이동클라이언트 선택과 구독 가져오기부터 시작해 실제 설정 항목을 확인하며 라우팅 및 DNS를 설정하세요.
CLIENT / SYSTEM
먼저 기기의 운영체제와 프로세서 아키텍처를 확인한 뒤 클라이언트를 선택하세요. 데스크톱에서는 v2rayN을, 안드로이드에서는 Xray 코어를 사용하는 v2rayNG를 우선 고려할 수 있습니다. V2Fly 설정이 필요하다면 v2flyNG의 지원 범위를 확인하세요. 클라이언트는 관리 화면을 제공하며, 실제 프로토콜 지원 여부는 선택한 코어에 따라 달라집니다.
v2rayN
데스크톱 버전은 크로스 플랫폼 인터페이스를 제공하며, 클래식 WPF 버전은 익숙한 데스크톱 사용 방식을 유지합니다. 두 버전 모두 구독 관리, 노드 편집, 로그 확인에 적합하므로 사용 습관에 맞춰 선택하세요.
처음 설치할 때는 먼저 시스템 요구 사항을 확인하세요. 기존 설정이 있다면 새 환경에 덮어쓰기 전에 보존할 구독 그룹과 라우팅 규칙을 내보내세요.
다운로드 페이지로 이동v2rayN
‘이 Mac에 관하여’에 표시된 칩 정보를 확인해 Apple Silicon 또는 Intel용 설치 파일을 선택하세요. 프로세서 아키텍처와 운영체제는 별개의 조건이므로 파일 확장자만 보고 판단하면 안 됩니다.
설치 후 사용 가능한 노드 하나를 먼저 가져와 클라이언트가 요청을 보낼 수 있는지 확인한 다음 시스템 프록시를 설정하세요. 브라우저와 다른 앱의 동작이 다르면 해당 앱이 시스템 프록시 설정을 따르는지 확인하세요.
다운로드 페이지로 이동v2rayNG / v2flyNG
v2rayNG는 Xray 코어를 사용하며, v2flyNG는 V2Fly 코어를 사용하는 대안입니다. 대부분의 최신 기기에는 arm64 버전이 적합합니다. 아키텍처를 모르겠다면 기기 정보를 확인한 뒤 범용 설치 파일을 고려하세요.
처음 연결할 때는 운영체제의 VPN 권한 요청을 확인하세요. 백그라운드 연결이 끊기면 배터리 최적화와 앱 백그라운드 제한부터 점검하세요. 운영체제가 프로세스를 종료한 상황을 구독이나 프로토콜 오류로 오해하지 않도록 주의하세요.
다운로드 페이지로 이동v2rayN
배포판의 패키지 형식에 맞춰 deb 또는 rpm을 선택하고 x64와 arm64도 구분하세요. 데스크톱 GUI 클라이언트로 노드를 편리하게 관리할 수 있으므로, 평소 구독을 관리하기 위해 명령줄 서비스를 먼저 구축할 필요는 없습니다.
설치 후 데스크톱 환경의 프록시 설정과 로컬 수신 포트를 확인하세요. 일부 앱은 프록시 주소를 별도로 입력해야 합니다. 시스템 프록시를 켰더라도 모든 프로세스가 같은 경로를 사용하는 것은 아닙니다.
다운로드 페이지로 이동CONFIGURATION PATH
인바운드, 라우팅, 아웃바운드.
요청 흐름에 따라 설정을 살펴보세요.
FIELDS / CAPABILITIES
공유 링크에 표시된 프로토콜 이름은 구성의 일부만 나타냅니다. 인증, 전송 방식, 보안 계층과 라우팅 규칙은 각각 역할이 다릅니다. 아래 목차에서 각 계층을 구분한 다음 설정 가이드에서 항목을 확인하세요. 다른 코어용 예시를 현재 클라이언트에 통째로 복사하지 마세요.
VMess, VLESS, Trojan, Shadowsocks는 인증 및 암호화 구조가 서로 다릅니다. 노드를 가져온 뒤 프로토콜 유형을 확인하고 서버 주소, 포트, 인증 정보를 점검하세요. VLESS 자체에는 데이터 암호화 기능이 없으므로 보통 TLS 또는 REALITY와 함께 사용합니다. VMess 설정을 VLESS에 그대로 적용할 수도 없습니다. 연결 스위치만 제공하는 도구와 달리 GUI 클라이언트에서는 노드 설정을 항목별로 확인하기 쉽지만, 최종 지원 범위는 코어에 따라 달라집니다. 프로토콜 이름이 같아도 전송 방식과 보안 계층을 생략할 수 있는 것은 아닙니다.
{
"tag": "proxy",
"protocol": "vless"
}
자세히 보기 →
TLS, REALITY, WebSocket은 같은 설정 계층에 속하지 않습니다. 앞의 두 항목은 보안 전송과 관련되고, WebSocket은 데이터를 전달하는 전송 방식입니다. 설정하기 전에 서버 요구 사항을 확인한 뒤 serverName, fingerprint, 경로 등의 항목을 점검하세요. TLS 스위치만 바꿔 임의의 노드를 다른 연결 조합에 맞출 수는 없습니다. 매개변수를 자동으로 선택하는 단순한 화면보다 설정 항목을 명확히 보여주는 화면이 핸드셰이크 오류를 진단하기 쉽습니다. 클라이언트와 서버 설정은 서로 일치해야 하며, 인증서 검증을 유지하는 것도 일반적인 설정 원칙입니다.
"streamSettings": {
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"fingerprint": "chrome"
}
}
자세히 보기 →
분할 라우팅은 도메인, 주소 또는 포트에 따라 지정된 아웃바운드로 트래픽을 보냅니다. 앱마다 가장 빠른 노드를 자동으로 선택하는 기능은 아닙니다. 규칙은 보통 순서대로 확인하며 먼저 일치한 규칙이 이후 처리를 좌우하므로, 구체적인 예외 규칙을 포괄적인 규칙보다 앞에 두세요. domainStrategy는 라우팅 판단 과정에서 도메인을 해석하는 시점을 제어하며 클라이언트 전체의 DNS 설정을 의미하지 않습니다. 전체 연결 전환만 제공하는 방식보다 세밀하게 설정할 수 있지만, outboundTag가 실제로 존재하는지 확인하고 새 요청으로 변경 결과를 테스트해야 합니다.
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
}
]
}
자세히 보기 →
구독 링크는 여러 노드를 가져오는 데 사용하고, 단일 공유 링크는 특정 연결 설정을 가져오는 데 사용합니다. 구독을 추가한 뒤에는 업데이트를 실행해야 파싱된 노드 목록을 볼 수 있습니다. 노드를 하나씩 관리하는 것보다 구독 그룹으로 한꺼번에 갱신하기 편하지만, 원격 업데이트가 로컬에서 수정한 노드 설정을 덮어쓸 수도 있습니다. Base64는 인코딩 형식일 뿐 암호화를 의미하지 않습니다. 가져오기에 실패하면 링크 형식, 구독 응답, 코어 호환성을 각각 확인하세요. 접근 정보가 포함된 구독 주소를 공개 변환 도구에 붙여넣지 마세요.
{
"tag": "proxy",
"protocol": "vmess"
}
자세히 보기 →
데스크톱과 모바일 기기에서 같은 노드 설정을 사용할 수 있지만 시스템에 연결하는 방식은 다릅니다. 데스크톱 클라이언트는 보통 로컬 SOCKS 또는 HTTP 수신 포트와 시스템 프록시를 함께 사용하며, 안드로이드 클라이언트는 대개 시스템 VPN 인터페이스로 트래픽을 전달합니다. 실행 설정 전체를 다른 기기로 복사하기보다 노드를 먼저 가져온 다음 기기에 맞춰 로컬 포트, 라우팅, DNS를 설정하는 편이 안전합니다. 파일 경로와 권한, 백그라운드 제한도 기기마다 다릅니다. 여러 플랫폼을 지원하더라도 관리 방식이 비슷하다는 뜻일 뿐, 모든 로컬 설정을 그대로 재사용할 수 있는 것은 아닙니다.
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks"
자세히 보기 →
QUICK START / THREE STEPS
클라이언트 설치는 시작 단계일 뿐입니다. 처음 설정할 때는 출처가 분명하고 매개변수가 완전한 노드 하나로 전체 연결 경로를 확인한 뒤 복잡한 분할 라우팅 규칙을 추가하세요. 문제가 생겼을 때 노드 자체, 클라이언트 설정, 앱 연결 중 어느 단계에서 발생했는지 구분하기 쉽습니다.
구독 관리에서 그룹을 추가하고 구독 주소를 입력한 뒤 저장하고 업데이트하세요. 단일 공유 링크는 클립보드에서 가져오기 기능을 사용하면 됩니다. 목록이 비어 있다면 복사한 주소에 불필요한 공백이 있는지, 구독에 유효한 접근 정보가 필요한지 먼저 확인하세요. 웹페이지 주소가 항상 구독 주소인 것은 아닙니다.
가져온 뒤 노드 하나의 상세 설정을 열어 프로토콜, 서버 주소, 포트, 전송 방식을 확인하세요. 노드 이름은 식별을 돕는 메모일 뿐 실제 회선, 사용 가능 여부, 암호화 방식을 알려주지 않습니다. 직접 수정한 항목이 있다면 차이를 기록한 뒤 구독을 새로고침하세요.
테스트할 노드를 활성 항목으로 지정한 다음 용도에 맞는 라우팅 모드를 선택하세요. 데스크톱에서는 시스템 프록시를 켜기 전에 로컬 수신 포트가 사용 중인지 확인하고, 안드로이드에서는 시스템 안내에 따라 VPN 권한을 승인하세요. 시스템 프록시는 해당 설정을 따르는 앱에만 영향을 주므로 모든 트래픽이 클라이언트를 통과한다고 단정할 수 없습니다.
처음에는 이해하기 쉽고 단순한 규칙을 유지하세요. TUN 등의 연결 방식으로 전환해야 한다면 권한, 라우팅, DNS 동작을 별도로 확인하세요. 전송 방식, 보안 계층, 분할 라우팅을 한꺼번에 바꾸면 어떤 설정이 결과를 바꿨는지 파악하기 어렵습니다.
접근이 허용된 테스트 페이지를 열고 클라이언트 로그에 해당 연결이 기록되는지 확인하세요. TCP 테스트 성공은 특정 포트에 연결할 수 있다는 뜻일 뿐 인증, TLS 핸드셰이크, 전체 요청까지 성공했다는 뜻은 아닙니다. 실제 연결 테스트와 다운로드 속도 측정도 각각 다른 단계를 확인합니다.
브라우저에서 여전히 접속할 수 없다면 앱 프록시 설정을 확인한 뒤 로그에 나타난 도메인 해석, 연결 시간 초과, 핸드셰이크 오류를 살펴보세요. 한 번에 한 항목만 변경하고 설정을 저장한 뒤 다시 불러와 새 요청으로 테스트하세요. 로그를 공유해 도움을 요청하기 전에는 구독 주소, 인증 항목과 기타 개인 정보를 삭제하세요.
CORE / CLIENT / CONFIG
코어 기능을 구분한 뒤
클라이언트 설정을 확인하세요.
PROJECT V / V2FLY / XRAY
‘V2Ray’를 검색하면 프로젝트 이름, 코어 이름, 클라이언트 이름이 함께 검색되는 경우가 많습니다. 이들은 서로 다른 계층에 있습니다. 프로젝트 생태계는 기술적 배경을 제공하고, 코어는 연결을 처리하며, GUI 클라이언트는 노드와 설정을 실행 가능한 구성으로 정리합니다. 이 관계를 이해해야 현재 환경에 맞는 가이드인지 판단할 수 있습니다.
V2Ray는 Project V 생태계에서 시작했습니다. 인바운드는 앱의 트래픽을 받고, 라우팅은 처리 방향을 결정하며, 아웃바운드는 대상에 연결합니다. 이러한 구조 덕분에 프로토콜과 트래픽 정책을 각각 구성할 수 있습니다. 오늘날 많은 GUI 클라이언트가 이 개념을 이어받고 있으므로, 특정 화면의 버튼 위치를 외우기보다 inbounds, outbounds, routing을 이해하는 편이 다른 환경에도 적용하기 쉽습니다.
설정 구조가 비슷하다고 모든 항목을 공통으로 사용할 수 있는 것은 아닙니다. 오래된 가이드를 볼 때는 사용된 코어와 프로토콜 조합, 문서의 적용 범위를 함께 확인하세요. 인터페이스 이름은 업데이트에 따라 달라질 수 있지만, 요청이 어디로 들어와 어떤 규칙으로 분류되고 어떤 아웃바운드로 전달되는지 확인하는 것은 기본적인 문제 해결 절차입니다.
V2Fly는 V2Ray의 커뮤니티 개발을 이어가고 있으며, Xray는 관련 코드에서 분기해 자체 프로토콜 및 전송 기능을 추가했습니다. 두 프로젝트는 공통된 역사를 지니지만 설정에는 차이가 있습니다. 예를 들어 REALITY와 XTLS Vision은 Xray 지원 범위에 맞춰 확인해야 합니다. 설정이 모두 JSON이라는 이유만으로 다른 코어도 같은 항목을 인식한다고 볼 수 없습니다.
클라이언트에서 코어를 바꿀 수 있다고 해서 단순한 성능 옵션인 것은 아닙니다. 노드 프로토콜, 보안 계층, flow 등의 항목이 지원되는지 다시 확인하세요. ‘알 수 없는 항목’ 또는 프로토콜 미지원 메시지가 나오면 서버 주소를 계속 바꾸기보다 먼저 코어 선택을 점검하는 것이 효과적입니다.
v2rayN, v2rayNG, v2flyNG는 모두 소스 코드가 공개된 GUI 클라이언트입니다. v2rayN은 데스크톱에서 노드, 구독, 라우팅을 관리하고, v2rayNG는 안드로이드에서 Xray 코어를 사용하며, v2flyNG는 V2Fly 기반의 대안을 제공합니다. 클라이언트가 저장하는 구독 그룹과 인터페이스 설정은 코어가 읽는 실행 설정과 같은 파일이 아닐 수 있습니다.
세 클라이언트는 무료로 사용할 수 있지만, 클라이언트 자체가 원격 노드나 네트워크 서비스를 제공하지는 않습니다. 구독 링크와 노드 설정은 사용 권한이 있는 서비스에서 받아야 합니다. 소프트웨어, 코어, 연결 서비스를 선택하는 일은 각각 별도의 판단이며 한쪽의 이름으로 다른 항목을 대신할 수 없습니다.
오픈소스는 해당 라이선스 조건에 따라 소스 코드를 공개한다는 뜻입니다. 사용, 수정, 재배포 시에는 각 프로젝트의 라이선스 조항을 따라야 합니다. V2Fly의 주요 코드는 MIT 라이선스를, Xray-core는 MPL-2.0을 사용하며 클라이언트와 포함된 구성 요소는 각각의 라이선스가 적용됩니다. 라이선스는 권리와 의무를 규정할 뿐 임의의 실행 설정에 대한 보안을 보장하지 않습니다.
클라이언트, 코어, 규칙 데이터는 서로 다른 주기로 업데이트될 수 있습니다. 업그레이드 전에 현재 코어 선택을 기록하고 라우팅 및 DNS 설정을 백업한 뒤, 업그레이드 후 같은 요청으로 테스트하세요. 특정 사이트만 문제가 있다면 규칙과 도메인 해석을 먼저 확인하고, 모든 연결이 실패한다면 로컬 진입점, 노드 설정, 코어 실행 상태 순으로 살펴보세요.
READING / RECENT NOTES
기본 연결을 확인한 뒤 형식 변환, 프로토콜 차이, 테스트 결과를 살펴보세요. 아래 세 글은 구체적인 설정 항목과 측정 과정을 바탕으로 혼동하기 쉬운 개념을 설명합니다. 설정 중 관련 문제가 생겼을 때 참고할 수 있습니다.
TCP 핸드셰이크, 프록시를 통한 요청, 지속 다운로드는 각각 다른 단계를 측정합니다. 각 수치를 직접 비교할 수 없는 이유와 로그, 실제 연결 테스트, 실제 접속 결과를 함께 살펴 노드 상태를 판단하는 방법을 설명합니다.
글 읽기 →인증, 시간 조건, 보안 계층 조합을 기준으로 두 프로토콜의 차이를 설명하고 UUID와 alterId의 역할을 살펴봅니다. 먼저 각 항목이 어느 계층에 속하는지 이해한 뒤, 노드 제공 정보에 맞춰 입력할 값과 서로 대체할 수 없는 값을 구분하세요.
글 읽기 →구독 응답, 실행 설정, 단일 노드 공유 링크의 차이를 살펴보고 상황에 맞는 가져오기 방법을 안내합니다. 형식을 변환하기 전에 대상 클라이언트의 지원 범위를 확인해 인코딩 성공을 설정 호환으로 오해하지 마세요.
글 읽기 →