V2Ray 용어집
프로토콜과 코어부터 구독, 프록시 모드, 라우팅까지. 설정에서 만난 키워드를 찾아 개념을 먼저 파악한 뒤 매개변수를 조정하세요.
‘클라이언트와 코어’부터 살펴본 뒤 프로토콜, 구독, 프록시 적용 범위를 확인해 보세요. 가져오기 실패, 연결 실패, 라우팅 오류는 서로 다른 단계의 문제일 수 있으므로 용어 하나만으로 원인을 단정하지 않는 것이 좋습니다.
처음 설정한다면: 입문 가이드 보기 →프로토콜과 전송
프록시 프로토콜, 전송 방식, 보안 계층은 조합해 사용해야 합니다. 이름이 비슷해도 매개변수를 서로 바꿔 쓸 수 있는 것은 아닙니다.
- VMess
- Project V 생태계의 프록시 프로토콜입니다. 사용자 식별자 등의 매개변수로 인증하며 다양한 전송 방식과 조합할 수 있습니다. 클라이언트와 서버의 인증·전송·보안 설정을 일치시켜야 하고, 시스템 시간 차이도 인증에 영향을 줄 수 있습니다. 가져온 뒤 연결되지 않는다면 서버 주소만 볼 것이 아니라 전체 설정을 확인하세요.
- VLESS
- 가벼운 프록시 프로토콜로, 프로토콜 자체에는 데이터 암호화 기능이 없습니다. 일반적으로 TLS나 REALITY 같은 보안 계층과 함께 사용합니다. 가져올 때 전송 방식, 보안 매개변수,
flow를 모두 확인해야 하며 사용자 식별자만 확인해서는 안 됩니다. VLESS를 지원한다고 해서 모든 확장 조합을 지원하는 것은 아니므로 코어의 지원 여부도 확인하세요.
- Trojan
- 일반적으로 TLS 보안 연결과 비밀번호 인증을 사용하는 프록시 프로토콜입니다. 비밀번호, 서버 이름, 인증서 검증이 모두 연결 결과에 영향을 주므로 주소를 올바르게 입력해도 핸드셰이크 단계에서 실패할 수 있습니다. 인증서 오류가 발생하면 이름, 시스템 시간, 서버 인증서를 확인하세요. 인증서 검증을 건너뛰는 방법은 일반적인 해결책으로 사용하지 마세요.
- REALITY
- Xray 생태계에서 사용하는 전송 보안 방식으로, VLESS와 함께 쓰이는 경우가 많습니다. 독립적인 프록시 프로토콜은 아닙니다. 서버 공개 키, 서버 이름,
shortId등의 매개변수를 서버 설정과 일치시켜야 합니다. 구체적인 필드명은 코어와 클라이언트 버전에 따라 다를 수 있습니다. 인터페이스에서 REALITY를 선택하는 것만으로 누락된 서버 매개변수가 채워지지는 않습니다.
코어와 생태계
v2rayN, v2rayNG, v2flyNG는 클라이언트 이름이며, Xray와 V2Fly는 코어 계층의 개념입니다.
- Project V
- 네트워크 프록시 도구와 관련 프로토콜을 중심으로 형성된 프로젝트 및 기술 생태계를 가리키는 이름입니다. 클라이언트는 그래픽 인터페이스를 제공하고, 코어는 연결과 라우팅 설정을 실행합니다. 생태계 이름이 곧바로 가져올 수 있는 노드 설정을 뜻하지는 않습니다. 이러한 역할 구분을 이해하면 ‘인터페이스 조작 방법’과 ‘프로토콜 매개변수 요구사항’을 구별하는 데 도움이 됩니다.
- V2Fly
- V2Ray 기술의 흐름을 이어가는 커뮤니티 프로젝트로, 프록시 코어와 관련 구성요소를 관리합니다. v2flyNG는 V2Fly 코어를 사용하는 Android 클라이언트입니다. 그렇다고 다른 코어의 모든 확장 기능을 지원한다고 단정할 수는 없습니다. 클라이언트를 고를 때는 구독에 필요한 프로토콜과 전송 조합을 먼저 확인한 뒤 익숙한 사용 방식도 고려하세요.
- Xray
- V2Ray 기술 생태계와 관련된 프록시 코어로, VLESS, REALITY 등의 프로토콜 및 보안 조합을 지원합니다. v2rayNG는 Xray를 사용하지만, 실제로 사용할 수 있는 필드는 클라이언트에 포함된 코어 버전에 따라 달라집니다. 설정 설명을 읽을 때는 해당 내용이 어떤 코어와 기능 범위를 대상으로 하는지 확인하고, 다른 코어의 필드를 그대로 복사하지 않도록 주의하세요.
- 코어
- 클라이언트 뒤에서 프로토콜 처리, 연결 설정, DNS, 라우팅 규칙 실행을 담당하는 프로그램 구성요소입니다. 그래픽 인터페이스의 설정은 대개 코어 설정으로 변환되므로, 인터페이스에 옵션이 있다고 해서 현재 코어도 이를 지원하는 것은 아닙니다. 시작 오류가 발생하면 로그의 설정 파싱 메시지를 먼저 확인한 뒤 필드 오류인지 코어 비호환 문제인지 살펴보세요.
클라이언트 기능
이 기능들은 요청이 클라이언트에 들어오는 방식을 결정합니다. 요청이 들어온 뒤 어떤 출구 경로를 선택하는지와 혼동하지 마세요.
- 시스템 프록시
- 운영체제의 프록시 설정을 클라이언트의 로컬 수신 주소로 지정해 해당 설정을 따르는 앱이 네트워크 요청을 보내도록 합니다. 모든 앱의 트래픽을 처리하는 방식은 아닙니다. 게임, 명령줄 도구, 자체 프록시를 설정한 프로그램은 이 진입점을 사용하지 않을 수 있습니다. 클라이언트를 종료하기 전에 시스템 프록시 설정이 복구됐는지 확인해, 앱이 중지된 로컬 포트에 계속 연결하지 않도록 하세요.
- PAC
- 요청 주소 등의 조건에 따라 프록시를 사용할지 직접 연결할지 결정해 지원 앱에 알려주는 자동 프록시 설정 스크립트입니다. PAC는 앱이 프록시 진입점을 선택할 때 적용됩니다. 요청이 코어에 들어온 뒤 실행되는 라우팅 규칙과는 다른 단계입니다. 앱이 시스템 PAC 설정을 무시한다면 스크립트를 수정해도 해당 앱의 연결 경로는 바뀌지 않습니다.
- TUN 모드
- 가상 네트워크 인터페이스로 시스템 라우팅 조건에 맞는 트래픽을 받아 클라이언트에서 처리하는 방식입니다. 보통 추가 권한이 필요하며 시스템 라우팅과 DNS 설정에 영향을 받습니다. 활성화한다고 모든 연결이 프록시 출구를 통하는 것은 아닙니다. 다른 가상 네트워크 도구와 함께 사용할 때는 인터페이스와 라우팅이 충돌하는지 확인한 뒤 하나씩 조정하세요.
- FakeDNS
- 도메인에 매핑용 주소를 반환하고 주소와 도메인의 대응 관계를 보존해 이후 대상 도메인을 식별할 수 있게 하는 방식입니다. 트래픽을 가로채는 과정 및 코어 처리 흐름과 함께 작동해야 합니다. 반환된 매핑 주소를 실제 대상 서버 주소로 간주해서는 안 됩니다. 문제가 발생하면 DNS 캐시도 확인해 설정을 바꾼 뒤에도 이전 매핑이 사용되는 일이 없도록 하세요.
구독과 노드
설정을 가져오는 것, 정리하는 것, 연결을 확인하는 것은 서로 다른 작업입니다. 구독 갱신에 성공해도 연결 테스트를 통과한 것은 아닙니다.
- 구독
- 주소를 통해 연결 설정을 가져오고 갱신하는 기능입니다. 제공되는 내용과 형식은 제공자에 따라 다릅니다. 구독 주소에 접근 인증 정보가 포함될 수 있으므로 공개 스크린샷, 대화, 로그에 전체 주소를 표시하지 마세요. 갱신에 성공해도 설정을 가져왔다는 뜻일 뿐, 모든 노드에 연결할 수 있거나 구독 내용이 계속 동일하다는 의미는 아닙니다.
- 노드
- 클라이언트에 저장된 연결 설정 하나를 말하며, 보통 서버 주소, 포트, 프로토콜, 인증, 전송 보안 매개변수가 포함됩니다. 노드 이름은 화면에 표시되는 라벨일 뿐, 실제 출구 지역이나 네트워크 경로, 사용 가능 여부를 증명하지는 않습니다. 노드 이름을 바꿔도 대개 연결 매개변수는 그대로지만, 구독으로 생성된 설정을 직접 편집하면 다음 갱신 때 덮어쓰일 수 있습니다.
- 구독 그룹
- 구독 출처별로 연결 설정을 정리하는 관리 단위로, 갱신·필터링·삭제를 편리하게 할 수 있습니다. 그룹 이름은 대개 관리 화면에만 영향을 주며 노드의 라우팅 규칙, 출구, 프록시 적용 범위를 자동으로 바꾸지 않습니다. 직접 추가한 설정과 구독 설정은 나눠 관리하는 편이 좋습니다. 그룹을 삭제하기 전에 어떤 항목에 영향을 주는지 확인하세요.
- 실제 연결 지연 시간
- 노드를 통해 실제 연결이나 요청을 실행해 측정한 시간입니다. 측정 범위는 클라이언트의 테스트 방식에 따라 달라집니다. 단순한 포트 연결 확인보다 실제 접속 과정에 가깝지만, 대역폭이나 안정성, 모든 웹사이트의 접속 성능을 직접 나타내지는 않습니다. 결과를 비교할 때는 테스트 대상, 네트워크 환경, 테스트 방식을 동일하게 유지하세요. 시간 초과가 발생하면 로그도 함께 확인해야 합니다.
라우팅과 분기
규칙 조건과 순서, 데이터 파일, 기본 출구가 함께 최종 경로를 결정합니다. 규칙 하나만 확인해서는 전체 동작을 파악하기 어렵습니다.
- 라우팅 규칙
- 도메인, IP, 포트 등의 조건에 따라 연결의 출구를 선택하는 설정입니다. Xray와 V2Ray의 일반적인 규칙은 순서대로 확인하며, 대개 처음 일치하는 규칙이 출구를 결정합니다. 일치하는 규칙이 없을 때의 처리 방식은 기본 동작을 확인해야 합니다. 규칙에서 참조하는
outboundTag는 실제로 존재하는 출구 태그와 일치해야 합니다. 규칙 이름만으로 트래픽이 분기되지는 않습니다.
- 라우팅 분기
- 연결을 직접 연결, 프록시, 차단 등의 처리 경로로 나누는 정책입니다. 트래픽이 어떤 출구를 선택할지 정하는 것으로, 시스템 프록시나 TUN으로 트래픽을 클라이언트에 전달하는 방식과는 별개의 문제입니다. 흔히 말하는 ‘중국 본토 우회’도 구체적인 규칙을 조합한 것입니다. 실제 적용 범위는 클라이언트가 생성한 설정과 사용 중인 규칙 데이터에 따라 달라집니다.
- GeoIP
- 태그별로 IP 주소 대역을 정리한 데이터 모음으로, 라우팅 규칙에서 IP를 매칭할 때 사용할 수 있습니다. 예를 들어
geoip:private는 사설 주소 범위를 매칭하는 데 자주 쓰이며, 해당 연결의 출구는 규칙에서 정합니다. 분류 결과는 데이터 출처와 업데이트 상태에 따라 달라집니다. IP 분류 태그를 정확한 지리적 위치로 간주하거나 도메인이 어떤 서비스에 속하는지 판단하는 근거로 삼아서는 안 됩니다.
- GeoSite
- 태그별로 정리한 도메인 규칙 모음으로, 코어가 사이트나 서비스 유형에 따라 요청을 매칭할 때 사용합니다. 예를 들면
geosite:cn이 있습니다. 서버 IP가 아닌 도메인 규칙을 대상으로 하며, 태그가 존재하는지와 코어가 대상 도메인을 파악했는지에 따라 매칭 여부가 달라집니다. 일부 리소스는 별도 도메인을 사용하므로 추가 규칙이 필요할 수 있습니다. 웹페이지의 기본 도메인만으로 모든 요청 경로를 단정하지 마세요.
네트워크 기초
한 번의 접속은 DNS 조회, 연결 설정, 신원 확인, 데이터 전송을 거칠 수 있습니다. 오류가 발생한 단계에 따라 해결 방법도 달라집니다.
- DNS
- 도메인 등의 조회를 해당하는 레코드로 변환하는 시스템입니다. 일반적으로 연결에 필요한 IP 주소를 확인하는 데 사용합니다. 브라우저, 운영체제, 클라이언트가 각각 DNS 조회를 수행할 수 있으므로 연결 문제가 발생하면 DNS 조회 실패와 이후 연결 실패를 구분해야 합니다. 암호화 DNS를 활성화해도 해당 조회의 전송 방식만 바뀔 뿐, 다른 프로그램의 조회까지 자동으로 처리하지는 않습니다.
- DNS 누수
- DNS 조회가 의도한 경로를 사용하지 않고 다른 리졸버나 네트워크 인터페이스에서 처리되는 현상입니다. 판단할 때는 설정한 정책과 실제 조회 출처를 함께 확인해야 합니다. 출구 IP나 조회 결과의 지역만으로 결론을 내려서는 안 됩니다. 브라우저 자체 DNS, 시스템 리졸버, 클라이언트 DNS 설정을 확인하기 전에 어떤 조회를 직접 연결하도록 설정했는지 먼저 확인하세요.
- 로컬 수신
- 클라이언트가 로컬 주소와 포트에서 다른 앱의 요청을 받는 진입점입니다. SOCKS와 HTTP가 흔히 사용됩니다. 앱에 입력한 프록시 프로토콜, 주소, 포트가 실제 수신 설정과 일치해야 하며 두 종류의 포트를 임의로 바꿔 쓸 수는 없습니다. 루프백 주소에서 수신하면 보통 이 기기에서만 접근할 수 있습니다. 다른 인터페이스에서 수신하도록 변경할 때는 방화벽, 인증, 접근 범위도 함께 고려해야 합니다.
- TLS
- 연결에 전송 암호화, 신원 인증, 무결성 보호를 제공하는 보안 프로토콜입니다. 인증서, 서버 이름, 시스템 시간이 핸드셰이크에 영향을 줄 수 있습니다. TLS 설정은 프록시 프로토콜 자체의 인증 매개변수를 대신하지 않습니다. 관련 오류가 발생하면 시간, 이름, 인증서 체인을 먼저 확인한 뒤 네트워크 연결 문제와 신원 인증 실패를 구분하세요.
용어에서 실제 설정으로
처음 사용하는 경우 단계에 따라 구독을 가져오고 연결을 확인하세요. 설정은 있지만 문제가 발생했다면 오류가 어느 단계에서 발생하는지 기록한 뒤 해당 설정을 점검하세요. 로그를 공유하기 전에는 구독 주소, 인증 정보, 기타 민감한 내용을 삭제해야 합니다.