V2Ray 자주 묻는 질문 및 문제 해결
기본 개념, 설치 및 설정, 활용 팁, 문제 해결로 나누어 v2rayN, v2rayNG, v2flyNG의 자주 발생하는 문제를 정리했습니다. 먼저 문제가 발생한 단계를 확인한 뒤 로그와 설정을 바탕으로 범위를 하나씩 좁혀 보세요.
- 구독 가져오기
- 시스템 프록시
- TUN 권한
- V2Ray 라우팅 규칙
- DNS 문제 해결
클라이언트, 코어, 프록시 모드
그래픽 클라이언트, 프록시 코어, 프로토콜, 시스템 프록시가 각각 담당하는 단계를 먼저 구분하면 가져오기 문제, 연결 문제, 라우팅 문제를 뒤섞어 처리하는 일을 피할 수 있습니다.
V2Ray, v2rayN, Xray 코어는 각각 무엇인가요?
V2Ray는 일반적으로 Project V에서 발전한 프로토콜 및 도구 생태계를 의미합니다. v2rayN은 구독 관리, 라우팅 설정, 시스템 프록시 제어를 담당하는 그래픽 클라이언트이며, Xray는 클라이언트에서 호출할 수 있는 프록시 코어입니다. 그래픽 인터페이스가 코어를 대신해 연결을 처리하는 것은 아니며, 설정을 코어가 읽을 수 있는 형식으로 변환하고 실행 상태를 관리합니다.
v2rayN, v2rayNG, v2flyNG 중 무엇을 선택해야 하나요?
Windows, macOS, Linux 데스크톱에서는 v2rayN을 우선 선택하세요. Android에서는 v2rayNG를 많이 사용하며, 데스크톱에서 흔히 쓰는 Xray 설정과의 연동도 비교적 간편합니다. v2fly 코어가 필요하다면 v2flyNG를 선택할 수 있습니다. 선택 전에는 구독에 포함된 프로토콜과 전송 방식이 해당 클라이언트 및 코어에서 지원되는지 확인해야 합니다.
시스템 프록시, 라우팅 모드, 전역 프록시는 어떻게 다른가요?
시스템 프록시는 운영체제와 시스템 설정을 따르는 앱이 요청을 클라이언트로 보낼지 결정합니다. 라우팅 모드는 요청이 코어에 들어온 뒤 direct, proxy, block 중 어떤 출구를 사용할지 결정합니다. 전역 프록시는 일반적으로 클라이언트로 들어온 대부분의 트래픽이 프록시 출구를 사용한다는 뜻입니다. 세 기능은 서로 다른 처리 단계에 있으므로 시스템 프록시를 켠다고 해서 모든 프로그램이 자동으로 제어되는 것은 아닙니다.
VMess, VLESS, Trojan, Shadowsocks를 하나의 클라이언트에서 사용할 수 있나요?
현재 클라이언트와 코어가 해당 프로토콜을 지원한다면 같은 구독 그룹이나 서버 목록에 이 설정들을 저장할 수 있습니다. 프로토콜마다 필드의 의미가 다르므로 서로 바꿔 사용할 수 없습니다. 예를 들어 VLESS의 flow, REALITY의 publicKey와 shortId는 각각 명확한 용도가 있습니다. 가져온 뒤에는 프로토콜, 포트, 전송 계층, 보안 매개변수가 모두 입력되었는지 확인하세요.
구독 주소와 개별 공유 링크는 어떻게 다른가요?
구독 주소는 일반적으로 업데이트 가능한 서버 설정 묶음을 반환하므로 일괄 관리에 적합합니다. 개별 공유 링크는 하나의 설정만 설명하며, 가져온 뒤 구독 변경 사항을 자동으로 따라가지 않습니다. 구독 업데이트는 클라이언트 규칙에 따라 그룹 내용을 병합하거나 교체하므로, 구독 항목을 직접 수정하면 다음 업데이트 때 덮어써질 수 있습니다. 장기간 사용할 사용자 지정 설정은 별도로 저장하세요.
구독 가져오기 및 설치 패키지 선택
설치 단계에서 자주 발생하는 문제는 구독 주소 형식, 업데이트 방식, 프로세서 아키텍처, 시스템 권한에 집중됩니다. 먼저 입력 내용과 선택한 설치 패키지를 확인한 뒤 클라이언트 내부 설정을 점검하세요.
구독 가져오기에 실패하면 무엇부터 확인해야 하나요?
먼저 복사한 구독 주소가 완전한지, 불필요한 공백이나 줄바꿈이 없고 메신저에서 잘리지 않았는지 확인하세요. 그런 다음 클라이언트의 구독 그룹 기능으로 주소를 추가하고 업데이트를 실행합니다. 그래도 실패하면 주소가 만료되지 않았는지, 현재 네트워크에서 구독 서비스에 접속할 수 있는지, 반환 내용이 클라이언트가 지원하는 구독 또는 공유 링크 형식인지 확인하세요.
구독 업데이트는 실패하지만 브라우저에서는 주소가 열릴 때 어떻게 해야 하나요?
브라우저에서 열린다는 것은 주소에 접근할 수 있다는 뜻일 뿐, 반환 내용을 클라이언트가 해석할 수 있다는 의미는 아닙니다. 클라이언트 로그에서 HTTP 상태, 디코딩 안내, 형식 오류를 확인하고, 직접 연결을 통한 업데이트와 현재 프록시를 통한 업데이트를 각각 시도하세요. 로그인 페이지, 오류 페이지, 빈 내용이 반환된다면 먼저 구독 서비스 측에서 올바른 응답을 복구해야 합니다.
Android에서 다운로드할 때 arm64와 universal 중 무엇을 선택해야 하나요?
최근 출시된 대부분의 Android 스마트폰은 64비트 ARM 프로세서를 사용하므로 우선 arm64 패키지를 선택할 수 있습니다. 패키지 크기도 보통 더 작습니다. 프로세서 아키텍처를 확인할 수 없거나 기기가 오래되었거나 arm64 패키지 설치에 실패하면 universal 범용 패키지를 선택하세요. 범용 패키지는 더 많은 아키텍처 리소스를 포함해 호환 범위가 넓지만 설치 패키지는 대체로 더 큽니다.
v2rayN 데스크톱 버전과 Windows WPF 버전 중 무엇을 선택해야 하나요?
데스크톱 버전은 크로스 플랫폼 인터페이스를 기반으로 하므로 여러 데스크톱 운영체제에서 비슷한 사용 방식을 유지하고 싶은 사용자에게 적합합니다. WPF 버전은 Windows 전용이며, 인터페이스와 트레이 조작 방식이 기존 v2rayN 사용 경험에 더 가깝습니다. 처음 설치한다면 데스크톱 버전부터 시작하고, 이미 정해진 작업 흐름이 있거나 클래식 인터페이스를 선호한다면 WPF 버전을 선택하세요.
macOS에서 개발자를 확인할 수 없다는 메시지가 표시되면 어떻게 해야 하나요?
먼저 알림 창을 닫고 시스템 설정의 개인정보 보호 및 보안 페이지로 이동하세요. 방금 차단된 v2rayN을 찾아 시스템에서 제공하는 ‘그래도 열기’ 옵션을 사용합니다. 이후 다시 실행을 확인하세요. 처음 실행할 때 네트워크 접근 권한을 요청할 수도 있으므로 실제 사용에 필요한 경우 허용하고, 완료 후 메뉴 막대 상태와 시스템 프록시 설정을 확인하세요.
시스템 프록시, TUN, 라우팅 분할
클라이언트에 실행 중이라고 표시되어도 모든 앱의 트래픽이 코어로 들어간다는 뜻은 아닙니다. 시스템 프록시, 앱 내부 프록시, TUN은 트래픽을 가로채는 범위가 서로 다르며, 라우팅 규칙은 트래픽이 들어온 뒤 출구를 결정합니다.
클라이언트에는 연결됨으로 표시되지만 브라우저에서 인터넷이 되지 않으면 어떻게 해야 하나요?
먼저 브라우저가 시스템 프록시를 따르는지 확인한 다음, 클라이언트에서 사용 가능한 설정을 선택했고 올바른 시스템 프록시 모드를 활성화했는지 점검하세요. 그 후 라우팅 모드를 일시적으로 더 단순한 방식으로 바꿔 사용자 지정 규칙의 잘못된 분기를 배제합니다. 모든 설정에서 실패한다면 스위치를 반복해서 바꾸기보다 로그의 DNS, 핸드셰이크, 인증서 시간, 연결 시간 초과 정보를 확인하세요.
시스템 프록시를 켰는데 일부 앱이 계속 직접 연결되는 이유는 무엇인가요?
시스템 프록시는 운영체제의 프록시 설정을 읽는 앱에만 적용됩니다. 일부 프로그램은 자체 네트워크 스택, 고정 프록시 설정, UDP 연결을 사용해 시스템 프록시를 우회할 수 있습니다. 먼저 앱 내부에 프록시가 설정되어 있는지 확인하고, SOCKS 또는 HTTP 포트가 v2rayN의 로컬 수신 포트와 일치하는지 점검하세요. 더 많은 트래픽을 가로채야 한다면 TUN 모드를 검토할 수 있습니다.
TUN 모드에서 권한 부족 또는 시작 실패 메시지가 표시되는 이유는 무엇인가요?
TUN은 가상 네트워크 인터페이스를 만들고 시스템 라우팅을 변경하므로 일반적으로 관리자 권한이나 시스템 네트워크 확장 권한이 필요합니다. 먼저 클라이언트를 종료한 뒤 현재 운영체제의 요구 사항에 따라 권한을 높여 다시 실행하고 관련 네트워크 구성 요소를 허용하세요. 그래도 실패하면 다른 VPN, 가상 네트워크 어댑터, 보안 소프트웨어, 이전 TUN 프로세스가 인터페이스와 라우팅을 점유하고 있는지 확인하세요.
중국 본토 주소는 직접 연결하고 나머지 트래픽은 프록시로 보내려면 어떻게 설정하나요?
라우팅 설정에서 geosite:cn, geoip:cn, geoip:private를 direct 출구로 지정한 다음, 일치하지 않는 나머지 트래픽을 proxy로 보내세요. 규칙 순서가 매칭 결과에 영향을 주므로 더 구체적인 도메인 또는 IP 규칙을 일반 규칙보다 앞에 배치해야 합니다. 변경 후 설정을 다시 불러오고 직접 연결 대상과 프록시 대상 도메인을 각각 테스트하세요.
sniffing 트래픽 탐지는 켜야 하나요?
sniffing은 연결에서 대상 도메인을 식별해 IP만 확인되는 트래픽도 geosite 도메인 규칙과 계속 매칭되도록 돕습니다. 일반적인 데스크톱 설정에서는 켜도 됩니다. 다만 연결에 필수인 기능은 아닙니다. 특정 앱에서 도메인 식별 오류, 잘못된 연결 변경, 사용자 지정 라우팅과의 충돌이 발생한다면 해당 inbound에서 끈 뒤 결과를 비교하세요.
시간 초과, DNS, 로컬 포트
문제를 점검할 때는 구독 파싱, 로컬 프로세스, 도메인 해석, 원격 연결 중 어디에서 발생했는지 먼저 판단하세요. 최소 설정을 하나 유지하고 한 번에 하나의 변수만 조정하는 것이 여러 설정을 동시에 바꾸는 것보다 대체로 효과적입니다.
노드 연결 시간 초과는 어떤 순서로 점검해야 하나요?
먼저 로컬 네트워크가 정상인지 확인한 뒤 서버 주소, 포트, 프로토콜, 전송 방식, 보안 매개변수가 모두 입력되었는지 점검하세요. 여러 설정에서 동시에 시간 초과가 발생하면 로컬 네트워크, DNS, 시스템 시간 문제일 가능성이 큽니다. 하나의 설정에서만 시간 초과가 발생한다면 해당 설정을 집중적으로 확인하세요. 로그의 timeout, connection refused, handshake failed는 각각 다른 처리 단계를 가리킵니다.
구독 업데이트는 성공했는데 서버 목록이 비어 있는 이유는 무엇인가요?
업데이트 성공은 요청이 완료되었다는 뜻일 뿐이며, 반환 내용이 비어 있거나 형식이 호환되지 않거나 지원되는 설정을 포함하지 않을 수 있습니다. 먼저 구독 그룹의 업데이트 로그와 파싱된 항목 수를 확인하고 필터 조건이 활성화되어 있는지 점검하세요. 응답이 실제로 안내 문구, 웹페이지 내용, 알 수 없는 공유 형식이라면 클라이언트는 이를 서버 항목으로 인식하지 못합니다.
로그에 포트가 사용 중이라고 표시되면 어떻게 처리하나요?
포트 사용 중은 로컬 SOCKS, HTTP, API 수신 포트를 다른 프로세스가 사용하고 있다는 뜻이며, 이전 코어 프로세스가 정상적으로 종료되지 않은 경우에도 발생할 수 있습니다. 먼저 관련 클라이언트를 완전히 종료한 뒤 다시 시작하세요. 충돌이 계속되면 로컬 수신 포트를 10808에서 사용하지 않는 포트로 변경하고 브라우저나 다른 앱의 프록시 포트도 함께 업데이트하세요.
도메인만 열리지 않고 IP에 직접 접속하면 응답이 있을 때 어떻게 해야 하나요?
이 경우에는 보통 DNS를 먼저 점검해야 합니다. 클라이언트의 DNS 설정이 정상인지, 라우팅 규칙이 조회 요청을 연결할 수 없는 출구로 잘못 보내지 않는지 확인하고 운영체제의 오래된 DNS 캐시를 삭제하세요. TUN을 켰다면 DNS 하이재킹이나 가상 DNS 설정도 확인해야 합니다. 연결 출구가 정상이라면 문제는 도메인 해석 단계에 있을 수 있으므로 노드만 계속 바꾸지 마세요.
설정을 변경한 뒤 문제가 더 많아졌다면 점검 가능한 상태로 어떻게 되돌리나요?
먼저 현재 설정을 백업한 다음 사용자 지정 DNS, Mux, 복잡한 라우팅, TUN을 일시적으로 끄고 필수 필드가 완전한 설정 하나와 기본 로컬 포트, 기본 시스템 프록시만 남기세요. 기본 연결을 확인한 뒤 한 번에 하나의 설정만 복원하며 다시 테스트합니다. 여러 스위치를 동시에 변경하는 것보다 변수를 하나씩 늘리는 편이 충돌 원인을 찾기 쉽습니다.