플랫폼별 설치 · 연결 흐름에 따른 문제 해결

V2Ray 전체 플랫폼 설치 가이드
구독, 프록시 및 TUN 설정

Windows, macOS, Linux에서는 v2rayN을 사용하고, Android에서는 필요한 코어에 따라 v2rayNG 또는 v2flyNG를 선택하세요.

이 페이지에서는 플랫폼별로 설치부터 연결 확인까지 체계적으로 살펴보고 권한, 마이그레이션, 문제 해결 방법도 안내합니다. 처음 설정한다면 빠른 시작 가이드를 먼저 읽고 기본 연결을 완료한 뒤 해당 섹션에서 설정을 조정하세요.

클라이언트 설치 구독 및 노드 트래픽 전달 라우팅 및 확인

01 / PREPARATION

공통 준비 사항

클라이언트, 코어, 서버 설정의 차이

클라이언트는 노드를 표시하고 구독을 저장하며 라우팅을 선택하고 연결을 시작합니다. 코어는 프로토콜 처리, 암호화된 전송, 트래픽 전달을 담당합니다. 서버 설정에는 원격 주소, 포트, 인증 정보가 포함됩니다. 클라이언트를 설치했다고 바로 연결할 수 있는 것은 아닙니다. 시작하기 전에 유효한 구독 주소나 필요한 노드 정보를 준비하고, 현재 네트워크에서 일반 웹사이트에 접속할 수 있는지 확인하세요.

데스크톱에서는 v2rayN을, Android에서는 보통 Xray 코어를 사용하는 v2rayNG를 먼저 고려하세요. 기존 설정이 V2Fly에 명확히 의존하는 경우 v2flyNG를 선택할 수 있습니다. VLESS, VMess, Trojan은 서로 다른 프로토콜이며 REALITY는 보안 전송과 관련된 설정입니다. 이름이 비슷하다고 필드를 서로 바꿔 쓸 수는 없습니다. 지원 범위는 구체적인 빌드에 따라 다르므로, 가져오기에 성공했더라도 모든 매개변수가 작동하는 것은 아닙니다.

시스템, 아키텍처, 권한 확인

시스템 정보에서 프로세서 아키텍처를 확인한 다음 클라이언트 다운로드 페이지에서 알맞은 패키지를 선택하세요. 운영체제와 아키텍처가 모두 맞아야 합니다. 데스크톱 운영체제라도 x64 또는 arm64를 사용할 수 있으니 파일 크기로 호환성을 판단하지 마세요. 설치 전에 디스크 여유 공간을 확인하고 현재 계정에 앱 설치 권한이 있는지 살펴보세요. 가상 네트워크 인터페이스가 필요하다면 관리 권한도 확인해야 합니다.

먼저 시스템이 날짜, 시간, 시간대를 자동으로 동기화하도록 설정하세요. 시간이 맞지 않으면 인증서 검증이나 시간 조건이 있는 프로토콜 인증이 실패할 수 있습니다. 기기를 오랫동안 절전 상태로 두었거나 시스템 스냅샷을 복원했거나 오프라인으로 보관했다면 특히 확인하세요. 이어서 네트워크에서 로그인 인증 페이지를 기다리고 있지는 않은지 살펴보세요. 네트워크 자체가 연결되지 않았다면 노드 설정을 반복해서 바꿔도 해결되지 않습니다.

처음 설정할 때는 네트워크를 이미 제어하고 있는 다른 프록시나 터널 프로그램을 종료하세요. 여러 프로그램이 같은 로컬 포트를 차지하거나 시스템 프록시, 기본 라우팅, DNS를 동시에 변경할 수 있습니다. 클라이언트 하나만 실행하면 로그와 실제 트래픽을 대조하기 쉽습니다. 회사 네트워크에 통합 정책이 있다면 사용 범위를 먼저 확인하고, 시스템 설정을 변경해 관리 정책을 우회하지 마세요.

최소 구성으로 연결 확인

먼저 시스템 프록시로 연결을 확인한 다음 TUN을 시도하세요. 시스템 프록시는 시스템 설정을 따르는 앱에만 영향을 주는 경우가 많아 문제 범위가 작습니다. TUN은 더 많은 트래픽을 처리하며 가상 네트워크 인터페이스, 권한, 라우팅 문제가 추가됩니다. 어느 방식이든 사용 가능한 원격 노드가 필요합니다. 기본 연결도 되지 않는 상태에서 고급 옵션을 모두 켜면 원인을 판단하기 어려워집니다.

클라이언트에 표시되는 로컬 주소와 수신 포트를 기록하고 HTTP, SOCKS, 혼합 포트를 구분하세요. 포트는 실제 설정값을 따르고 다른 기기의 스크린샷을 그대로 따라 하지 마세요. 루프백 주소는 현재 기기에서만 사용하며, LAN 주소는 다른 기기에서 접속할 때 사용하므로 용도가 다릅니다. 처음에는 로컬 수신만 사용하고 ‘LAN에서 연결 허용’은 켜지 마세요.

연결을 확인할 때는 세 가지를 함께 살펴보세요. 클라이언트가 코어를 시작했는지, 앱이 로컬 프록시로 트래픽을 보냈는지, 원격 요청에 응답이 왔는지 확인해야 합니다. 트레이 아이콘이나 연결 스위치, 속도 측정 결과만으로 전체 흐름이 정상이라고 단정할 수 없습니다. 이후 설정을 바꿀 때는 한 번에 하나씩 변경하고 변경 전 값과 재현 방법을 기록해 문제가 생기면 되돌릴 수 있게 하세요.

기존 환경을 사용 중이라면 설치나 업데이트 전에 설정을 내보내거나 앱 데이터를 백업하세요. 백업에는 구독 주소와 노드 인증 정보가 포함될 수 있으므로 안전한 위치에 보관해야 합니다. 이 문서는 설정 기능을 기준으로 설명하며 모든 빌드에서 메뉴 배치가 같다고 가정하지 않습니다. 화면이 다르면 버튼 위치를 똑같이 찾기보다 해당 기능이나 필드를 찾아보세요.

02 / WINDOWS

Windows 설치 및 설정

데스크톱 버전과 클래식 WPF 버전 선택

Windows 다운로드 섹션에서 v2rayN 카드의 데스크톱 버전이나 클래식 WPF 버전을 선택하세요. 데스크톱 버전은 크로스 플랫폼 인터페이스를 사용하고 WPF 버전은 익숙한 Windows 인터페이스를 유지합니다. 둘 다 노드, 구독, 프록시 설정을 중심으로 작동합니다. 처음이라면 데스크톱 버전부터 시작하고, WPF 사용에 익숙하다면 기존 흐름에 맞춰 선택하세요. 인터페이스가 바뀌었다고 두 프로그램을 동시에 실행할 필요는 없습니다.

다운로드한 뒤 설치 프로그램의 안내에 따라 설치 위치를 선택하세요. 현재 계정에서 쓸 수 있는 폴더를 선택하고 임시 다운로드 폴더나 동기화 프로그램이 자주 옮기는 위치는 피하세요. 실행에 필요한 환경이 없다는 메시지가 표시되면 구성 요소 이름과 아키텍처를 확인한 다음 다운로드 페이지의 안내에 따라 설치하세요. 오류 스크린샷만으로 버전을 추측하거나 다른 PC의 실행 파일을 설치 폴더에 무작정 복사하지 마세요.

구독을 가져와 사용할 노드 선택

v2rayN을 실행하고 ‘구독 그룹 설정’을 열어 그룹을 추가한 뒤 메모와 구독 주소를 입력하세요. 메모는 구독 출처를 구분하기 위한 것으로 연결 인증에는 쓰이지 않습니다. 저장한 다음 ‘프록시를 사용하지 않고 구독 업데이트’를 실행하세요. 현재 네트워크에서 해당 주소에 직접 접속할 수 있어야 합니다. 서비스 제공자가 기존 프록시를 통해서만 업데이트할 수 있다고 안내했다면 먼저 연결을 복구한 뒤 업데이트 방식을 바꾸세요.

업데이트가 끝나면 구독 로그와 노드 목록에서 새 항목이 방금 만든 그룹에 추가되었는지 확인하세요. 노드를 선택해 활성 서버로 지정한 뒤 코어가 정상적으로 시작되는지 살펴보세요. ‘구독 업데이트 성공’ 메시지만으로 판단하지 마세요. 보통 구독 내용을 가져와 해석했다는 뜻일 뿐이며, 원격 주소와 전송 매개변수, 서버 상태는 실제 요청으로 확인해야 합니다.

먼저 시스템 프록시를 설정하고 앱별 차이를 확인

트레이 메뉴에서 ‘시스템 프록시 자동 설정’을 선택한 다음 브라우저에서 연결을 테스트하세요. 브라우저를 계속 켜 두었다면 관련 창을 닫고 다시 실행해 기존 연결이나 캐시 설정의 영향을 줄이세요. 모든 앱이 시스템 프록시를 따르는 것은 아닙니다. 일부 명령줄 프로그램, 다운로드 도구, 자체 네트워크 스택을 사용하는 앱은 프록시를 따로 설정하거나 TUN을 사용해야 합니다.

다른 앱에서 별도로 테스트하려면 v2rayN 설정에 표시된 루프백 주소와 해당 포트를 입력하고 프록시 유형을 올바르게 선택하세요. SOCKS 포트를 HTTP 프록시 필드에 입력하면 연결 직후 실패할 수 있습니다. 앱에서 ‘시스템 프록시 사용’을 지원한다면 먼저 이 옵션을 유지해 시스템 설정과 앱 설정이 서로 충돌하지 않도록 하세요.

TUN 권한 및 Windows 관련 문제

시스템 프록시를 읽지 않는 앱의 트래픽까지 처리해야 할 때 TUN 모드를 켜세요. 클라이언트 안내에 따라 필요한 권한을 부여하고 가상 네트워크 인터페이스와 라우팅이 설정되었는지 확인하세요. 켠 뒤에는 앞서 성공한 브라우저 테스트를 반복한 다음 대상 앱을 확인하세요. 기본 연결이 바로 끊기면 TUN을 끄고 이전 상태로 되돌린 뒤 로그에서 권한, 인터페이스 생성, 주소 충돌 정보를 확인하세요.

보안 소프트웨어가 코어 실행이나 네트워크 인터페이스 생성을 차단할 수 있습니다. 차단 알림이 나타나면 설치 출처와 차단된 동작을 확인한 뒤 조직 정책에 따라 처리하세요. 전체 시스템 보호 기능을 끄지 마세요. Windows 방화벽에서는 로컬 접속과 LAN의 인바운드 접속을 구분해야 합니다. 프록시를 이 기기에서만 사용한다면 문제 해결을 위해 모든 네트워크 유형의 인바운드 연결을 허용할 필요가 없습니다.

절전 모드에서 깨어나거나 Wi-Fi를 바꾸거나 유선에서 무선으로 전환한 뒤 연결이 복구되지 않으면 먼저 프록시를 중지했다가 다시 시작하고 로컬 수신 상태와 기본 라우팅을 확인하세요. 시작 프로그램도 실제로 테스트해야 합니다. 데스크톱 화면이 자동으로 나타나도 관리자 권한이 필요한 TUN까지 활성화된다는 뜻은 아닙니다. 무인 실행이 필요하다면 클라이언트가 지원하는 시작 방식을 사용하고, 시작 알림창을 연결 완료로 간주하지 마세요.

업데이트 전에 설정을 백업하고 현재 프로세스를 종료하세요. 파일이 사용 중이라는 메시지가 표시되면 설치 프로그램을 반복 실행하지 말고 트레이에서 다른 인스턴스가 실행 중인지 확인하세요. 업데이트 후에는 활성 노드와 프록시 모드를 확인한 다음 사용자 지정 라우팅을 복원하세요. 코어 시작에 실패하면 코어 시작 실패 로그 문제 해결을 참고해 처음 발생한 유효한 오류부터 확인하세요.

03 / MACOS

macOS 설치 및 설정

칩에 맞는 설치 패키지 선택

시스템의 ‘이 Mac에 관하여’에서 ‘칩’ 또는 ‘프로세서’ 항목을 확인한 다음 macOS 다운로드 섹션으로 이동하세요. Apple Silicon은 arm64, Intel 프로세서는 x64 패키지를 선택합니다. 기본값으로 호환 실행을 택하지 말고 기기 아키텍처에 맞는 설치 패키지를 사용하세요. 아키텍처가 맞지 않으면 시작 실패와 코어 하위 프로세스 실패가 서로 다른 메시지로 표시될 수 있습니다.

다운로드한 디스크 이미지를 열고 안내에 따라 v2rayN을 ‘응용 프로그램’으로 옮긴 뒤 해당 폴더에서 실행하세요. 임시로 마운트한 이미지에서 계속 실행하면 업데이트 경로, 쓰기 권한, 시작 항목이 일관되게 유지되지 않을 수 있습니다. 처음 실행하기 전에 이전 인스턴스를 종료하세요. 앱 폴더를 옮겼다면 Dock이나 시작 항목이 이전 사본을 계속 가리키지 않는지도 확인하세요.

시스템 보안 알림으로 실행이 차단되면 먼저 파일 출처와 구체적인 메시지를 확인한 뒤 ‘시스템 설정’의 ‘개인정보 보호 및 보안’을 살펴보세요. 출처를 확인한 경우에만 시스템에서 제공하는 방법으로 진행하세요. 시스템 권한을 재귀적으로 변경하거나 보안 기능 전체를 끄는 것은 일반적인 설치 방법이 아닙니다. 아키텍처나 실행 구성 요소 오류가 명확하다면 해당 의존성을 해결해야 하며 모든 오류를 보안 차단으로 취급해서는 안 됩니다.

구독 가져오기 및 네트워크 서비스 프록시

‘구독 그룹 설정’에서 구독 주소를 입력하고 저장한 다음 현재 네트워크에 맞는 방식으로 업데이트하세요. 노드가 표시되면 활성 서버를 선택하고 코어 로그를 확인하세요. 구독은 업데이트되지만 노드를 사용할 수 없다면 구독을 가져오는 흐름과 노드에 연결하는 흐름을 따로 점검하세요. 두 흐름은 도메인, 포트, 네트워크 경로가 다를 수 있으므로 한쪽이 성공했다고 다른 쪽도 정상이라고 볼 수 없습니다.

시스템 프록시를 켤 때 macOS가 표시하는 권한 요청에 유의하세요. macOS 프록시 설정은 네트워크 서비스별로 관리되며 무선 및 유선 인터페이스에 서로 다른 설정이 남아 있을 수 있습니다. 네트워크를 바꾼 뒤 일부 앱만 연결되지 않으면 현재 네트워크 서비스의 프록시 화면에서 주소와 포트가 v2rayN의 로컬 수신을 가리키는지 확인하세요. 이전에 설치한 다른 사본을 가리키고 있지는 않은지도 살펴보세요.

브라우저 테스트가 성공하면 대상 앱이 시스템 프록시를 읽는지 확인하세요. 프록시를 직접 설정해야 한다면 앱에서 지원하는 유형에 맞춰 루프백 주소와 실제 포트를 입력하세요. 설정이 맞는데도 접속 문제가 계속되면 앱을 다시 시작해 기존 연결을 해제할 수 있습니다. 시스템 프록시, 앱 프록시, 환경 변수에 서로 다른 포트를 동시에 설정하면 실행 방식에 따라 테스트 결과가 달라질 수 있습니다.

TUN 및 네트워크 전환 점검 순서

TUN을 켜기 전에 현재 설정을 저장하고 일반 프록시 연결이 정상인지 확인하세요. TUN은 가상 네트워크 인터페이스와 라우팅을 설정하므로 일반 창 조작과 다른 권한이 필요합니다. 권한은 해당 시점의 클라이언트 안내에 따라 부여하세요. 화면에서는 켜진 것으로 보여도 로그에 권한 오류가 남아 있다면 트래픽을 성공적으로 처리하지 못한 것입니다. 스위치 모양만 보고 판단하지 마세요.

TUN을 켠 뒤 일반 웹사이트에도 접속할 수 없다면 먼저 TUN을 끄고 이전에 작동했던 시스템 프록시 경로를 복원하세요. 그런 다음 라우팅 설정, DNS 처리, 다른 터널 프로그램과의 충돌을 확인하세요. 회사 네트워크나 기존 원격 업무용 터널은 특수 라우팅을 사용할 수 있으므로 관리자의 허가에 따라 설정하세요. 익숙하지 않은 시스템 네트워크 서비스를 바로 삭제하면 기존 네트워크 환경에 영향을 줄 수 있습니다.

절전 모드에서 깨어난 뒤 기존 연결이 이미 사라진 네트워크 인터페이스를 가리킬 수 있습니다. 먼저 연결을 중지한 다음 코어를 다시 시작하고 필요하면 대상 앱도 재시작해 새 요청이 발생하는지 확인하세요. 특정 브라우저에서만 문제가 생기면 브라우저의 보안 DNS, 프록시 확장 프로그램, 개별 설정을 살펴보세요. 시스템 수준의 연결이 복구되었다면 클라이언트 전체를 바로 재설치할 필요는 없습니다.

업데이트하거나 마이그레이션하기 전에 구독과 사용자 지정 규칙을 내보내고 현재 수신 포트를 기록하세요. 새 설치가 끝나면 설정을 읽을 수 있는지 확인한 뒤 자동 시작과 TUN을 하나씩 복원하세요. Windows 백업에서 디스크 경로나 시작 명령을 그대로 가져오지 마세요. 노드 설정은 플랫폼 간에 재사용할 수 있지만 앱 폴더, 보조 권한, 네트워크 인터페이스는 해당 기기에 맞게 다시 확인해야 합니다.

04 / LINUX

Linux 설치 및 설정

패키지 형식, 아키텍처, 데스크톱 세션

Linux 다운로드 섹션에서 먼저 배포판의 패키지 체계에 따라 deb 또는 rpm을 선택한 다음 프로세서에 맞춰 x64 또는 arm64를 고르세요. 패키지 형식과 아키텍처는 별개의 조건입니다. 아키텍처가 맞더라도 현재 시스템에 맞지 않는 패키지 형식을 패키지 관리자에 바로 지정할 수는 없습니다. 데스크톱 클라이언트에는 그래픽 세션이 필요하며 서버 터미널 환경은 데스크톱 실행 환경과 다릅니다.

설치 전에 터미널에서 시스템 아키텍처와 정보를 확인할 수 있습니다. 아래 명령은 환경 확인용이며 네트워크를 변경하지 않습니다. 일반적으로 출력의 x86_64는 x64, aarch64는 arm64에 해당합니다. 배포판 정보는 패키지 체계와 의존성을 확인하는 데 사용하세요. 클라이언트가 지원하는 최소 시스템 버전을 추측하는 데 사용하지 말고 다운로드 페이지 안내와 설치 오류를 기준으로 확인하세요.

uname -m
cat /etc/os-release

데스크톱 소프트웨어 설치 프로그램이나 배포판 패키지 관리자로 파일을 설치하세요. 의존성 누락이 발생하면 시스템 패키지 관리자가 알맞은 패키지를 처리하도록 하세요. 다른 배포판의 동적 라이브러리를 복사하거나 아키텍처가 다른 파일을 시스템 폴더에 넣지 마세요. 설치 후 일반 데스크톱 사용자로 실행해 창과 코어가 정상 작동하는지 먼저 확인한 다음 추가 네트워크 권한을 검토하세요.

설정 가져오기 및 데스크톱 프록시

v2rayN의 ‘구독 그룹 설정’을 열어 그룹을 만들고 주소를 입력한 뒤 업데이트하세요. 활성 노드를 선택하고 로그에서 코어가 정상적으로 시작됐는지 확인하세요. 인터페이스는 정상인데 하위 프로세스 시작에 실패한다면 의존성, 실행 권한, 작업 디렉터리를 확인하세요. 오류가 그래픽 인터페이스 시작 단계에서 발생했는지 코어 연결 단계에서 발생했는지에 따라 해결 방법이 다르므로 구체적인 오류 내용을 보존하세요.

Linux 데스크톱의 시스템 프록시 구현은 환경마다 다릅니다. 클라이언트가 프록시 설정을 적용해도 일부 데스크톱 앱만 이를 읽고 다른 프로그램은 자체 설정을 사용할 수 있습니다. 프록시를 직접 선택할 수 있는 브라우저나 도구로 먼저 테스트한 뒤 시스템 프록시가 적용됐는지 판단하세요. 터미널 명령 하나가 직접 연결된다고 노드에 문제가 있다고 단정할 수는 없습니다. 터미널 프로그램은 프록시 환경 변수도 확인해야 합니다.

명령줄 도구에 프록시를 설정하려면 먼저 지원하는 환경 변수와 프로토콜을 확인한 다음 실제 로컬 수신 포트를 사용하세요. 온라인 예제의 고정 포트를 전역 시작 파일에 그대로 입력하지 마세요. 단일 프로세스에서 먼저 테스트하고 성공한 뒤 지속 설정을 적용하세요. 그렇지 않으면 클라이언트가 실행되지 않았을 때 해당 변수를 상속하는 모든 도구가 존재하지 않는 로컬 서비스로 연결할 수 있습니다.

TUN 권한 및 수신 포트 확인

TUN은 보통 터널 장치에 접근하고 라우팅을 변경할 권한이 필요합니다. 먼저 일반 프록시 연결이 되는지 확인한 다음 클라이언트에서 지원하는 권한 부여 방식을 사용하세요. 배포판마다 권한 정책과 데스크톱 인증 구성 요소가 다를 수 있으므로 그래픽 인터페이스 전체를 항상 관리자 권한으로 실행하는 것을 기본 해결책으로 삼지 마세요. 로그에 권한 부족이 표시되면 실패한 작업을 찾아야 합니다. 원격 노드를 반복해서 바꾸는 것으로 해결되지 않습니다.

로컬 포트 충돌이 의심되면 아래 명령으로 TCP 수신 상태를 확인하고 v2rayN 설정의 주소 및 포트와 대조하세요. 표시되는 프로세스 정보는 현재 계정의 권한에 따라 달라집니다. 이 확인으로 알 수 있는 것은 ‘누가 수신 중인지’뿐입니다. 원격 서비스가 사용 가능한지 또는 앱이 해당 포트로 요청을 보냈는지는 알 수 없으므로 요청 로그도 함께 살펴보세요.

ss -ltnp

TUN을 켠 뒤 도메인 접속은 실패하지만 알고 있는 주소로 직접 접속하면 응답이 오는 경우 DNS 경로와 시스템 이름 확인 서비스의 연동을 확인하세요. 시스템의 DNS 설정은 네트워크 관리 서비스가 관리할 수 있으므로 설정 파일을 직접 덮어쓰면 재연결 후 적용되지 않을 수 있습니다. 먼저 현재 적용 중인 설정을 확인하고 해당 관리 화면에서 수정해 서로 덮어쓰는 DNS 설정이 두 벌 생기지 않도록 하세요.

데스크톱 세션이나 네트워크를 바꾸거나 절전 모드에서 복귀한 뒤 프록시 변수, 수신 포트, 라우팅을 다시 확인하세요. 자동 시작은 준비된 세션에서만 적용되며 권한 상승 절차까지 자동으로 완료된다는 보장은 없습니다. 업데이트 전 설정을 내보내고 업데이트 후 일반 프록시를 먼저 확인한 다음 TUN과 사용자 지정 규칙을 복원하세요. 문제가 발생하면 패키지 관리자와 클라이언트 로그를 모두 보존해 설치 오류와 실행 오류를 구분하세요.

05 / ANDROID

Android 설치 및 설정

v2rayNG와 v2flyNG 중 선택

Android 다운로드 섹션에서 먼저 v2rayNG를 확인하세요. 이 앱은 Xray 코어를 사용합니다. 기존 설정이 V2Fly 생태계를 명확히 사용한다면 대안으로 v2flyNG를 선택할 수 있습니다. 두 앱은 같은 앱의 테마만 다른 것이 아니며 프로토콜 지원과 필드 호환성도 같다고 볼 수 없습니다. 특히 REALITY나 Vision 매개변수를 사용한다면 선택한 코어가 해당 조합을 지원하는지 먼저 확인하세요.

다운로드 페이지에서 arm64와 범용 버전을 선택할 수 있습니다. 최신 주요 기기라면 arm64를 먼저 고려하되 최종 선택은 시스템 아키텍처에 따라야 합니다. 아키텍처를 확인하기 어렵다면 범용 버전 안내를 살펴보세요. 설치에 실패하면 먼저 시스템 메시지를 읽고 아키텍처 불일치, 저장 공간 부족, 기존 앱과의 충돌을 구분하세요. 모든 설치 오류를 네트워크 다운로드 문제로 돌리지 마세요.

처음 설치할 때 설치 파일을 실행하는 브라우저나 파일 관리 앱에 필요한 설치 권한을 부여해야 합니다. 설치가 끝나면 필요에 따라 해당 출처의 권한을 회수할 수 있습니다. 같은 이름의 앱이 이미 있다면 업데이트 전에 설정을 백업하세요. 설치 출처나 서명 호환성에 관한 메시지가 표시되더라도 기존 앱을 바로 삭제하지 마세요. 삭제하면 로컬 그룹, 사용자 지정 규칙, 내보내지 않은 설정이 사라질 수 있습니다.

구독 가져오기, 설정 업데이트, 연결 권한

클라이언트의 ‘구독 그룹 설정’에서 구독을 추가하고 메모와 주소를 입력한 다음 저장하고 업데이트하세요. 빌드에 따라 업데이트 메뉴가 기본 메뉴나 그룹 메뉴에 있을 수 있으니 기능 이름으로 찾아보세요. 공유 링크 하나를 클립보드에서 가져오려면 내용이 완전한지 먼저 확인하세요. 구독 주소, 노드 공유 링크, 전체 JSON 설정은 서로 다른 형식이므로 가져오기 메뉴를 바꿔 사용할 수 없습니다.

업데이트 후 사용할 구성을 선택하고 연결을 누르세요. Android는 VPN 연결 권한을 확인하도록 요청합니다. 이 권한은 로컬 트래픽을 전달하는 통로를 만드는 것이며 원격 노드에 연결할 수 있다는 뜻은 아닙니다. 연결 아이콘이 나타난 뒤에도 테스트 대상에 접속하고 로그를 확인해야 합니다. 시스템에서 다른 VPN 연결을 사용 중이라면 새 연결이 기존 연결을 대체할 수 있으므로 두 연결의 관계를 먼저 확인하세요.

일반 연결에서는 시스템이 제공하는 VPN 인터페이스로 트래픽을 전달하므로 데스크톱의 시스템 프록시나 TUN 스위치 조작을 그대로 따라 할 필요가 없습니다. 앱에 여러 실행 모드가 있다면 해당 빌드의 안내에 따라 선택하세요. 데스크톱 메뉴를 재현하려고 존재하지 않는 옵션을 찾지 말고 시스템에 VPN 표시가 있다는 이유만으로 노드 인증과 라우팅 규칙 확인을 생략하지 마세요.

백그라운드 실행, 앱별 라우팅, 네트워크 전환

화면이 꺼진 뒤 연결이 끊기면 배터리 최적화, 백그라운드 활동, 자동 시작 제한을 확인하세요. 시스템의 앱 관리 화면에서 클라이언트가 백그라운드에서 실행될 수 있도록 필요한 조건을 설정한 뒤 화면을 잠그고 연결이 유지되는지 테스트하세요. 설정을 바꾼 뒤에는 배터리 소모와 연결 필요성을 함께 살펴보세요. 모든 백그라운드 권한을 한꺼번에 허용할 필요는 없습니다. 알림이 계속 표시되는 것은 연결 유지와 관련될 수 있지만 알림 자체가 원격 연결의 증거는 아닙니다.

앱별 라우팅에서는 ‘선택한 앱만 프록시’와 ‘선택한 앱 우회’의 차이를 먼저 확인하세요. 두 옵션은 동작 방향이 서로 반대입니다. 목록을 바꾼 뒤 연결을 중지했다가 다시 만들고 테스트할 앱도 재시작해 기존 연결의 영향을 줄이세요. 브라우저는 되는데 특정 앱만 연결되지 않으면 클라이언트를 재설치하기 전에 앱별 라우팅 목록, 앱 자체 프록시, 네트워크 권한을 확인하세요.

네트워크를 바꾸면 기존 연결을 다시 만들어야 할 수 있습니다. 먼저 연결을 끊었다가 다시 연결하고 로그에 새 요청이 발생하는지 확인하세요. 그래도 실패하면 현재 네트워크에 실제로 연결되어 있는지 확인하세요. 대용량 요청이나 일부 앱에서만 문제가 생겨도 MTU를 무작정 바꾸지 마세요. 먼저 노드, DNS, 라우팅 차이를 배제한 뒤 재현되는 현상을 바탕으로 패킷 크기 문제인지 판단하세요.

v2rayNG에서 v2flyNG로 옮길 때는 앱의 비공개 데이터를 덮어쓰지 말고 구독을 다시 가져오는 방법을 우선 고려하세요. 기존 앱 설정은 보존하고 새 클라이언트가 대상 프로토콜을 해석하고 실행하는지 확인한 뒤 정리하세요. 코어 기능 차이는 Xray와 V2Fly 코어의 차이에서 확인할 수 있습니다. 이름이 비슷한지보다 실제 필드 지원 여부를 기준으로 선택하세요.

06 / SUBSCRIPTIONS

구독 관리 및 설정 마이그레이션

주소, 공유 링크, 설정 파일 구분

구독 주소는 여러 설정을 가져오는 데 쓰이고 노드 공유 링크는 보통 단일 연결을 나타냅니다. 전체 JSON에는 인바운드, 아웃바운드, 라우팅, DNS 설정이 포함될 수 있습니다. 가져오기 전에 콘텐츠 형식을 확인하고 알맞은 메뉴를 선택하세요. 웹 주소를 노드로 가져오거나 전체 설정을 구독 필드에 붙여 넣으면 파싱에 실패할 수 있습니다. 텍스트가 특정 프로토콜 이름으로 시작한다고 해서 뒤에 이어지는 구조가 완전한지 확인하는 일을 생략하지 마세요.

출처별로 구독 그룹을 만들고 메모에 용도와 관리 범위를 적으세요. 그룹은 원격 계정이 아니며 메모를 수정해도 서비스 권한은 바뀌지 않습니다. 주소의 쿼리 매개변수는 인증에 사용될 수 있으므로 복사할 때 온전히 보존해야 합니다. 메신저가 주소를 잘라내거나 공백을 추가하지 않았는지 확인하세요. 주소를 직접 수정하기 전에 원래 값을 저장하고 불필요해 보이는 매개변수를 임의로 삭제하지 마세요.

업데이트 경로를 선택하고 결과 확인

‘프록시를 사용하지 않고 업데이트’는 현재 네트워크에서 구독 서버에 직접 접속할 수 있을 때 적합합니다. 프록시를 통해 업데이트하려면 이미 사용 가능한 연결이 있어야 합니다. 활성 노드가 없는 첫 사용 단계에서 후자를 선택하면 서로 의존하는 상황이 생길 수 있습니다. 업데이트에 실패하면 요청 시간 초과, 인증 실패, 콘텐츠 파싱 실패 중 어느 단계인지 확인하세요. 실패 메시지 하나만 보고 모든 노드를 바꿔서는 안 됩니다.

업데이트가 성공한 뒤 노드 수, 그룹, 활성 노드가 어떻게 바뀌었는지 확인하세요. 구독 서버가 항목을 삭제하거나 이름을 변경할 수 있으므로 기존에 선택한 노드가 계속 유효하다고 볼 수 없습니다. 중요한 연결 테스트 전에 현재 목록에서 노드를 다시 선택하세요. 구독 항목은 서버가 관리하므로 해당 노드의 필드를 직접 바꾸면 다음 업데이트 때 변경 사항이 덮어써질 수 있습니다. 시험하려면 먼저 별도 구성으로 복사하세요.

가져온 콘텐츠를 인식할 수 없다면 주소가 실제로 로그인 페이지나 오류 페이지, 만료 안내를 반환하는지 확인하세요. 브라우저에서 웹페이지가 열린다고 클라이언트가 파싱 가능한 구독을 받은 것은 아닙니다. 반대로 구독 다운로드가 성공해도 원격 노드 포트에 연결할 수 있다는 뜻은 아닙니다. 구독 가져오기와 프록시 연결을 따로 테스트하면 잘못된 단계의 설정을 반복해서 바꾸는 일을 줄일 수 있습니다.

수동 설정 매개변수 확인 순서

노드를 수동으로 추가할 때는 먼저 프로토콜, 서버 주소, 포트, 인증 필드를 확인한 다음 전송 방식, 보안 설정, 추가 매개변수를 살펴보세요. 전송 경로, 호스트 이름, 서버 이름은 각각 용도가 다르므로 도메인처럼 보인다고 서로 바꿔 쓸 수 없습니다. REALITY가 포함된 설정이라면 공개 키, 짧은 ID 등의 관련 매개변수도 확인하세요. 해당 값은 서버 설정에서 제공되어야 하며 직접 만들어 기존 서버에 연결할 수는 없습니다.

설정 항목확인할 내용자주 하는 실수
원격 접속 정보주소, 포트, 프로토콜웹사이트 포트를 노드 포트로 착각
인증 정보사용자 ID 또는 비밀번호복사 중 문자가 빠지거나 공백이 포함됨
전송전송 방식, 경로, 호스트 이름서로 다른 전송 필드를 혼용
보안 계층서버 이름 및 프로토콜 관련 매개변수필드 불일치를 검증 비활성화로 숨김

일반적인 문제 해결 중에는 클라이언트가 자동 생성한 실행 설정을 직접 편집하지 마세요. 노드를 바꾸거나 코어를 재시작할 때 클라이언트가 파일을 다시 생성해 수동 변경 사항이 사라질 수 있습니다. 우선 그래픽 설정에서 수정하세요. 전체 설정을 직접 관리해야 한다면 파일과 인터페이스 중 어떤 쪽이 각 설정을 제어하는지 구분하고, 복구할 수 있도록 정상 작동하는 버전을 백업하세요.

백업 범위 및 플랫폼 간 복원

마이그레이션 전에 구독 주소, 독립 노드, 사용자 지정 라우팅, DNS 설정, 필요한 로컬 수신 정보를 함께 보관하세요. 구독은 다시 다운로드할 수 있지만 독립 설정과 로컬 규칙은 복구하지 못할 수 있습니다. 내보낸 파일에는 인증 정보가 포함될 수 있으므로 접근을 제한하세요. 문제 해결용 샘플을 공유할 때는 구조와 오류 위치만 남기고 실제 서비스에 연결할 수 있는 정보는 삭제하세요.

복원할 때는 먼저 구독을 가져와 일반 연결을 만든 다음 라우팅, 앱별 설정, TUN을 복구하세요. 플랫폼 간에 디렉터리, 네트워크 인터페이스 이름, 시작 항목을 그대로 옮기지 마세요. 같은 v2rayN이라도 운영체제마다 권한 모델이 다릅니다. 설정을 한 번에 모두 복원한 뒤 실패하면 구독, 이전 경로, 인터페이스 권한 중 무엇이 원인인지 판단하기 어렵습니다. 단계별로 복원하는 편이 문제를 찾기 쉽습니다.

수동 업데이트가 안정적으로 작동한 뒤 구독 자동 업데이트를 설정하세요. 업데이트 간격은 실제 변경 필요성에 맞추고 잦은 요청으로 문제 확인을 대신하지 마세요. 업데이트 후 간단히 검증해 활성 노드가 남아 있는지, 코어가 시작되는지, 자주 쓰는 앱에 접속할 수 있는지 확인하세요. 서비스 제공자가 이전 주소를 폐기했다면 같은 만료 링크를 반복해서 가져오지 말고 구독 출처의 주소를 바꾸세요.

07 / ROUTING & DNS

라우팅, DNS 및 모드 선택

트래픽 전달과 라우팅 판단은 별개의 설정

시스템 프록시와 TUN은 ‘어떤 트래픽이 클라이언트로 들어오는지’를 정하고 라우팅은 ‘들어온 트래픽이 어떤 아웃바운드를 사용할지’를 정합니다. TUN을 켰다고 모든 트래픽이 원격으로 전달되는 것은 아닙니다. 전체 라우팅을 선택해도 시스템 프록시를 전혀 읽지 않는 앱이 요청을 넘기도록 강제할 수는 없습니다. 문제를 확인할 때는 먼저 앱 요청이 로컬 프록시로 들어오는지 확인하고, 다음으로 규칙이 예상한 출구로 보내는지 살펴보세요.

처음에는 클라이언트의 ‘중국 본토 우회’ 같은 기본 라우팅을 사용해 평소 요청 경로를 확인한 뒤 규칙을 추가하세요. 기본 규칙은 도메인 및 IP 분류 데이터를 사용하며 웹사이트의 표시 언어로 판단하지 않습니다. 일부 서비스는 여러 도메인에 요청하거나 여러 사이트가 같은 IP를 사용할 수 있습니다. 페이지는 열리는데 리소스가 실패한다면 기본 도메인만 보지 말고 실패한 요청을 확인하세요.

규칙 순서, 일치 대상, 아웃바운드 태그

라우팅 규칙은 보통 순서대로 적용되므로 구체적인 규칙을 먼저 일치할 수 있는 포괄적인 규칙보다 앞에 두세요. 도메인 규칙은 클라이언트가 확인한 대상 도메인을 기준으로 하고 IP 규칙은 대상 IP를 기준으로 하며 두 정보가 항상 모두 제공되는 것은 아닙니다. 앱이 IP 주소로 직접 요청하거나 자체 DNS를 사용하거나 다른 스니핑 설정을 거치면 일치 조건이 바뀔 수 있습니다. 규칙 문구만 보고 반드시 적용된다고 단정하지 마세요.

아래는 Xray 형식의 라우팅 예시이며 실제 연결에 사용할 수 있는 완전한 설정은 아닙니다. 사용하려면 이름이 direct인 직결 아웃바운드가 이미 있어야 하며 코어가 읽을 수 있는 분류 데이터도 설치되어야 합니다. 이 예시는 사설 주소와 지정된 분류만 직결로 보냅니다. 일치하지 않는 트래픽은 전체 설정의 아웃바운드 순서나 후속 규칙에 따라 결정되며 이 조각만으로 최종 프록시 출구가 설정되지는 않습니다.

{
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": ["geosite:cn"],
        "outboundTag": "direct"
      }
    ]
  }
}

그래픽 클라이언트에서 라우팅 편집 기능을 제공한다면 자동 생성 파일과 충돌하지 않도록 인터페이스에서 설정하세요. 아웃바운드 태그는 전체 설정에 실제로 존재해야 하며 철자도 일치해야 합니다. 태그는 임의로 입력할 수 있는 표시용 메모가 아닙니다. 코어마다 필드와 규칙 형식도 다르므로 한 코어의 JSON 조각을 다른 코어 설정에 그대로 붙여 넣지 마세요.

실제 요청 경로에 맞춰 DNS 설정

DNS는 도메인을 IP 주소로 변환하지만 조회 요청은 시스템, 브라우저, 코어 중 어디에서든 발생할 수 있습니다. 브라우저의 보안 DNS를 켜면 브라우저가 시스템의 DNS 조회 경로를 따르지 않을 수 있습니다. 도메인 접속에 문제가 있다면 먼저 누가 DNS를 조회하는지 확인한 다음 해당 요청이 선택한 서버에 도달하는지 살펴보세요. DNS 주소를 여러 개 추가하는 것만으로 잘못된 요청 경로가 자동으로 수정되지는 않습니다.

프록시 서버 자체가 도메인 이름을 사용하는 경우 원격 연결을 시작하기 전에 해당 도메인도 먼저 조회해야 합니다. DNS 조회가 아직 연결되지 않은 프록시에 의존하면 시작 과정에서 순환 의존성이 발생할 수 있습니다. 클라이언트의 적절한 기본 설정으로 기본 연결을 만든 뒤 원격 DNS와 직결 DNS를 조정하세요. 설정을 바꿀 때마다 연결을 다시 만들고 시스템과 앱이 기존 결과를 잠시 캐시할 수 있다는 점을 고려하세요.

LAN과 TUN의 적용 범위

로컬 라우터, 네트워크 프린터, LAN 관리 페이지에 접속하려면 보통 올바른 직결 경로를 유지해야 합니다. TUN을 켠 뒤 로컬 서비스가 작동하지 않으면 모든 주소를 원격으로 보내지 말고 사설 주소 라우팅과 기존 시스템 네트워크 대역을 확인하세요. 원격 업무용 네트워크는 별도 대역을 사용할 수 있으므로 실제 네트워크 설정에 맞춰 규칙을 정하고 공개 예시를 완전한 해결책으로 취급하지 마세요.

‘LAN에서 연결 허용’은 로컬 프록시 포트를 공개하는 설정이지 TUN과 같은 기능이 아닙니다. 이 옵션을 켜면 다른 기기에 클라이언트가 실행 중인 컴퓨터의 LAN 주소와 수신 포트를 입력해야 하며 방화벽과 네트워크 격리의 영향을 받습니다. 신뢰할 수 있는 네트워크에서 필요한 경우에만 열고 접근 범위를 제한하세요. 자세한 내용은 LAN 프록시 공유 설정을 참고하세요.

안정적으로 작동하는 규칙을 정한 뒤 기본 설정 이름, 사용자 지정 항목, DNS 설정을 기록하세요. 코어를 바꿀 때는 이전 필드로 시작에 실패하지 않도록 기본 설정을 먼저 복원한 뒤 사용자 지정 규칙을 옮기세요. 설정 흐름을 이해하려면 inbounds, outbounds, routing 구조 해설을 참고해 화면의 필드와 실행 설정을 연결해 보세요.

08 / TROUBLESHOOTING

설정 관련 자주 묻는 질문

첫 번째 실패 단계부터 확인

문제를 해결할 때는 같은 네트워크, 활성 노드, 대상 앱, 테스트 주소를 유지하세요. 설치와 시작, 구독 가져오기, 코어 실행, 로컬 트래픽 전달, 원격 연결 순서로 확인합니다. 앞 단계가 통과되지 않았다면 뒤 단계의 설정으로 보완하지 마세요. 예를 들어 코어가 수신 포트도 열지 않았다면 브라우저 DNS를 바꿔도 해결되기 어렵고, 구독 주소가 만료됐다면 가상 네트워크 인터페이스를 재설치할 필요가 없습니다.

클라이언트 로그를 열어 이번 연결이 시작된 뒤 처음 발생한 유효한 오류를 찾고 이어지는 연쇄 오류를 살펴보세요. 포트 충돌, 권한 부족, 알 수 없는 필드, 핸드셰이크 실패는 서로 다른 단계를 가리킵니다. 오류가 발생한 시각과 직전에 한 작업을 기록하고 맥락을 파악할 수 있는 몇 줄을 캡처하세요. 전체 설정과 구독 정보를 공개하지 말고 화면의 ‘연결 실패’ 메시지 한 줄만 남기지도 마세요.

증상에 맞는 해결 방법 찾기

구독 업데이트는 성공했는데 왜 연결되지 않나요?

업데이트 성공은 구독 내용을 가져와 파싱했다는 뜻일 뿐입니다. 먼저 활성 노드를 선택했는지 확인하고 코어가 시작되는지 살펴본 뒤 원격 연결 로그를 확인하세요. 구독 서비스와 노드 서비스는 서로 다른 주소를 사용할 수 있습니다. 구독 서비스에 접속된다고 노드에도 접속할 수 있는 것은 아닙니다. 모든 노드가 실패하면 로컬 트래픽 전달과 공통 설정을 먼저 확인하고, 특정 노드만 실패하면 해당 노드의 프로토콜 매개변수와 서버 상태를 비교하세요.

코어가 시작 직후 종료되면 무엇부터 바꿔야 하나요?

원격 주소부터 바꾸지 마세요. 포트 사용 중 오류가 나타나면 중복 실행 중인 프로세스를 종료하거나 수신 포트를 변경하고 앱의 프록시 설정도 함께 수정하세요. 알 수 없는 필드 오류라면 코어와 설정 형식이 맞는지 확인하세요. 분류 데이터가 없다는 오류라면 해당 데이터 파일을 읽을 수 있는지 살펴보세요. 권한 오류가 발생하면 파일 읽기, 프로세스 실행, 인터페이스 생성 중 어떤 작업이 실패했는지 확인하고 해당 문제를 해결하세요. 연결을 반복해서 누르는 것으로는 해결되지 않습니다.

브라우저는 되는데 다른 앱에서 프록시를 사용할 수 없나요?

먼저 해당 앱이 시스템 프록시를 읽는지, 자체 프록시 주소가 설정되어 있는지 확인하세요. 별도로 설정해야 한다면 실제 수신 포트와 올바른 프로토콜을 입력하세요. 더 넓은 범위의 트래픽 전달이 필요할 때 TUN을 고려하세요. Android에서는 앱별 라우팅 목록도 확인해야 합니다. TUN을 켠 뒤에도 특정 앱만 실패한다면 요청 경로와 라우팅을 추가로 확인하고 모든 앱의 차이를 시스템 프록시가 꺼져 있기 때문이라고 단정하지 마세요.

TUN을 켠 뒤 모든 앱의 네트워크가 끊기면 어떻게 복구하나요?

먼저 TUN을 끄고 이전에 작동했던 시스템 프록시나 일반 연결 경로를 복구한 다음 권한, 가상 인터페이스, 기본 라우팅, DNS를 확인하세요. 다른 터널 연결도 실행 중이라면 하나를 중지하고 각각 따로 확인하세요. 연결이 끊긴 상태에서 여러 고급 필드를 연이어 수정하지 마세요. 기본 연결을 복구한 뒤 옵션을 하나씩 다시 켜고 로그를 확인해야 인터페이스 생성 실패, 라우팅 충돌, DNS 경로 문제를 구분할 수 있습니다.

인증서 오류나 TLS 핸드셰이크 실패가 발생하면 어떻게 하나요?

먼저 시스템 시간을 동기화한 뒤 서버 이름, 인증서 도메인, 전송 보안 매개변수를 확인하세요. 연결 주소와 검증에 사용하는 이름은 서로 다른 필드일 수 있으므로 서버 설정에 따라 입력해야 합니다. ‘안전하지 않은 연결 허용’을 일반적인 해결책으로 사용하지 마세요. 검증 조건만 바꿀 뿐 잘못된 대상이나 만료된 인증서는 해결하지 못합니다. 자세한 확인 순서는 TLS 및 인증서 오류 문제 해결을 참고하세요.

클라이언트를 종료한 뒤 인터넷이 안 되면 시스템을 재설치해야 하나요?

먼저 시스템 프록시가 종료된 로컬 프록시 포트를 계속 가리키는지 확인하세요. 올바른 프록시 설정으로 복원한 뒤 대상 앱을 재시작하고 남은 터널, 라우팅, DNS 설정을 확인하세요. 업데이트 후 문제가 발생했다면 이전 프로세스가 완전히 종료되고 새 프로세스가 실행됐는지도 확인해야 합니다. 처음부터 모든 네트워크 설정을 삭제하지 마세요. 되돌릴 수 있는 방법으로 일반 네트워크를 먼저 복구한 뒤 클라이언트 설정을 단계적으로 적용하면 기존 환경을 보존하기 쉽습니다.

지연 시간 테스트와 실제 요청은 따로 확인

테스트 결과는 해당 시점의 대상과 측정 방법에만 해당하며 모든 웹사이트나 프로토콜이 정상이라는 뜻은 아닙니다. 대상이 응답하지 않거나 요청 경로가 다르거나 DNS에 문제가 있어 테스트가 실패할 수도 있습니다. 안정적으로 재현할 수 있는 실제 요청을 우선 확인하고 연결 로그와 함께 판단하세요. 간헐적으로 문제가 생기면 같은 네트워크에서 시간대를 달리해 다시 테스트하고 한 번의 결과로 모든 설정을 판단하지 마세요.

문제를 정리할 때 운영체제와 아키텍처, 클라이언트 이름, 실행 모드, 실패 범위, 이미 시도한 개별 변경 사항을 적으세요. 민감한 정보를 지운 오류 로그 몇 줄이 노드 목록 전체보다 유용합니다. 기본 연결을 복구한 뒤 빠른 시작 가이드에서 최종 확인을 완료하세요. 패키지를 다시 선택해야 한다면 다운로드 페이지를 이용하세요. 마지막으로 정상 작동한 설정을 보존한 다음 고급 기능을 조정하세요.

PROJECT V / V2FLY / XRAY

클라이언트 인터페이스와 코어 설정을 구분해 관리

Project V는 V2Ray 생태계를 이해하기 위한 출발점이며 V2Fly와 Xray는 관련 코어 구현을 각각 관리합니다. 그래픽 클라이언트는 구독, 노드, 라우팅 설정을 실행 설정으로 변환합니다. 코어를 바꾸기 전에는 프로토콜 필드와 설정 형식의 호환 범위를 확인해야 합니다.

프로젝트 및 사이트 안내 보기