먼저 노드의 프로토콜과 전송 매개변수를 확인한 뒤 Xray 또는 V2Fly를 선택하세요. REALITY와 XTLS Vision 매개변수가 있으면 Xray를 우선 적용하고, VMess·WebSocket·TLS 중심의 기존 구독은 두 코어를 각각 테스트할 수 있습니다. 공유 링크, 클라이언트 로그, 실제 연결 결과를 기준으로 선택하면 코어 이름만 보고 판단하지 않아도 됩니다.
Xray와 V2Fly는 각각 어떤 문제를 해결하나
Xray와 V2Fly는 모두 Project V 관련 기술 생태계에서 출발했으며, 인바운드·아웃바운드·DNS·라우팅 규칙과 다양한 프록시 프로토콜을 처리할 수 있습니다. 예를 들어 inbound로 로컬 트래픽을 받고 outbound로 원격 서버에 연결한 다음 routing 규칙으로 출구를 결정하는 등 기본 설정 개념도 상당 부분 공유합니다. 하지만 서로 독립적으로 유지 관리되는 프로젝트이므로 프로토콜 확장, 필드 정의, 기본 동작과 릴리스 주기가 완전히 같다고 볼 수는 없습니다.
Xray를 선택할 때는 새로운 프로토콜과 전송 방식의 조합이 핵심입니다. VLESS·REALITY·XTLS Vision 등의 매개변수를 포함한 노드는 대체로 Xray 생태계를 기준으로 구성되며, 데스크톱에서는 v2rayN, 안드로이드에서는 v2rayNG를 사용할 수 있습니다. 클라이언트가 설정을 생성한 뒤 Xray 코어를 호출하므로 사용자는 구독 가져오기, 노드 선택, 시스템 프록시 또는 VPN 모드 활성화에 집중하면 되고 전체 JSON을 직접 작성할 필요는 없습니다.
V2Fly의 가치는 V2Ray 설정 체계를 지속적으로 유지하고 기존 설정과의 호환성을 제공하는 데 있습니다. VMess·WebSocket·TLS·TCP 중심의 노드라면 V2Fly를 실행 코어로 검토할 수 있습니다. 안드로이드에서 V2Fly를 명시적으로 사용해야 한다면 v2flyNG를 선택하고 실행 로그에서 실제로 로드된 코어와 설정을 확인하세요.
Xray 코어
추천VLESS·REALITY·XTLS Vision 등 Xray 생태계에서 자주 쓰이는 조합을 우선 지원하며, VMess 노드를 계속 사용하는 경우에도 적합합니다.
적합한 경우: 새 구독, 주력 환경, REALITY가 필요한 노드
V2Fly 코어
V2Ray 설정 체계를 중심으로 지속 관리되며, 기존 VMess·WebSocket·TLS 노드와 규칙을 검증하는 데 적합합니다.
적합한 경우: 기존 설정, VMess 노드, V2Fly를 명시적으로 요구하는 환경
프로토콜과 전송 매개변수로 코어 판단하기
가장 빠른 판단 기준은 구독에서 생성된 노드 상세 정보입니다. 먼저 클라이언트의 노드 편집 화면을 열고 주소, 포트, 프로토콜, 전송 방식, 보안 유형과 flow 필드를 기록하세요. 노드 이름에 있는 “고속”, “중계” 같은 표현만으로 판단해서는 안 됩니다. 이러한 메모는 핵심 핸드셰이크에 사용되지 않습니다.
VLESS라고 해서 모든 구현을 바로 서로 바꿔 쓸 수 있는 것은 아닙니다. 보안 유형이 REALITY인지, flow가 xtls-rprx-vision인지, 전송 계층이 TCP·gRPC 또는 다른 방식인지도 확인해야 합니다. 공유 정보에 REALITY 공개 키, 짧은 ID, serverName 또는 Vision flow가 있으면 Xray를 우선 사용하고 해당 필드를 빠짐없이 유지하세요.
| 노드 조합 | 우선 코어 | 확인해야 할 필드 | 일반적인 결과 |
|---|---|---|---|
| VLESS + REALITY + Vision | Xray | 공개 키, 짧은 ID, SNI, 지문, flow | 필드가 누락되면 보통 핸드셰이크 단계에서 실패합니다 |
| VLESS + TLS + gRPC | 먼저 서버 요구 사항에 맞춰 선택 | serviceName, SNI, 포트, TLS | 설정 구조는 비슷하지만 확장 기능은 항목별 확인이 필요합니다 |
| VMess + WebSocket + TLS | Xray 또는 V2Fly | UUID, Host, Path, SNI, 포트 | 같은 네트워크에서 연결 테스트로 비교하기 좋습니다 |
| VMess + TCP | Xray 또는 V2Fly | UUID, alterId, 암호화 방식, 포트 | 오래된 설정은 해당 필드가 아직 지원되는지 특히 확인해야 합니다 |
구독에 VMess만 표시된다면 같은 네트워크 환경에서 실제 연결을 10회 테스트해 보세요. 매번 기존 연결을 끊은 뒤 대상 노드에 연결하고 같은 테스트 주소에 접속해 성공 횟수, 첫 응답까지 걸린 시간과 로그 오류를 기록합니다. 지연 시간이 20~30ms 차이 나는 정도라면 그것만으로 코어를 결정하기에는 부족합니다. 연속 성공률과 페이지 로딩 안정성이 더 중요한 기준입니다.
설정 호환성이 설정을 그대로 서로 바꿔 쓸 수 있다는 뜻은 아닙니다
두 코어 모두 구조화된 설정을 사용하며 인바운드·아웃바운드·DNS·라우팅을 표현할 수 있지만, 필드가 같다는 사실만으로 완전히 호환되지는 않습니다. 특정 필드의 사용 가능 여부는 코어 버전, 프로토콜 구현과 전송 모듈에 따라 달라집니다. 완성된 설정을 다른 실행 코어로 그대로 바꾸면 알 수 없는 필드, 아웃바운드 초기화 실패, 또는 설정은 시작되지만 연결 핸드셰이크가 실패하는 문제가 발생할 수 있습니다.
구독 링크는 완성된 JSON보다 클라이언트 간 마이그레이션에 적합합니다. 구독 서비스는 보통 VMess 또는 VLESS 공유 정보를 출력하고, 클라이언트가 자체 코어에 맞춰 최종 설정을 생성합니다. 이전할 때는 기존 구독을 먼저 가져오고 클라이언트 캐시 폴더를 복사하지 마세요. 구독을 업데이트한 뒤 노드 세 개를 무작위로 확인해 프로토콜, 보안 유형, SNI, 전송 방식과 포트가 모두 유지됐는지 점검하세요.
- 기존 설정을 보존하세요.현재 구독 설정을 내보내거나 구독 주소를 기록하고, 아직 정상 작동하는 노드 목록을 덮어쓰지 마세요.
- 실제 코어를 확인하세요.v2rayN에서 「설정」→「매개변수 설정」을 열어 코어 관련 옵션을 확인하세요. v2rayNG 또는 v2flyNG에서는 「설정」을 연 다음 버전 정보와 실행 로그를 확인하세요.
- 설정을 다시 생성하세요.대상 클라이언트에서 구독을 가져오고 업데이트를 실행해 클라이언트가 대상 코어에 맞는 필드를 생성하도록 하세요.
- 먼저 단일 노드를 테스트하세요.프로토콜 필드가 완전한 노드 하나를 선택해 연결, DNS 확인과 웹 페이지 접속을 테스트한 뒤 일괄 이전하세요.
- 그다음 라우팅을 복원하세요.기본 연결이 정상인지 확인한 뒤 도메인·IP·프로세스 또는 앱별 규칙을 추가하세요. 코어 문제와 라우팅 문제를 동시에 확인하지 않도록 하는 방법입니다.
{
"inbounds": [
{
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks"
}
],
"routing": {
"domainStrategy": "AsIs"
}
}
위 조각은 로컬 SOCKS 인바운드와 라우팅 정책만 보여 주며 원격 인증 정보는 포함하지 않습니다. 테스트할 때 브라우저나 디버깅 도구를 127.0.0.1:10808로 지정하고, 클라이언트가 HTTP 프록시를 같은 SOCKS 포트로 잘못 설정하지 않았는지도 확인하세요. HTTP 인바운드를 별도로 설정한다면 10809를 사용할 수 있으며 두 포트를 다른 프로세스가 점유하고 있지 않은지 점검하세요.
업데이트 주기와 유지 관리 방식이 선택에 미치는 영향
업데이트가 빠르다고 연결이 자동으로 더 안정적인 것은 아닙니다. 새 버전은 프로토콜 매개변수를 추가하거나 핸드셰이크 문제를 수정하고 하위 의존성을 조정할 수 있지만, 기존 설정의 주변 필드 문제를 드러낼 수도 있습니다. 실제 사용에서는 새 버전이 현재 문제를 해결하는지 먼저 확인한 뒤 업그레이드하세요. 정상 작동 중인 환경을 버전 알림만 보고 즉시 교체해서는 안 됩니다.
Xray는 일반적으로 생태계의 프로토콜 확장을 더 먼저 지원합니다. 서버가 REALITY 또는 새로운 Vision 동작을 사용한다면 클라이언트 코어도 서비스 제공자가 요구하는 버전 이상이어야 합니다. V2Fly는 자체 방향에 따라 V2Ray 설정, 전송 기능과 플랫폼 기능을 유지합니다. 양쪽 릴리스 번호는 서로 비교할 수 없으므로 숫자가 더 크다고 기능이 더 많다고 판단해서는 안 됩니다.
클라이언트 버전과 코어 버전도 따로 기록해야 합니다. v2rayN·v2rayNG·v2flyNG는 화면, 구독, 라우팅 진입점과 시스템 네트워크 연동을 담당하고, 코어는 최종 설정을 해석해 연결을 수립합니다. 문제를 해결할 때는 최소한 클라이언트 주 버전, 코어 버전, 노드 프로토콜과 오류 발생 시간을 기록하세요. “최신 버전”이라고만 적으면 문제를 재현할 수 없습니다.
권장 구성: 프로토콜에 맞춰 데스크톱과 안드로이드 통일
데스크톱 v2rayN
- REALITY 및 Vision 노드에는 Xray 사용
- 「설정」→「매개변수 설정」에서 로컬 포트 확인
- 업데이트 후 검증된 노드 그룹을 회귀 테스트용으로 유지
안드로이드 v2rayNG
- 같은 Xray 호환 구독 가져오기
- 앱별 프록시와 로컬 DNS 설정 확인
- 연결에 실패하면 먼저 실행 로그 확인
서버가 V2Fly를 명시적으로 요구한다면 안드로이드에서 v2flyNG로 바꿔 별도로 검증하세요. 두 코어가 생성한 완성된 설정 파일을 그대로 서로 바꿔 쓰지 마세요.
- 안정 브랜치를 유지하세요:운영 환경의 노드는 검증된 조합에 우선 유지하고, 새 버전은 연결·DNS·라우팅·절전 모드 복귀 네 가지 테스트를 최소한 완료한 뒤 사용하세요.
- 롤백 정보를 보존하세요:업그레이드 전에 클라이언트 버전, 코어 버전과 구독 업데이트 시간을 기록하고, 문제가 발생하면 같은 노드로 다시 테스트하세요.
- 서버 측 변경과 구분하세요:여러 기기에서 동시에 실패한다면 먼저 노드 상태를 확인하세요. 한 기기에서만 실패할 때 로컬 코어와 시스템 프록시를 점검하면 됩니다.
- 릴리스 노트를 확인하세요:현재 사용하는 프로토콜, 전송 방식과 설정 필드를 중심으로 검색하고, 현재 환경과 관계없는 변경 사항까지 하나씩 추적할 필요는 없습니다.
노드 유형별로 실제 선택 완료하기
초보자는 “프로토콜 우선” 순서로 진행하면 됩니다. 먼저 구독에서 가장 많은 비중을 차지하는 노드 유형을 확인한 뒤 클라이언트를 선택하세요. 주요 노드가 VLESS + REALITY라면 데스크톱은 v2rayN, 안드로이드는 v2rayNG를 선택합니다. 안드로이드 구독이 V2Fly를 기준으로 생성된 것이 명확하다면 v2flyNG를 사용하고, 가장 단순한 VMess 또는 서버가 지정한 노드부터 테스트하세요.
기존 사용자는 코어 이름만을 이유로 자주 이전할 필요가 없습니다. 현재 VMess + WebSocket + TLS 노드가 장기간 안정적으로 작동한다면 기존 환경을 계속 사용하세요. 서버 프로토콜 업그레이드, 설정 필드 인식 실패, 요구 사항을 충족하지 못하는 버전 또는 REALITY가 필요한 경우에만 적합한 Xray 조합으로 전환하면 됩니다.
노드에 REALITY 또는 Vision이 포함된 경우
추천Xray 조합을 바로 사용하고 공개 키, 짧은 ID, SNI, 지문과 flow를 항목별로 모두 유지하세요. 필드를 삭제하지 마세요.
적합한 경우:v2rayN 데스크톱, v2rayNG 안드로이드
노드가 VMess 중심인 경우
먼저 현재 사용 가능한 코어를 유지한 뒤 같은 노드·같은 네트워크·같은 테스트 주소로 성공률을 비교하세요.
적합한 경우:기존 구독, 호환성 검증
구독에서 V2Fly를 명시적으로 지정한 경우
구독 안내에 따라 V2Fly 환경을 사용하고, Xray 전용 매개변수를 유사한 필드로 억지 변환하지 마세요.
적합한 경우:v2flyNG 안드로이드
10분 판단 절차
- 노드 상세 정보를 열고 프로토콜, 포트, 전송 방식, 보안 유형, SNI와 flow를 기록하세요.
- REALITY, 짧은 ID 또는 xtls-rprx-vision을 발견하면 Xray를 선택하세요.
- VMess만 있다면 먼저 현재 코어를 테스트하고, 이전을 위한 이전은 하지 마세요.
- 연결 후 로그를 확인해 unknown field, failed to listen, connection refused 또는 timeout이 없는지 점검하세요.
- 웹 페이지 접속, DNS 확인, 구독 업데이트와 라우팅 분할을 검증한 뒤 해당 조합을 일상 설정으로 지정하세요.
connection refused의 방향부터 구분하세요. 로그에 원격 주소와 서버 포트의 연결 거부가 표시되면 일반적으로 노드 포트가 수신 대기 중이 아니거나 주소가 잘못되었거나 서버 상태에 문제가 있는 것입니다. 로컬 127.0.0.1:10808에 연결할 수 없다고 표시되면 코어가 시작되었는지, 포트가 일치하는지, 시스템 프록시가 여전히 이전 포트를 가리키는지 확인하세요.
자주 묻는 선택 문제와 점검 방법
코어 선택 문제는 구독 캐시, 포트 충돌과 라우팅 규칙이 뒤섞여 발생하는 경우가 많습니다. 문제를 해결할 때는 먼저 최소 환경을 구성하세요. 노드 하나만 남기고 사용자 지정 라우팅을 끄며 기본 DNS를 사용하고 시스템 시간이 정확한지 확인합니다. 최소 설정으로 연결된 뒤 기능을 하나씩 복원하세요.
같은 VMess 노드를 두 코어에서 모두 사용할 수 있다면 어느 쪽을 선택해야 하나요?
같은 네트워크에서 10회 연속 연결해 성공 횟수, 첫 응답 시간과 끊김 여부를 기록하세요. 결과가 비슷하면 현재의 안정적인 환경을 유지하고, 구독에 REALITY 노드가 함께 있다면 Xray로 통일하는 것을 우선하세요.
VLESS를 가져온 뒤 노드는 보이지만 연결하자마자 실패하나요?
노드 편집 페이지를 열고 주소, 포트, UUID, 보안 유형, SNI, 지문, 공개 키, 짧은 ID와 flow를 차례로 확인하세요. REALITY 노드는 핵심 필드 하나만 누락되어도 핸드셰이크 단계에서 실패할 수 있습니다.
클라이언트를 바꾼 뒤 구독 노드 수가 줄었나요?
먼저 구독을 수동으로 업데이트한 다음 구독 그룹과 필터 조건을 확인하세요. 줄어든 노드가 특정 프로토콜에 집중되어 있다면 업데이트 로그에서 지원되지 않는 필드가 표시되었는지 확인하고 구독 제공자에게 대상 코어 형식을 문의하세요.
코어 로그에 포트가 이미 사용 중이라고 표시되면 어떻게 하나요?
중복 실행 중인 클라이언트를 종료하고 SOCKS 포트 10808과 HTTP 포트 10809을 확인하세요. 포트를 변경할 때는 시스템 프록시 설정도 함께 업데이트해야 코어는 새 포트를 수신하는데 브라우저는 이전 포트에 접속하는 문제를 피할 수 있습니다.
업그레이드 후 기존 라우팅 분할이 작동하지 않나요?
먼저 전역 프록시로 전환해 기본 연결을 확인한 다음 도메인 규칙, IP 규칙과 아웃바운드 태그가 여전히 올바르게 연결되어 있는지 점검하세요. 수정 후 설정을 다시 불러오고 로그에서 규칙이 예상한 출구에 적용되었는지 확인하세요.
최종 선택은 한 가지 규칙으로 정리할 수 있습니다. 서버 프로토콜이 필요한 코어의 하한을 정하고, 클라이언트 기능이 사용 방식을 결정하며, 실제 테스트 결과가 장기 유지 여부를 결정합니다. REALITY와 Vision은 Xray를 우선하고, 일반적인 VMess 설정은 기존 환경을 먼저 검증하며, V2Fly를 명시적으로 요구하는 구독은 V2Fly를 사용하세요. 클라이언트 이름, 한 번의 지연 시간 또는 버전 번호만으로 결론을 내리지 마세요.