프로토콜은 양쪽이 인증하고 프록시 데이터를 주고받는 방식을 정하며, 전송 방식은 데이터가 전달되는 경로를 정합니다. 보안 계층은 별도의 역할을 하므로 프로토콜 이름만으로 연결 전체의 암호화 방식을 판단할 수 없습니다.
프로토콜과 전송 · 01
VMess
VMess는 Project V 생태계의 프록시 프로토콜로, 사용자 인증과 데이터 캡슐화 방식을 정의하며 여러 전송 방식과 함께 사용할 수 있습니다. 설정을 가져올 때는 서버 주소와 포트뿐 아니라 사용자 식별자, 전송 유형, 보안 계층 매개변수도 유지해야 합니다. 일부 항목만 복사해서는 안 됩니다. 오래된 설정을 사용한다면 클라이언트 지원 범위를 확인하세요. 시스템 시간이 맞지 않아도 인증에 실패할 수 있으므로 모든 오류를 노드 문제로 단정하지 않는 것이 좋습니다.
VLESS는 간단한 인증과 전달에 중점을 두며, 자체적으로 전송 구간 전체를 암호화하지 않습니다. 실제 보안 수준은 TLS, REALITY 등의 설정을 함께 살펴봐야 합니다. 클라이언트에 VLESS가 표시된다는 사실만으로는 프록시 프로토콜 유형만 알 수 있으며, 전송 방식과 보안 계층, 흐름 제어 매개변수까지 알 수는 없습니다. 사용할 때는 공유 설정의 필드 조합을 그대로 유지하고 현재 코어가 해당 기능을 지원하는지 확인하세요. VMess를 VLESS로 바꾸는 것만으로 설정이 맞는 것은 아닙니다.
Trojan은 일반적으로 TLS 보안 연결에서 사용하며, 비밀번호로 프록시 인증을 수행합니다. 프로토콜 이름과 클라이언트 이름은 서로 다릅니다. 설정에 입력한 비밀번호, 서버 이름, 인증서 검증 여부가 모두 연결 성공에 영향을 주므로 주소와 포트가 맞는 것만으로는 충분하지 않습니다. 핸드셰이크에 실패하면 시스템 시간, 서버 이름, 서버 설정부터 확인하세요. 인증서 검증을 건너뛰는 방법을 만능 해결책으로 사용해서는 안 됩니다.
Shadowsocks는 지정된 암호 스위트와 비밀번호를 사용해 암호화된 프록시 연결을 만들며, 클라이언트와 서버가 같은 방식을 지원해야 합니다. 프로토콜 버전에 따라 비밀번호 형식, 인증, 구현 지원이 다를 수 있으므로 공유 링크를 인식한다고 해서 링크의 모든 설정을 사용할 수 있는 것은 아닙니다. 가져온 뒤에는 암호화 방식이 그대로 유지됐는지 확인하세요. 이름이 비슷하다는 이유로 다른 방식으로 바꾸거나, 비밀번호를 다른 프로토콜에 그대로 적용해서는 안 됩니다.
전송 방식은 프록시 데이터가 전달되는 연결 방식을 뜻합니다. 흔히 TCP, WebSocket, gRPC 등을 설정하며, 이러한 이름은 노드 계정이 아닙니다. 전송 방식과 보안 계층은 별개이므로 WebSocket을 사용한다고 해서 TLS가 자동으로 활성화되지는 않습니다. 경로, Host, 서비스 이름 등의 필드는 전송 유형에 맞춰 서버 설정과 일치시켜야 합니다. 매개변수가 빠져 있다면 하나씩 추측하지 말고 완전한 설정을 확인하세요.
클라이언트는 인터페이스와 시스템 연동을 담당하고, 코어는 연결, 이름 확인, 라우팅을 처리합니다. 어떤 인터페이스 프로그램을 다운로드했는지와 현재 실제로 호출되는 코어가 무엇인지는 각각 확인해야 합니다.
코어와 클라이언트 · 06
Project V와 V2Ray
Project V는 V2Ray와 관련된 오픈소스 프록시 기술 생태계입니다. V2Ray는 보통 코어 프로그램과 관련 기술 체계를 가리키며, 특정 데스크톱 또는 모바일 인터페이스를 뜻하지 않습니다. 일상적으로 말하는 ‘V2Ray 클라이언트’는 관련 연결 설정을 관리하는 그래픽 프로그램을 가리키는 경우가 많지만, 프로그램마다 코어, 설정 항목, 지원 범위가 다를 수 있습니다. 안내를 읽을 때는 소프트웨어 이름과 버전을 먼저 확인해 코어 설정 필드를 인터페이스 메뉴 이름으로 착각하지 않도록 하세요.
V2Fly는 V2Ray 코어를 중심으로 이어지는 커뮤니티 프로젝트 생태계로, 관련 코어가 프로토콜 처리와 연결 전달을 담당합니다. Xray와 기술적 뿌리를 공유하지만 기능 확장, 설정 필드, 업데이트 주기는 같지 않습니다. 기본 프로토콜을 처리할 수 있다는 이유만으로 모든 설정이 호환된다고 볼 수는 없습니다. v2flyNG 등의 클라이언트를 사용할 때는 실제 코어 기능에 맞춰 노드를 선택하고, 특히 설정에 특정 코어 전용 확장 기능이 포함되어 있는지 확인하세요.
Xray는 V2Ray와 기술적 뿌리를 공유하는 프록시 코어로, REALITY 같은 프로토콜 확장과 전송 보안 기능을 자체적으로 발전시켜 왔습니다. 설정을 사용할 수 있는지 판단하려면 코어 버전, 전송 방식, 확장 매개변수를 모두 확인해야 합니다. 클라이언트에서 ‘VLESS’를 선택할 수 있다는 사실만으로는 충분하지 않습니다. 인터페이스 프로그램을 업데이트한 뒤에는 실제 실행 중인 코어도 함께 바뀌었는지 확인하세요. 현재 실행 환경을 파악할 때는 노드 메모보다 로그에 표시된 코어 이름이 더 정확합니다.
그래픽 클라이언트는 노드 관리, 구독 가져오기, 설정 생성, 시스템 연동을 담당하며, 연결 처리는 보통 클라이언트가 호출하는 코어가 수행합니다. v2rayN은 Windows, macOS, Linux 데스크톱용이고 v2rayNG와 v2flyNG는 Android용입니다. 두 앱의 주요 차이점 중 하나는 각각 Xray와 V2Fly 코어를 사용한다는 점입니다. 인터페이스에 설정 항목이 있다고 해서 어떤 매개변수 조합이든 유효한 것은 아닙니다. 문제를 진단할 때는 클라이언트 설정, 생성된 설정 파일, 코어의 응답을 함께 확인해야 합니다.
시스템 프록시는 운영체제가 앱에 제공하는 프록시 설정으로, 이를 따르는 앱은 해당 요청을 로컬 클라이언트로 보냅니다. 자체 네트워크 설정을 사용하는 앱도 있으므로 시스템 프록시를 켰다고 모든 연결이 가로채지는 것은 아닙니다. 코어가 모든 대상을 프록시 출구로 보내는 것도 아닙니다. ‘시스템 프록시 자동 설정’에서 ‘자동’은 클라이언트가 시스템 설정을 변경하는 동작을 뜻합니다. 실제 접속 경로는 앱의 동작과 트래픽 분기 규칙을 함께 확인해야 합니다.
노드는 연결 설정이고, 공유 링크는 설정을 표현하는 형식이며, 구독 주소는 설정 모음을 가져오는 진입점입니다. 연결 테스트는 특정 조건에서의 결과만 알려 주므로 실제 사용 환경의 접속 확인을 대신할 수 없습니다.
구독과 노드 · 11
노드
노드는 일반적으로 클라이언트에서 연결에 사용할 수 있는 설정 항목을 뜻하며, 서버 주소와 포트, 프로토콜, 인증 정보, 필요한 전송 매개변수가 포함됩니다. 노드 이름은 식별을 위한 메모일 뿐 실제 위치, 사용 가능 여부, 연결 품질을 보장하지 않습니다. 이름이 비슷한 항목도 서로 다른 매개변수를 사용할 수 있고, 이름이 다른 항목이 같은 서버를 가리킬 수도 있습니다. 중복 여부를 판단할 때는 이름만 보지 말고 설정 내용을 확인하세요.
공유 링크는 프로토콜 접두사와 인코딩된 매개변수로 연결 설정을 표현합니다. 예를 들어 vmess:// 또는 vless://로 시작하는 텍스트가 있으며, 보통 노드 하나를 가져올 때 사용합니다. 일반 웹 주소가 아니므로 클라이언트의 클립보드 가져오기 또는 QR 코드 스캔 기능으로 읽어야 합니다. 프로토콜마다 텍스트 구조도 다를 수 있습니다. 전체 링크에는 사용자 식별자나 비밀번호 같은 인증 정보가 포함될 수 있으므로 화면을 캡처하거나 도움을 요청할 때 민감한 부분을 가리고 원본 링크를 공개하지 마세요.
구독 주소는 클라이언트가 연결 설정 모음과 이후 업데이트를 가져오는 데 사용하는 진입점입니다. 업데이트할 때 클라이언트가 내용을 요청하고 지원되는 형식으로 파싱합니다. 노드 하나를 담은 공유 링크와는 용도가 다르며, 일반 웹 주소라고 해서 유효한 구독 주소인 것은 아닙니다. 요청에는 성공했지만 노드가 추가되지 않았다면 응답 내용과 형식의 호환성을 확인하세요. 구독 주소에 접근 정보가 포함될 수 있으므로 안전하게 보관해야 합니다. 업데이트하면 구독 그룹에서 직접 수정한 내용이 덮어써질 수도 있습니다.
TCPing은 일반적으로 TCP 연결을 시도해 대상 주소와 포트의 응답 여부를 측정합니다. 구체적인 동작과 측정 범위는 테스트 도구마다 다릅니다. 포트 연결 가능 여부를 확인하는 데 유용하지만 프록시 인증, TLS 협상, 최종 대상 요청의 성공 여부까지 검증하지는 않습니다. TCPing 결과가 있는데 웹페이지가 열리지 않는 상황은 서로 모순되지 않습니다. 결과 열 하나만 보고 노드를 선택하지 말고 전체 연결 경로를 계속 점검하세요.
실제 연결 지연 시간은 보통 클라이언트가 프록시 설정을 통해 지정된 테스트 주소에 요청을 보내고 걸린 시간을 뜻합니다. 이름 확인, 핸드셰이크, 연결 재사용이 측정에 포함되는지는 구현에 따라 다릅니다. 테스트 주소, DNS, 트래픽 분기 규칙, 현재 네트워크 상태가 결과에 영향을 주므로 같은 조건에서 비교하고 테스트 요청이 의도한 출구를 이용했는지 확인해야 합니다. 지연 시간이 짧다고 다운로드 대역폭이 높은 것은 아니며, 한 번 시간 초과가 발생했다고 모든 대상에 접속할 수 없는 것도 아닙니다.
먼저 트래픽이 클라이언트로 들어오는지 확인한 다음 어떤 규칙과 출구가 적용되는지 살펴보세요. 트래픽 가로채기 범위, DNS 조회, 출구 선택은 서로 관련은 있지만 각각 별개의 단계입니다.
라우팅과 트래픽 분기 · 16
라우팅 규칙과 트래픽 분기
라우팅 규칙은 도메인, IP, 포트, 인바운드 등의 조건에 따라 연결을 지정된 출구로 보냅니다. 트래픽 분기는 조건에 따라 경로를 선택하는 동작입니다. 일반적인 출구로는 직접 연결, 프록시, 차단 등이 있지만 실제 이름과 규칙 구조는 설정에 따라 다릅니다. 대부분 규칙은 순서대로 적용되므로 앞쪽의 포괄적인 조건이 뒤쪽의 세부 조건보다 먼저 적용될 수 있습니다. 특정 웹사이트의 경로를 진단할 때는 현재 선택된 노드만 보지 말고 대상 정보, 규칙 우선순위, 기본 출구를 확인하세요.
GeoIP는 IP 주소 범위별로 정리한 분류 데이터입니다. 라우팅 규칙은 이 데이터 모음을 이용해 대상 주소를 판별할 수 있으므로 IP 대역을 하나씩 직접 작성하지 않아도 됩니다. 데이터 분류는 주기적으로 업데이트되며 클라우드 서비스 주소, CDN, 주소 할당 변경이 매칭 결과에 영향을 줄 수 있습니다. 따라서 서버의 실제 위치나 연결 품질을 정확히 판단하는 기준으로 사용할 수 없습니다. 도메인으로 접속할 때 IP 규칙이 적용되는지는 DNS 조회 방식에도 달려 있으므로 규칙이 있다고 해서 요청마다 반드시 일치하는 것은 아닙니다.
GeoSite는 도메인을 범주별로 정리한 데이터 모음입니다. 라우팅 규칙에서 범주 이름을 참조해 광고 도메인처럼 관련 도메인 그룹을 관리할 수 있습니다. 범주는 매칭 조건만 제공하므로 최종적으로 직접 연결, 프록시, 차단 중 무엇을 적용할지는 규칙의 출구가 결정합니다. 범주를 참조하는 것만으로 접속 동작이 바뀌지는 않습니다. 범주 데이터도 업데이트되므로 데이터 파일, 범주 이름, 사용 중인 코어가 서로 호환되는지 확인하세요. 앱의 부가 도메인이 같은 범주에 포함되지 않을 수도 있습니다.
TUN 모드는 가상 네트워크 인터페이스를 통해 IP 패킷을 받아 처리합니다. 시스템 프록시 설정을 따르지 않는 앱의 트래픽까지 처리할 때 자주 사용하지만, 실제 적용 범위는 라우팅, 권한, 클라이언트 구현에 따라 달라집니다. 활성화한 뒤에는 DNS 처리, 로컬 네트워크 접근, 다른 가상 네트워크 인터페이스와의 관계도 고려해야 합니다. 스위치를 켜는 것만으로 모든 설정을 대신할 수는 없습니다. 앱의 접속 동작이 달라졌다면 라우팅과 로그를 확인해 트래픽 경로를 파악하세요. 여러 트래픽 가로채기 기능을 동시에 켜면 충돌할 수 있습니다.
FakeDNS는 도메인에 가상 IP를 할당하고, 이후 관리되는 연결 경로에서 매핑을 통해 도메인을 복원하는 방식입니다. 프록시가 도메인 정보를 유지해 처리와 트래픽 분기에 활용할 수 있도록 돕습니다. 가상 주소는 웹사이트의 실제 서버 주소가 아닙니다. DNS 가로채기, 매핑 상태, 주소 범위, 라우팅 설정이 함께 작동해야 정상적으로 사용할 수 있습니다. 조회 결과가 가상 주소인데 연결이 클라이언트를 우회하면 접속에 실패할 수 있습니다. 모드를 바꾼 뒤에는 시스템이나 앱에 이전 DNS 캐시가 남아 있는지도 확인하세요.
인증은 연결 사용자를 식별하고, 보안 계층은 통신을 보호하며 상대의 신원을 확인합니다. 공유 링크를 가져올 수 있다고 해서 매개변수가 맞게 설정된 것은 아니며, 인증 오류를 무시해도 된다는 뜻도 아닙니다.
암호화와 보안 계층 · 21
TLS
TLS는 전송 데이터를 보호하고 통신 상대의 신원을 확인하는 보안 프로토콜이며, 프록시 설정에서 별도의 보안 계층으로 자주 사용됩니다. 인증서의 신뢰 여부, 서버 이름의 일치 여부, 시스템 시간이 핸드셰이크에 영향을 줄 수 있습니다. 프로토콜 협상 매개변수를 설정한 경우 서버와도 맞춰야 합니다. 인증서 검증을 건너뛰면 신원 확인 기능이 약해지므로 일반적인 설정으로 사용해서는 안 됩니다. 오류가 발생하면 먼저 이름, 인증서 체인, 시간 문제를 확인하세요.
REALITY는 Xray 생태계의 전송 보안 방식으로, VLESS와 같은 계층의 프록시 프로토콜은 아닙니다. 두 기능은 함께 쓰이는 경우가 많지만 역할은 다릅니다. 사용하려면 클라이언트와 코어가 관련 기능을 지원해야 하며, 서버 설정에 맞춰 서버 이름, 공개 키, 짧은 ID 등의 매개변수를 입력해야 합니다. 구체적인 필드는 설정 요구사항을 따르세요. 이 기능을 사용한다고 앱 전체 연결이 자동으로 올바르게 구성되는 것은 아니므로 인증, 전송, 라우팅을 각각 확인해야 합니다. 일반 TLS 설정의 이름만 바꿔 그대로 적용해서는 안 됩니다.
SNI는 TLS 핸드셰이크에서 대상 서버 이름을 지정하는 확장 기능입니다. 클라이언트 인터페이스에서는 관련 항목이 ‘서버 이름’ 또는 serverName으로 표시될 수 있습니다. 연결에 사용하는 주소와 이 이름은 다를 수 있지만, 서버 요구사항에 맞고 해당 인증서 검증 방식과 일치해야 하므로 임의로 입력해서는 안 됩니다. SNI와 WebSocket의 Host 필드는 서로 다른 단계에 속합니다. 예시에서 두 값이 같더라도 하나를 다른 필드의 범용 대체값으로 사용할 수는 없습니다.
UUID는 VMess, VLESS 등의 설정에서 자주 사용하는 사용자 식별자로, 해당 프로토콜의 인증 과정에 사용됩니다. 보통 하이픈으로 구분된 16진수 문자열로 표시됩니다. 서버 주소나 암호화 키와는 다르며, 구체적인 역할은 프로토콜 설계에 따라 다릅니다. 형식이 올바르게 보여도 서버가 해당 사용자를 허용한다는 뜻은 아닙니다. 실제 설정의 UUID는 인증 정보로 안전하게 관리하고, 복사할 때 공백이 들어가거나 문자열이 잘리지 않도록 주의하세요. 문서의 예시 값을 실제 연결 계정으로 사용해서는 안 됩니다.
DNS 유출은 일반적으로 도메인 조회 요청이 예상하지 않은 경로로 전달되는 현상을 뜻합니다. 판단하기 전에 어떤 조회는 로컬에서 처리하고 어떤 조회는 지정된 출구를 거치도록 할지 명확히 해야 합니다. 브라우저 자체 DNS 조회, 시스템 DNS, 클라이언트 DNS, 앱 캐시가 접속 과정에 함께 관여할 수 있으므로 검사 결과에 표시된 DNS 서버 이름만으로 원인을 단정할 수 없습니다. 클라이언트 로그와 실제 규칙을 함께 확인하세요. TUN이나 암호화 DNS를 활성화해도 모든 DNS 요청이 자동으로 같은 경로를 따르는 것은 아닙니다.