설치 · 구독 · 트래픽 처리 · 라우팅

V2Ray 전체 플랫폼 설치·설정 가이드

운영체제별로 설치 절차를 확인하고 연결 단계별로 문제를 해결하세요. 데스크톱은 v2rayN을 중심으로, Android는 v2rayNG와 v2flyNG의 설정 차이를 설명합니다.

이 페이지는 운영체제별 참고 가이드입니다. 설치가 막히거나 기기를 옮기거나 라우팅을 조정하거나 문제 원인을 찾을 때 필요한 장을 확인하세요. 처음 사용하는 경우 먼저 입문 가이드의 빠른 시작 과정을 마친 뒤 플랫폼 권한과 설정값의 의미를 살펴보세요. 클라이언트 메뉴 이름은 인터페이스 변경에 따라 달라질 수 있으므로, 아래에서는 특정 아이콘 위치에 의존하지 않고 설정 항목과 작업 목적을 기준으로 안내합니다.

공통 준비 사항: 설정과 트래픽 진입 경로 구분하기

클라이언트, 코어, 구독은 각각 어떤 역할을 할까요?

그래픽 클라이언트는 서버 표시와 구독 관리, 설정 저장을 담당하고 코어를 실행해 연결을 처리합니다. 코어는 실제 프로토콜과 전송, 라우팅을 처리합니다. 구독은 서버 설정을 가져오는 방법 중 하나로, 설정 내용을 반환하는 주소입니다. 세 요소는 서로 연관되어 있지만 서로를 대신할 수는 없습니다. 클라이언트를 다운로드해도 사용할 수 있는 서버가 자동으로 생기지 않으며, 구독을 가져와도 모든 앱이 자동으로 프록시에 연결되는 것은 아닙니다. 시작하기 전에 유효한 설정을 준비하고 어떤 앱에 적용할지 정하세요.

데스크톱에서는 이 가이드에 따라 v2rayN을 사용하는 것이 좋습니다. Android에서는 일반적으로 Xray 코어를 사용하는 v2rayNG를 이용하고, V2Fly에 해당하는 설정이 필요할 때 v2flyNG를 고려하세요. 프로토콜 이름이 같다고 모든 확장 필드를 공통으로 사용할 수 있는 것은 아닙니다. 특히 REALITY, 특정 흐름 제어 및 전송 옵션은 클라이언트에 포함된 코어의 지원 여부를 확인해야 합니다. 서버에서 제공한 주소, 포트, 사용자 ID와 보안 설정은 한 세트로 사용해야 하며, 서로 다른 서버 설정의 필드를 섞어서는 안 됩니다.

운영체제, 프로세서와 설치 파일 형식 확인하기

먼저 시스템 정보에서 프로세서 아키텍처를 확인한 뒤 클라이언트 다운로드 페이지에서 설치 파일을 선택하세요. x64는 일반적인 Intel·AMD 데스크톱 프로세서에, arm64는 ARM 아키텍처 기기에 해당하는 경우가 많지만 브랜드나 외관만으로 판단하지 마세요. macOS에서는 Apple Silicon과 Intel도 구분해야 합니다. Linux는 아키텍처뿐 아니라 배포판이 deb와 rpm 중 어떤 형식을 사용하는지도 확인하세요. Android에서 아키텍처를 알기 어렵다면 범용 패키지를 선택할 수 있습니다. 파일 크기가 더 커질 수 있지만 연결 성능이 향상되는 것은 아닙니다.

설치 전에 기존 클라이언트의 데이터 위치, 구독 그룹 이름, 사용자 지정 규칙을 기록해 두세요. 업그레이드와 이전은 다릅니다. 업그레이드는 보통 기존 데이터를 그대로 사용하지만 이전 과정에서는 새 설정 디렉터리가 만들어질 수 있습니다. 백업이 필요하면 클라이언트의 내보내기 기능을 이용하고, 내보낸 파일은 직접 관리할 수 있는 위치에 보관하세요. 구독 URL, 사용자 ID, 설정 QR 코드는 접근 정보를 포함할 수 있습니다. 일반 스크린샷처럼 공개 게시판에 올리거나 온라인 포맷 변환 도구에 그대로 붙여 넣지 마세요.

준비 항목확인할 내용정보가 없을 때 나타나는 문제
시스템 정보플랫폼, 아키텍처, 패키지 형식설치 프로그램이 실행되지 않거나 형식이 맞지 않는다는 메시지가 표시됨
설정 출처유효한 구독 URL 또는 완전한 단일 서버 설정클라이언트는 열리지만 선택할 서버가 없음
연결 매개변수프로토콜, 포트, 전송 및 보안 설정서버는 표시되지만 연결할 수 없음
트래픽 진입 경로시스템 프록시, 앱 프록시 또는 TUN코어는 실행되지만 대상 앱은 직접 연결함

최소한의 검증 가능한 설정 만들기

첫 테스트에서는 클라이언트 하나만 실행하고, 사용 가능한 서버 하나를 선택하세요. 사용자 지정 DNS, 복잡한 라우팅 규칙, 여러 트래픽 처리 도구는 일단 추가하지 마세요. 기기에서 다른 프록시나 가상 네트워크 소프트웨어를 함께 실행하면 포트, 라우팅, DNS 설정이 서로 덮어쓸 수 있습니다. 창만 닫지 말고 해당 프로그램을 완전히 종료하세요. 시스템 날짜와 시간대가 맞고 자동 시간 동기화가 작동하는지도 확인하세요. 시간이 크게 어긋나면 보안 연결 검증에 영향을 주어 서버 문제처럼 보일 수 있습니다.

연결 과정을 네 단계로 나눠 확인할 수 있습니다. 설정을 정상적으로 가져왔는지, 코어가 제대로 시작됐는지, 앱이 요청을 클라이언트로 전달하는지, 클라이언트가 규칙에 따라 연결을 완료하는지 확인하세요. 한 번에 한 단계만 바꾸고 전후 상태를 기록합니다. 예를 들어 구독 목록에 서버가 표시됐다면 그룹을 반복해서 삭제하지 마세요. 브라우저는 연결되지만 다른 앱은 안 된다면 프로토콜을 바꾸기보다 먼저 앱의 트래픽 진입 경로를 확인하세요. 이렇게 단계적으로 살펴보면 문제 범위를 좁히고 정상 작동 중인 부분도 유지할 수 있습니다.

Windows: v2rayN 설치와 시스템 프록시 설정

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

Windows 다운로드 페이지에서 v2rayN을 선택하세요. 데스크톱 버전은 크로스 플랫폼 인터페이스를 사용하고, 클래식 WPF 버전은 Windows 스타일의 조작 방식을 유지합니다. 인터페이스 배치와 데이터 저장 방식이 다를 수 있으므로 한 버전의 스크린샷에서 본 위치를 다른 버전의 고정 메뉴로 생각하지 마세요. 처음 설치한다면 한 버전을 정해 설정을 마치면 됩니다. 기존 사용 방식이 익숙하다면 해당 인터페이스를 계속 사용해도 좋습니다. 두 버전 모두 적합한 실행 환경과 코어 파일이 필요하며, 자세한 내용은 설치 안내를 따르세요.

설치 프로그램을 실행하고 안내에 따라 설치 위치를 선택한 뒤 시작 메뉴나 앱 목록에서 실행하세요. 실행 구성 요소가 없다는 메시지가 나타나면 구성 요소 이름과 아키텍처를 확인하고, 시스템에서 신뢰하는 설치 경로를 이용해 보완하세요. 출처가 불분명한 팝업에서 같은 이름의 파일을 내려받지 마세요. 실행 후 기본 창이 보이지 않으면 작업 표시줄의 알림 영역을 먼저 확인하세요. 클라이언트가 백그라운드에서 실행 중일 수 있습니다. 중복 실행은 이후 포트 충돌 문제를 파악하기 어렵게 하므로 기존 인스턴스가 있는지 먼저 확인하세요.

일반적인 시스템 프록시 사용에는 항상 관리자 권한으로 실행할 필요가 없습니다. 일부 네트워크 트래픽 처리, 가상 네트워크 어댑터 또는 시스템 수준 작업에서만 추가 권한을 요청할 수 있습니다. 보안 프로그램 경고가 표시되면 대상이 설치 프로그램인지 그래픽 클라이언트인지 코어 프로세스인지 확인한 다음 파일 위치를 검토하세요. 프로그램 실행을 위해 시스템 보호 기능을 계속 꺼 두지 마세요. 실행 직후 프로그램이 종료되면 오류 메시지를 저장하고 설치 완료 여부, 데이터 디렉터리 쓰기 권한, 보안 프로그램의 필수 파일 격리 여부를 확인하세요.

구독 추가, 업데이트 및 서버 선택

구독 그룹 관리에서 새 그룹을 만들고 구분하기 쉬운 별칭을 입력한 다음 전체 구독 URL을 주소 입력란에 붙여 넣으세요. 별칭은 로컬에서만 사용하는 이름이며 연결에는 영향을 주지 않습니다. URL의 쿼리 매개변수도 주소의 일부입니다. 복사할 때 물음표 뒤 내용을 빠뜨리지 말고, 메신저가 자동으로 붙인 따옴표나 줄바꿈도 포함하지 마세요. 그룹을 저장한 뒤 구독을 업데이트하고 실제 항목이 목록에 나타날 때까지 기다리세요. 사용할 서버를 선택해 활성 설정으로 지정합니다.

첫 업데이트는 현재 네트워크에서 사용할 수 있는 방법으로 진행하세요. 일부 인터페이스는 프록시를 통한 업데이트와 직접 업데이트를 제공합니다. 아직 사용 가능한 프록시 연결이 없다면 프록시를 통한 업데이트는 순환 의존이 생길 수 있습니다. 브라우저에 주소의 텍스트가 표시된다고 클라이언트가 이를 반드시 해석할 수 있는 것은 아닙니다. 로그인 페이지나 오류 페이지 또는 다른 형식의 설정일 수 있습니다. 업데이트 후에도 목록이 비어 있다면 서버 편집 창에서 알 수 없는 값을 직접 입력하기보다 구독 관련 오류부터 확인하세요.

그룹에 수동으로 수정한 항목이 있으면 업데이트 과정에서 구독 항목이 다시 만들어질 수 있으므로 모든 로컬 변경 사항이 유지된다고 가정하지 마세요. 장기간 보관할 별도 서버가 있다면 클라이언트가 지원하는 방식으로 독립 항목에 복사하고, 구독 업데이트로 덮어쓰이지 않는지 확인하세요. 구독을 가져온 뒤에는 현재 선택된 서버가 원하는 그룹에 실제로 속하는지 확인하세요. 그룹 목록에 여러 항목이 있어도 활성 서버가 바뀐 것은 아닙니다. 실제 연결에는 이전에 저장한 설정이 계속 사용될 수 있습니다.

시스템 프록시를 켜고 TUN 사용 여부 결정하기

시스템 프록시 메뉴에서 “시스템 프록시 자동 설정”을 선택해 Windows 프록시 설정을 따르는 앱의 요청을 로컬 클라이언트로 보내세요. 그런 다음 브라우저 페이지를 새로 열어 테스트합니다. 라우팅 모드는 클라이언트가 제공하는 “중국 본토 우회” 같은 일반 프리셋을 먼저 선택하고, 출처를 알 수 없는 복잡한 규칙은 함께 가져오지 마세요. 특정 앱에 변화가 없다면 시스템 프록시를 사용하는 앱인지 확인하세요. 게임, 명령줄 프로그램 및 일부 내장 네트워크 구성 요소는 자체 연결 방식을 사용할 수 있습니다.

시스템 프록시: 시스템 프록시 자동 설정
라우팅: 중국 본토 우회
활성 서버: 가져온 설정에서 선택
TUN: 앱 사용 요구에 따라 별도로 활성화
쉽게 설명하면

시스템 프록시는 시스템 설정을 따르는 앱을 연결하고, 라우팅은 요청이 어디로 갈지 결정합니다. 둘 다 서버 자체를 켜고 끄는 설정은 아닙니다. 먼저 시스템 프록시로 브라우저 접속을 확인한 다음 TUN을 시도하면 권한, 가상 네트워크 어댑터, 연결 매개변수 문제를 한꺼번에 다루지 않아도 됩니다.

시스템 프록시를 따르지 않는 앱의 트래픽을 처리해야 할 때 TUN을 켜고 안내에 따라 권한을 허용하세요. 켠 뒤 시스템 전체에서 도메인 이름을 확인할 수 없다면 TUN을 끄고 일반 시스템 프록시가 작동하는지 확인한 다음 가상 네트워크 어댑터, DNS, 다른 네트워크 소프트웨어와의 충돌을 살펴보세요. 클라이언트를 종료한 뒤에도 브라우저가 인터넷에 연결되지 않으면 Windows 프록시 설정에 로컬 주소가 남아 있는지 확인하세요. 클라이언트의 “시스템 프록시 지우기”는 클라이언트가 설정한 진입 경로를 되돌리며 구독을 삭제하지 않습니다. “시스템 프록시 변경 안 함”은 이전 설정을 정리하지 않습니다.

macOS: 칩 종류, 권한 및 네트워크 트래픽 처리

칩에 맞는 버전 설치 및 첫 실행 경고 처리

먼저 “이 Mac에 관하여”에서 칩 정보를 확인한 뒤 macOS 다운로드 페이지에서 v2rayN을 선택하세요. Apple Silicon은 arm64, Intel은 x64에 해당합니다. 디스크 이미지를 열고 앱을 “응용 프로그램” 폴더로 복사한 다음 해당 폴더에서 실행하세요. 마운트된 디스크 이미지에서 계속 실행하지 마세요. 업데이트, 권한 기록, 실행 경로가 서로 맞지 않을 수 있습니다. 설치를 마친 뒤 디스크 이미지를 추출하고 응용 프로그램 폴더의 복사본을 사용하세요.

첫 실행이 시스템 보안 기능에 의해 차단되면 다운로드 출처와 시스템에 표시된 앱 이름을 먼저 확인하세요. 확인 후 현재 시스템 절차에 따라 “시스템 설정”의 “개인정보 보호 및 보안”에서 이번 실행과 관련된 안내를 찾아 열기를 허용하세요. 문구와 버튼 위치는 시스템 버전에 따라 달라질 수 있습니다. 앱 하나의 경고를 우회하려고 시스템 보안 기능 전체를 끄지 마세요. 자세한 인터페이스는 macOS 첫 실행 및 권한 안내를 참고하세요.

앱을 실행할 수 있는 것과 코어가 작동하는 것은 별개의 문제입니다. 그래픽 창이 열린 뒤에도 코어 시작 결과와 데이터 디렉터리의 쓰기 권한을 확인하세요. 다운로드 폴더에서 “응용 프로그램” 폴더로 옮긴 뒤 시스템이 네트워크 관련 권한을 다시 요청한다면 안내에 나온 대상을 확인하고 처리하세요. 이전 경로에서 승인한 권한이 새 경로에도 반드시 적용되는 것은 아닙니다. 권한 요청이 반복되거나 실행에 문제가 있으면 앱을 정상적으로 종료한 뒤 고정된 설치 위치에서 다시 실행해 여러 복사본이 동시에 존재하지 않도록 하세요.

구독을 가져오고 현재 설정 확인하기

구독 그룹에 항목을 추가해 별칭과 전체 주소를 입력하고 저장한 뒤 업데이트하세요. 구독 URL에는 접근 토큰이 포함되는 경우가 많으므로 클립보드에서 붙여 넣은 후 앞부분의 프로토콜과 끝부분의 매개변수가 온전한지 확인하세요. 단일 서버 설정 공유 링크를 가져오는 경우에는 해당 가져오기 메뉴를 사용하고 구독 URL 입력란에 넣지 마세요. 두 방식으로 가져온 항목이 서버 목록에 모두 표시될 수 있지만 이후 업데이트 방식은 다릅니다. 목록 모양이 비슷하다고 같은 메뉴를 사용하지 마세요.

업데이트가 끝나면 서버 하나를 활성 설정으로 선택한 뒤 연결을 시작하세요. 같은 구독을 다른 기기에서 사용한 적이 있다면 비교 기준으로 삼을 수 있지만 플랫폼 차이를 배제할 수는 없습니다. 로컬 코어 지원, 시스템 시간, 네트워크 환경, DNS가 다를 수 있습니다. 구독에 포함된 전송 및 보안 설정은 그대로 유지하고, 이름을 알기 어렵다는 이유로 기본값으로 바꾸지 마세요. 특히 서버 이름 표시, 전송 경로, 공개 키 관련 옵션을 수정하면 핸드셰이크가 실패할 수 있습니다.

시스템 프록시는 네트워크 서비스에 적용되며 TUN에는 별도 권한이 필요합니다

일반 브라우저를 사용할 때는 먼저 v2rayN에서 시스템 프록시 자동 설정을 켠 다음 현재 네트워크 서비스에 올바르게 적용됐는지 확인하세요. macOS 프록시 설정은 네트워크 서비스별로 관리되므로 Wi-Fi, 유선 네트워크 및 다른 연결 방식에 각각 설정이 있을 수 있습니다. 네트워크를 바꾼 뒤 “어제는 됐는데 오늘은 안 되는” 경우에는 이전 연결의 프록시 화면만 보지 말고 현재 활성화된 서비스를 확인하세요. 앱이 네트워크 설정 변경을 요청하면 시스템 안내에 따라 필요한 권한을 허용하세요.

브라우저는 정상인데 특정 앱이 계속 직접 연결한다면 먼저 해당 앱에 자체 프록시 설정이 있는지 확인하세요. 더 많은 IP 트래픽을 처리해야 한다면 TUN을 고려할 수 있지만 추가 네트워크 권한이나 보조 구성 요소가 필요할 수 있으므로 실제 클라이언트 안내를 따르세요. 권한 창의 시스템 계정 암호를 구독 암호와 혼동하지 마세요. 용도가 다릅니다. 켠 뒤 로컬 네트워크 기기 접속에 문제가 생기면 로컬 대역이 우회 대상인지, 다른 가상 네트워크 서비스가 라우팅을 변경하고 있는지 확인하세요.

종료하기 전에 연결을 끊고 클라이언트가 설정한 시스템 프록시를 해제한 다음 일반 네트워크가 복구됐는지 확인하세요. 클라이언트가 예기치 않게 종료되고 시스템이 수신을 중단한 로컬 포트를 계속 가리키면 브라우저에 프록시 서버에 연결할 수 없다는 메시지가 나타날 수 있습니다. 이때는 구독을 삭제하거나 앱을 다시 설치하지 말고 시스템 네트워크 설정에서 남은 프록시 설정을 제거하세요. 새 컴퓨터로 옮길 때 구독은 다시 가져올 수 있지만 시스템 권한은 새 기기에서 다시 승인해야 합니다. 이전 기기의 데이터 백업으로 새 기기의 권한 확인을 대신할 수는 없습니다.

Android: v2rayNG 및 v2flyNG 설정

클라이언트와 설치 패키지 아키텍처 선택

Android 다운로드 페이지로 이동해 일반적인 용도라면 v2rayNG를 선택하세요. V2Fly에 해당하는 설정이 필요할 때는 v2flyNG를 선택할 수 있습니다. 두 앱은 같은 앱의 테마만 다른 것이 아니며 코어 기능과 일부 설정에 차이가 있습니다. 특정 프로토콜 확장을 사용할 때는 두 앱에 번갈아 가져와 보는 대신 먼저 지원 범위를 확인하세요. 서버 이름에 프로토콜 약어가 있다고 모든 매개변수가 호환되는 것은 아니므로 실제 설정 내용을 살펴봐야 합니다.

기기 아키텍처를 확인한 뒤 arm64 또는 범용 패키지를 선택하세요. 최근 주류 스마트폰은 대부분 arm64를 사용하지만 프로세서가 해당 아키텍처를 지원한다고 해서 운영체제가 그 앱 실행 환경을 반드시 제공하는 것은 아닙니다. 시스템 정보를 최종 기준으로 삼으세요. 설치 프로그램에서 형식이 호환되지 않는다고 표시되면 같은 파일을 반복해서 열지 말고 다운로드 페이지에서 범용 패키지를 선택해 보세요. 시스템이 현재 파일 관리자나 브라우저를 통한 앱 설치 권한을 요청하면 사용 중인 출처에 한해 허용하고, 설치 후에는 보안 기준에 따라 해당 출처의 권한을 해제할 수 있습니다.

기기에 같은 이름의 앱이 이미 설치되어 있다면 서명 출처, 아키텍처 또는 시스템 제한 때문에 업그레이드가 실패할 수 있습니다. 앱을 먼저 삭제하지 마세요. 일반적으로 삭제하면 로컬 구독과 사용자 지정 설정도 사라집니다. 기존 앱의 출처를 확인하고 보관할 설정을 내보낸 뒤 구독 그룹을 기록하세요. 클라이언트 두 개를 각각 설치할 수는 있지만 같은 기기의 VPN 연결을 동시에 처리하게 해서는 안 됩니다. 테스트 전에 다른 클라이언트를 중지하고 업무 프로필에 네트워크 도구가 계속 실행 중인지도 확인하세요.

구독 가져오기 및 VPN 모드 시작

클라이언트의 구독 관리에서 그룹을 추가하고 이름과 전체 URL을 입력한 뒤 저장하세요. 메인 화면으로 돌아가 구독을 업데이트합니다. 제공된 출처에 QR 코드가 있다면 클라이언트의 스캔 메뉴를 이용할 수 있지만, 코드가 단일 서버 설정인지 구독 주소인지 먼저 확인하세요. 복사한 내용의 형식에 맞는 가져오기 메뉴를 선택해야 합니다. QR 코드 이미지와 구독 URL은 비슷한 수준의 민감 정보이므로 설정 화면을 촬영할 때 서버 이름만 가리지 말고 해당 내용도 가리세요.

업데이트된 항목에서 사용할 서버를 선택한 뒤 연결을 누르세요. 처음 실행하면 보통 Android VPN 연결 요청이 표시되며 사용자가 직접 허용해야 합니다. 이 요청은 로컬 트래픽 처리 인터페이스를 만드는 데 필요합니다. 원격 서버를 제공한다는 뜻도 아니고 구독 구매 안내도 아닙니다. 권한을 허용한 직후 연결이 중단된다면 클라이언트 로그나 오류 정보를 확인해 설정 파싱 실패인지, 코어 실행 실패인지, 연결 후 발생한 네트워크 오류인지 구분하세요.

다른 앱의 트래픽을 클라이언트로 보내려면 VPN 모드를 사용하세요. 로컬 프록시 수신 대기만 제공하는 모드에서는 앱에서 프록시를 직접 설정해야 하며, 용도가 분명한 경우에 적합합니다. 상태 표시줄의 VPN 아이콘은 시스템 연결이 설정됐다는 뜻일 뿐 특정 대상에 연결할 수 있다는 뜻은 아닙니다. 연결한 뒤 대상 앱에서 직접 테스트하고 클라이언트에서 해당 요청의 로그를 확인하세요. 연결 버튼 색이 바뀌거나 시스템 아이콘이 나타난 것만으로 검증을 마쳤다고 판단하지 마세요.

앱별 프록시, 로컬 네트워크와 백그라운드 제한 설정

앱별 프록시에서 허용 목록을 사용하면 목록에 있는 앱만 트래픽 처리 대상이 됩니다. 제외 목록은 반대로 선택한 앱을 우회합니다. 수정하기 전에 현재 모드를 확인해 프록시할 앱을 제외 목록에 넣지 않도록 하세요. 변경 사항을 적용하려면 VPN 연결을 다시 설정해야 할 수 있습니다. 브라우저는 되는데 특정 앱이 안 된다면 클라이언트를 초기화하기 전에 목록과 앱의 네트워크 권한을 확인하고 서버가 필요한 전송 방식을 지원하는지도 살펴보세요.

VPN 모드: 앱의 IP 트래픽 처리
로컬 네트워크 우회: 로컬 네트워크 접속 경로 유지
앱별 프록시: 허용 목록 또는 제외 목록 먼저 확인
Mux 다중화: 호환 여부가 확실할 때만 조정
쉽게 설명하면

이 설정은 각각 트래픽 진입 경로, 로컬 네트워크 예외, 적용할 앱 범위, 연결 다중화를 제어합니다. 모두 켜야 하는 성능 향상 스위치가 아닙니다. 먼저 클라이언트의 일반 설정을 유지하세요. 구체적인 요구나 호환성 문제가 있을 때만 항목 하나를 조정하고 다시 연결해 확인하세요.

화면을 끄면 연결이 끊기고 앱으로 돌아오면 다시 연결되는 문제는 백그라운드 배터리 관리와 관련된 경우가 많습니다. 시스템 배터리 설정에서 클라이언트의 백그라운드 실행 제한을 확인하고 필요하면 백그라운드 활동을 허용하세요. 제조사마다 메뉴 이름이 다르므로 다른 휴대전화의 경로를 그대로 따르지 마세요. Wi-Fi에서 모바일 네트워크로 전환한 뒤 연결이 끊긴다면 먼저 다시 연결하고 현재 네트워크에 접속할 수 있는지 확인하세요. 특정 네트워크에서만 실패한다면 DNS, 네트워크 접속 정책, 서버 진입 경로를 살펴보세요. 모든 문제를 배터리 최적화 탓으로 돌리지 마세요.

Linux: 패키지, 데스크톱 프록시 및 TUN

배포판과 아키텍처에 맞는 v2rayN 설치

Linux에서는 v2rayN 데스크톱 클라이언트를 사용합니다. 먼저 배포판의 시스템 정보에서 CPU 아키텍처와 패키지 형식을 확인한 뒤 Linux 다운로드 페이지에서 맞는 설치 파일을 선택하세요. Debian·Ubuntu 계열은 일반적으로 deb를, Fedora 등은 보통 rpm을 사용하지만 호환성은 배포판 버전과 의존성에도 영향을 받습니다. 패키지 확장자는 설치 체계를 파악하는 데 도움이 될 뿐, 같은 패키지 관리자를 쓰는 모든 시스템에서 실행된다는 보장은 아닙니다.

다운로드한 파일은 우선 배포판의 소프트웨어 설치 프로그램으로 열어 의존성과 설치 안내를 확인한 뒤 설치하세요. 시스템에서 의존성을 충족할 수 없다고 하면 전체 오류 메시지를 보관하고 패키지 아키텍처, 배포판 환경, 소프트웨어 저장소 상태를 확인하세요. 의존성을 강제로 무시해 겉으로만 설치되고 실제로는 실행되지 않는 앱을 만들지 마세요. 설치 후 앱 메뉴에서 실행합니다. 그래픽 클라이언트는 데스크톱 세션이 있는 환경에 적합합니다. 원격 터미널만 있는 서버에서는 데스크톱 인터페이스의 절차를 그대로 적용할 수 없습니다.

일반 사용자 계정으로 그래픽 인터페이스를 실행하면 됩니다. 데스크톱 클라이언트 전체를 관리자 권한으로 실행하면 관리자 소유의 설정 파일이 만들어져 이후 일반 사용자로 실행할 때 설정을 저장하지 못할 수 있습니다. 쓰기 실패가 발생하면 현재 앱의 데이터 디렉터리와 파일 소유자를 확인하세요. 사용자 디렉터리 전체에 권한을 무분별하게 부여하지 마세요. 배포판의 보안 기능이 특정 네트워크 작업을 차단한다면 차단 대상을 확인하고 플랫폼 지침에 따라 처리하세요. 시스템 접근 제어 기능 전체를 끄지 마세요.

구독 가져오기와 데스크톱 환경별 프록시 차이

구독 그룹을 만들고 별칭과 주소를 입력해 저장한 뒤 업데이트하고 활성 서버를 선택하세요. 기본 흐름은 다른 데스크톱 플랫폼과 같습니다. 업데이트 실패가 발생하면 클라이언트가 URL에 접근하지 못하는지, 다운로드한 내용을 해석하지 못하는지 구분하세요. 브라우저에서 로그인 양식이나 네트워크 인증 페이지가 표시된다면 먼저 현재 네트워크 인증을 완료해야 합니다. Linux 데스크톱에서 브라우저는 열리는데 클라이언트가 접근하지 못한다면 두 프로그램이 서로 다른 프록시 진입 경로나 DNS 경로를 사용하고 있을 수 있습니다.

시스템 프록시의 적용 범위는 데스크톱 환경과 앱 구현에 따라 달라집니다. 일부 앱은 데스크톱 설정을 읽고, 일부는 자체 설정을 사용하며, 명령줄 도구는 환경 변수를 참조하기도 합니다. v2rayN에서 시스템 프록시 자동 설정이 켜졌다고 모든 터미널 프로그램이 바로 해당 설정을 사용하는 것은 아닙니다. 데스크톱 프록시를 따르는 앱으로 먼저 테스트하고 로컬 수신 대기 상태를 확인한 뒤 특정 프로그램을 살펴보세요. 하나의 터미널 도구 문제를 해결하려고 시스템 전체의 라우팅과 DNS를 바로 바꾸지 마세요.

환경 변수도 적용 범위가 정해져 있습니다. 현재 터미널 세션에서 변수를 바꿔도 이미 실행 중인 그래픽 앱에 자동으로 전달되지 않습니다. 데스크톱 설정이 바뀌어도 기존 터미널의 환경 변수가 바뀌지 않을 수 있습니다. 대상 프로그램이 명시적 프록시 설정을 지원한다면 자체 설정에 클라이언트가 실제로 수신 대기 중인 로컬 주소, 포트, 프로토콜을 입력하세요. 포트 번호가 비슷하다는 이유로 HTTP 프록시와 SOCKS 프록시를 바꿔 쓰지 마세요. 실제 수신 유형은 클라이언트 설정에서 확인해야 합니다.

TUN 권한, 가상 인터페이스와 복구 방법

프록시 설정을 지원하지 않는 앱의 트래픽을 처리해야 할 때 TUN을 검토하세요. TUN은 가상 네트워크 인터페이스, 라우팅, DNS, 필요한 권한을 다루며 일반 시스템 프록시의 강화 버튼이 아닙니다. 먼저 현재 클라이언트와 배포판이 이 모드를 지원하는지 확인한 다음 클라이언트 안내에 따라 권한이나 보조 서비스를 설정하세요. 배포판마다 권한 방식이 다르므로 출처를 알 수 없는 권한 상승 명령을 장기간 실행하지 마세요. 다른 플랫폼의 설치 방법을 현재 Linux 환경에 그대로 적용하지도 마세요.

TUN을 켠 뒤 네트워크가 끊기면 먼저 TUN을 끄고 기존 시스템 프록시가 정상인지 확인하세요. 꺼도 문제가 계속되면 시스템 네트워크 관리자의 현재 DNS와 기본 연결이 복구됐는지 확인할 수 있습니다. 가상 인터페이스가 존재하는 것 자체가 반드시 문제는 아닙니다. 라우팅이 중단된 경로로 트래픽을 계속 보내는지가 핵심입니다. 아래 두 명령은 상태를 확인할 뿐 네트워크 설정을 변경하지 않습니다. 해당 네트워크 도구를 사용하는 시스템에서 실행할 수 있으며 명령이 없다면 배포판에서 제공하는 동등한 상태 확인 메뉴를 이용하세요.

ip route show
resolvectl status

라우팅을 확인할 때는 기본 출구와 가상 인터페이스의 관계를 살펴보고, DNS를 확인할 때는 어느 네트워크 연결에 속한 해석 서버인지 확인하세요. 주소가 여러 개 보인다고 바로 삭제하지 마세요. 컨테이너 네트워크, 가상 머신 또는 다른 VPN을 함께 실행 중이라면 관련 트래픽 처리 도구를 하나씩 중지하고 단계별로 복구하면서 어느 시점에 충돌이 생기는지 확인하세요. 클라이언트를 종료한 뒤 데스크톱 프록시 설정이 남아 있지 않은지도 살펴보세요. 소프트웨어를 다시 설치해도 다른 구성 요소가 남긴 라우팅은 자동으로 복구되지 않습니다. 반복해서 재설치하기보다 트래픽 처리를 끈 뒤 일반 네트워크로 되돌리는 방법을 확보하는 것이 중요합니다.

트래픽 처리와 라우팅: 시스템 프록시, TUN 및 규칙

요청의 진입 경로를 정한 다음 출구를 결정하세요

시스템 프록시, TUN, 라우팅은 서로 다른 문제를 다룹니다. 시스템 프록시는 해당 설정을 따르는 앱이 로컬 프록시에 연결하도록 안내합니다. TUN은 네트워크 계층에서 가상 인터페이스로 들어오는 IP 트래픽을 받습니다. 라우팅 규칙은 코어에 들어온 요청이 어느 출구를 이용할지 결정합니다. “전역”은 보통 클라이언트가 제공하는 라우팅 프리셋을 뜻하며 모든 앱의 트래픽이 클라이언트에 들어왔음을 보장하지 않습니다. 시스템 프록시를 무시하는 프로그램은 라우팅을 전역으로 설정해도 자체 방식으로 직접 연결할 수 있습니다.

먼저 시스템 프록시로 브라우저를 확인한 뒤 TUN을 고려하는 이유도 여기에 있습니다. 일반 프록시 모드의 문제는 주로 앱 진입 경로, 수신 대기 포트, 서버 설정에 집중됩니다. TUN을 사용하면 가상 인터페이스, 라우팅 테이블, 권한, DNS라는 변수가 추가됩니다. 트래픽 처리 범위를 넓혀야 할 때만 변수를 추가하세요. 상태를 더 완전하게 보이게 하려고 모든 옵션을 켜지 마세요. 앱에 자체 프록시 설정이 있다면 시스템 프록시나 가상 네트워크 진입 경로와 중복으로 트래픽을 처리하지 않는지도 확인하세요.

설정주요 해결 대상이 설정만으로 판단할 수 없는 내용
시스템 프록시시스템 설정을 따르는 앱의 연결 방법모든 프로그램의 트래픽이 처리됨
TUN더 넓은 범위의 IP 트래픽 연결모든 요청이 프록시 출구를 사용함
라우팅 규칙코어에 들어온 요청의 출구 지정 방법대상 앱이 이미 코어에 연결됨
DNS 설정도메인을 누가 해석하고 결과를 어떻게 사용하는지프로토콜 또는 서버 측 설정의 정확성

규칙 순서와 데이터 파일 이해하기

라우팅은 보통 규칙 순서대로 일치 여부를 확인합니다. 앞쪽 규칙이 일치하면 뒤의 규칙은 더 이상 적용되지 않을 수 있습니다. 특정 도메인이 왜 직접 연결되는지 확인할 때는 마지막에 프록시 규칙이 있는지만 보지 말고 앞쪽 규칙부터 살펴보세요. 도메인 규칙은 요청에 도메인 정보가 있어야 하고, IP 규칙은 대상 주소와 관련 DNS 전략에 의존합니다. 두 규칙이 항상 같은 결과를 내는 것은 아닙니다. 앱이 IP 주소로 직접 접속하거나 코어에 들어오기 전에 도메인이 해석된 경우 예상한 조건과 실제로 일치하는 조건이 다를 수 있습니다.

GeoIP와 GeoSite는 규칙 데이터이며 서버 설정이 아닙니다. GeoIP는 IP 분류 데이터를, GeoSite는 도메인 분류 데이터를 제공합니다. 실제로 사용할 수 있는 분류는 설치된 데이터 파일에 따라 달라집니다. 클라이언트 프리셋에서 해당 데이터를 참조할 수는 있지만 모든 서드파티 데이터 파일에 같은 이름의 분류가 들어 있다고 보장할 수 없습니다. 데이터 출처를 바꾼 뒤 시작할 때 분류를 찾을 수 없다는 오류가 나면 규칙 참조와 데이터 내용이 일치하는지 확인하세요. 업데이트 방법은 라우팅 데이터 파일 안내를 참고하세요.

{
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      }
    ]
  }
}
쉽게 설명하면

이 라우팅 조각은 해당 구문을 지원하는 코어용이며 완전한 연결 설정이 아닙니다. 사설 주소를 direct라는 출구로 보내려면 전체 설정에 같은 이름의 출구가 이미 있고 관련 GeoIP 데이터를 읽을 수 있어야 합니다. AsIs는 라우팅 일치를 위해 도메인을 별도로 능동적으로 해석하지 않지만, 다른 연결 과정에서는 DNS가 필요할 수 있습니다.

DNS, 로컬 네트워크, 다중화 설정 범위

도메인으로 접속할 수 없지만 대상 IP에 직접 접속하면 반응이 있는 경우 DNS를 문제 해결 항목으로 살펴볼 수 있습니다. 하지만 특정 공용 DNS 서버가 작동하지 않는다고 단정할 수는 없습니다. 클라이언트, 시스템, 브라우저, 앱마다 서로 다른 DNS 경로를 사용할 수 있고 캐시에 이전 결과가 남아 있을 수도 있습니다. 문제가 발생하는 앱, 별도의 암호화 DNS 사용 여부, TUN의 시스템 DNS 처리 여부를 먼저 확인하세요. 한 번에 한 곳만 변경하고 다시 연결해 요청을 보내세요. 여러 DNS 설정이 서로 덮어쓰지 않도록 주의해야 합니다.

프린터, 공유 폴더, 로컬 관리 페이지에 접속하려면 적절한 로컬 네트워크 직접 연결 경로를 유지해야 합니다. 로컬 네트워크 우회는 보통 사설 주소에 적용되지만 구체적인 네트워크 대역과 도메인 검색 방식은 규칙과 시스템 네트워크 환경에 따라 다릅니다. 로컬 기기에 접속하려고 모든 대상을 직접 연결로 설정하지 마세요. 도메인 규칙 하나만 추가해도 로컬 검색 프로토콜이 정상 작동한다고 가정할 수 없습니다. 먼저 기기의 실제 로컬 네트워크 주소로 테스트한 다음 이름 해석과 앱의 검색 기능을 확인하면 네트워크 연결 문제와 자동 검색 문제를 나눠 살펴볼 수 있습니다.

Mux 다중화는 연결을 재사용하지만 모든 네트워크 및 프로토콜 조합에 더 적합하다고 보장하지 않습니다. 특정 프로토콜이나 앱에서만 문제가 생기면 다른 조건은 그대로 둔 채 다중화를 끄고 비교할 수 있습니다. 서버, 전송 방식, DNS를 동시에 바꾸지 마세요. 사용자 지정 설정에도 같은 원칙을 적용하세요. 먼저 기존 규칙을 저장한 뒤 목적이 분명한 변경 하나를 추가합니다. 클라이언트가 생성한 설정과 직접 작성한 설정이 서로 덮어쓸 수 있으므로 편집 전에 현재 실행 중인 파일을 확인하세요. 파일 저장에 성공했다고 설정이 적용된 것은 아닙니다.

설정 문제: 구독부터 대상 앱까지 단계별로 확인

구독 업데이트 실패 및 가져온 뒤 항목이 없는 경우

먼저 URL 요청 단계에서 실패했는지 응답 내용 해석 단계에서 실패했는지 확인하세요. 구독 도메인을 해석하지 못함, 연결 시간 초과, 접속 거부는 각각 다른 단계를 가리킵니다. 응답이 지원되는 설정 형식이 아니라면 구독 유형과 응답 내용을 확인하세요. 주소를 복사할 때 앞뒤 공백, 줄바꿈, 누락된 쿼리 매개변수가 없는지 살펴보세요. 브라우저에서 주소가 열린다고 클라이언트가 설정을 받은 것은 아닙니다. 로그인 요구, 네트워크 인증 안내, 브라우저용 관리 화면이 표시될 수 있습니다.

사용 가능한 서버가 있다면 현재 네트워크에 따라 직접 업데이트와 프록시를 통한 업데이트를 시도해 오류가 달라지는지 확인할 수 있습니다. 사용할 설정이 하나도 없다면 아직 연결되지 않은 프록시에 의존해 첫 업데이트를 하지 마세요. 서버에서 구독 주소나 접근 토큰을 변경했다면 추측으로 일부만 바꾸지 말고 새 전체 URL을 사용하세요. 여러 기기에서 동시에 실패한다면 구독 출처와 서비스 상태를 확인하는 것이 좋습니다. 한 기기에서만 실패한다면 해당 기기의 네트워크, 시간, DNS, 클라이언트 설정을 우선 비교하세요.

서버는 표시되지만 코어 시작 또는 핸드셰이크가 실패하는 경우

구독 목록에 항목이 있으면 먼저 활성 서버가 올바르게 선택됐는지 확인한 뒤 코어 시작 결과를 살펴보세요. 설정 파싱 실패는 보통 원격 연결을 시작하기 전에 발생하므로 필드 지원 여부와 코어 호환성을 확인해야 합니다. 주소를 해석할 수 없다면 먼저 DNS 문제를 해결하세요. 연결 거부는 대상 주소에 도달했지만 해당 포트에서 연결을 받지 않았음을 나타내는 경우가 많습니다. 시간 초과는 응답을 기다리는 동안 완료되지 않았다는 뜻일 뿐입니다. 이 오류 하나만으로 로컬 네트워크, 원격 방화벽, 서버 프로세스 중 무엇이 원인인지 판단할 수 없습니다.

핸드셰이크 오류가 발생하면 서버 이름, 전송 유형, 경로, 사용자 ID, 관련 확장 옵션 등 보안 및 전송 설정 전체를 비교하세요. 서버 주소와 보안 연결에 사용하는 이름은 다를 수 있습니다. 두 필드가 비슷해 보인다고 하나를 삭제하지 마세요. 시스템 시간이 크게 틀려도 검증 오류가 발생할 수 있습니다. 인증서 검증 건너뛰기를 장기적인 해결 방법으로 사용하지 말고 인증서 이름과 유효 기간, 설정 출처, 네트워크 중간 구간을 확인해 보안 설정을 서버에 맞게 되돌리세요.

같은 설정이 v2rayNG에서는 작동하지만 v2flyNG에서는 작동하지 않는다면 한쪽 앱이 손상됐다고 판단하기보다 코어 기능의 차이를 먼저 확인하세요. 데스크톱에서도 클라이언트 업데이트와 코어 기능이 완전히 동기화되지 않는 경우가 있습니다. 프로토콜 지원 범위를 비교하려면 Xray와 V2Fly 코어 차이를 읽어보세요. 결과를 유의미하게 비교하려면 네트워크와 서버는 그대로 유지하고 한 번에 조건 하나만 바꾸세요.

연결됨으로 표시되지만 앱에서 접속할 수 없는 경우

문제를 “앱 요청이 들어오지 않음”과 “요청이 들어왔지만 나가지 못함”으로 나눠 보세요. 대상 앱에서 작업할 때 클라이언트에 해당 요청 흔적이 없다면 시스템 프록시, 앱별 허용·제외 목록, 앱 자체 설정, TUN 적용 범위를 확인하세요. 요청이 들어왔다면 일치한 라우팅 규칙과 원격 오류를 살펴보세요. 일부 사이트만 실패한다면 DNS 결과, 라우팅, 대상 서비스 상태를 비교하세요. 브라우저 캐시, 연결 다중화, 백그라운드 프로세스가 기존 연결을 계속 사용할 수 있으므로 설정을 바꾼 뒤 새 요청을 보내 확인하세요.

로컬 수신 대기 시작에 실패하면 두 번째 클라이언트가 같은 포트를 사용 중인지, 이전 실행 프로세스가 백그라운드에 남아 있는지 확인하세요. 포트를 바꾼 뒤에는 앱의 수동 프록시 주소도 함께 업데이트해야 합니다. 클라이언트만 바꾸고 앱은 그대로 두면 양쪽 설정이 일치하지 않습니다. TUN을 켰을 때만 문제가 생기면 일반 프록시로 되돌려 서버 연결이 정상인지 확인한 뒤 권한, 가상 인터페이스, DNS, 다른 네트워크 도구를 살펴보세요. 일반 프록시가 검증되지 않은 상태에서 트래픽 처리 구성을 더 복잡하게 만들지 마세요.

일반 네트워크 복구 및 문제 단서 정리

네트워크를 복구해야 한다면 먼저 연결과 TUN을 중지하고 클라이언트가 설정한 시스템 프록시를 해제한 다음 남아 있는 프록시 프로세스가 없는지 확인하세요. Android에서는 현재 VPN이 실제로 중지됐는지, VPN 연결이 아닌 트래픽을 차단하는 옵션이 켜져 있는지 확인하세요. 데스크톱에서는 앱 자체의 수동 프록시 설정도 살펴보세요. 시스템 프록시를 지워도 앱 설정이 항상 자동으로 초기화되지는 않습니다. 일반 네트워크가 복구되면 활성 서버 하나와 트래픽 진입 방식 하나로 테스트 기준을 다시 세우세요.

문제를 기록할 때는 운영체제, 클라이언트 이름, 발생 단계, 실행한 작업, 오류 발생 시점에 가까운 로그를 보관하세요. 공유 전에 구독 URL, 사용자 ID, 서버 접근 정보, QR 코드를 제거하고 전체 데이터 디렉터리를 그대로 올리지 마세요. 로그 오류는 v2rayN 로그 오류 설명을 참고해 하나씩 확인할 수 있습니다. 간단한 자주 묻는 질문은 도움말 센터에서 찾아보세요. 시간 범위가 불분명한 스크린샷을 많이 올리는 것보다 재현 절차를 명확하게 정리하는 편이 문제 파악에 도움이 됩니다.