v2rayNG 안드로이드 사용 핵심: VpnService 권한, 배터리 최적화 제외와 앱별 프록시 설정

v2rayNG 안드로이드 핵심 설정을 정리합니다. 첫 연결 시 VpnService 권한을 허용하고, 배터리 최적화에서 제외해 백그라운드 연결 끊김을 막으며, 앱별 프록시로 노드를 사용할 앱을 지정하는 방법을 안내합니다.

v2rayNG에 VMess, VLESS 또는 구독 노드를 가져온 뒤 연결 버튼을 켜는 것은 핵심 기능을 시작하는 단계에 불과합니다. 안드로이드가 VpnService 연결을 허용하는지, 백그라운드 작업이 앱을 일시 중지하지 않는지, 앱별 프록시 모드를 올바르게 선택했는지가 실제 트래픽에 직접 영향을 줍니다. “연결됨으로 표시되지만 앱이 노드를 사용하지 않음”, “화면을 잠근 뒤 10여 분 후 연결 끊김”, “일부 앱만 열리지 않음” 같은 문제는 대개 구독 자체가 만료된 것이 아니라 이 세 가지 설정이 맞지 않아서 발생합니다.

이 글은 v2rayNG 1.10.x의 일반적인 화면을 기준으로 작성했습니다. 안드로이드 제조사별로 배터리 관리 메뉴가 “백그라운드 배터리 사용량 관리”, “앱 자동 실행 관리” 또는 “배터리 최적화”처럼 다르게 표시될 수 있지만 목표는 같습니다. v2rayNG가 계속 실행되도록 허용하고, 상태 표시줄에 시스템 VPN 표시가 나타나는지 확인하세요. 메뉴 이름이 다르면 시스템 설정 상단에서 “배터리 최적화” 또는 “백그라운드 활동”을 검색하면 됩니다.

이 글 한눈에 보기

이미 노드를 가져왔고 v2rayNG를 안정적으로 사용하려는 안드로이드 사용자에게 적합합니다. 먼저 VpnService 권한을 허용하고, v2rayNG를 배터리 최적화 대상에서 제외한 다음, “모든 앱, 선택한 앱만, 선택한 앱 우회” 세 가지 범위로 앱별 프록시를 설정합니다. 글 마지막에는 백그라운드 연결 끊김, DNS 오류, 구독 업데이트 실패를 단계별로 진단하는 방법도 정리했습니다.

첫 연결: VpnService 권한이 실제로 적용됐는지 확인

v2rayNG는 안드로이드의 VpnService를 사용해 가상 네트워크 인터페이스를 만들고, 규칙에 맞는 연결을 Xray 코어로 전달합니다. 처음 메인 화면 오른쪽 아래의 연결 버튼을 누르면 시스템에 연결 요청이 표시되며, 보통 “이 앱이 VPN 연결을 설정하도록 허용하시겠습니까?”라는 내용이 나타납니다. 이는 시스템 권한이며 서버 계정 인증이 아닙니다. 권한을 허용하지 않아도 노드 목록은 정상적으로 보이고 지연 시간 테스트가 결과를 반환할 수 있지만, 다른 앱의 트래픽은 가상 인터페이스로 들어가지 않습니다.

권한을 허용한 뒤에는 세 가지 신호를 함께 확인해야 합니다. v2rayNG 메인 화면의 연결 버튼이 실행 상태로 바뀌고, 알림 영역에 지속 실행 알림이 나타나며, 상태 표시줄에 시스템 VPN 표시가 보여야 합니다. 버튼만 바뀌고 나머지 두 항목이 없다면 시스템 설정으로 돌아가 기존 VPN 설정과 충돌하는지 확인하세요. 안드로이드는 일반적으로 VpnService 기반 연결 하나만 동시에 트래픽을 제어할 수 있으므로, 다른 네트워크 도구가 실행 중이면 새 연결이 즉시 종료될 수 있습니다.

  1. 노드 선택

    메인 화면에서 가져온 VMess 또는 VLESS 노드를 눌러 왼쪽 선택 표시가 현재 상태가 되도록 합니다. 구독에 노드가 여러 개라면 이름만 보고 회선을 판단하지 말고 지연 시간이 안정적인 항목을 먼저 선택하세요.

  2. 연결 시작

    오른쪽 아래의 원형 연결 버튼을 누릅니다. 처음 실행할 때 시스템 VpnService 권한 요청이 표시되면 “확인” 또는 “허용”을 선택하고, 팝업을 건너뛰려고 홈 화면으로 전환하지 마세요.

  3. 상태 확인

    알림 창을 내려 v2rayNG의 지속 알림과 시스템 VPN 표시가 모두 있는지 확인합니다. 연결이 1~2초 안에 자동으로 중단되면 사이드 메뉴의 「로그」에서 첫 번째 오류를 확인하세요.

  4. 트래픽 테스트

    먼저 대상 앱을 완전히 종료한 뒤 다시 열고, 평소 안정적으로 접속되는 페이지를 방문합니다. 노드 지연 시간만으로 인터넷 연결을 판단하지 마세요. 지연 시간 테스트와 앱의 실제 요청은 완전히 같은 경로가 아니기 때문입니다.

백그라운드에서 계속 끊길 때: 배터리 최적화 제외와 실행 제한

안드로이드의 배터리 절전 정책은 화면이 꺼진 뒤 백그라운드 프로세스, 네트워크 깨우기, 예약 작업을 제한할 수 있습니다. 일반 앱은 일시 중지돼도 다음에 열면 다시 로드되지만, 프록시 클라이언트가 일시 중지되면 가상 인터페이스가 잠시 유지되는 동안에도 코어 프로세스가 데이터를 안정적으로 전달하지 못할 수 있습니다. 그 결과 알림은 계속 표시되지만 웹페이지는 시간 초과되는 가짜 연결 상태가 나타납니다. 일부 시스템은 화면을 잠근 뒤 10~30분 후 제한을 적용하고, 배터리가 20% 미만으로 떨어지면 더 강한 절전 단계로 자동 전환하기도 합니다.

설정할 때 “알림 허용”만 켜서는 안 됩니다. 알림 권한은 상태를 표시할 수 있는지를 결정하고, 배터리 최적화 설정이 백그라운드 프로세스의 지속 실행 여부를 결정합니다. 일반적인 안드로이드 경로는 「설정」→「앱」→「v2rayNG」→「앱 배터리 사용량」→「제한 없음」입니다. 다른 경로로는 「설정」→「배터리」→「배터리 최적화」→「모든 앱」→「v2rayNG」→「최적화하지 않음」이 있습니다. 시스템에 “백그라운드 활동 허용”과 “자동 시작”이 모두 있다면 두 항목을 모두 켜세요.

권장 설정: 코어는 계속 실행하고 배터리 소모 범위는 관리하기

시스템 배터리 설정
  • 앱 배터리 사용량을 “제한 없음”으로 설정
  • 백그라운드 활동 및 자동 시작 허용
  • v2rayNG 지속 알림 유지
  • 시스템의 원터치 절전 정리 기능 사용하지 않기
v2rayNG 내부 설정
  • 현재 활성 노드는 하나만 유지
  • 필요할 때만 앱별 프록시 활성화
  • 연속 지연 시간 테스트를 자주 실행하지 않기
  • 구독 업데이트 후 노드 다시 선택

백그라운드 권한은 연결 안정성을 담당하고, 앱별 범위는 불필요한 전달을 줄입니다. 두 설정을 함께 조정하는 편이 계속 재연결하는 것보다 효과적입니다.

화면 잠금 테스트로 설정 확인

  • 노드에 연결한 뒤 지속적인 인터넷 연결이 필요한 앱을 열어 전면 요청이 정상인지 확인합니다.
  • 화면을 잠근 상태로 15분간 기다립니다. 그동안 최근 앱 목록에서 v2rayNG를 밀어 종료하지 마세요.
  • 잠금을 해제한 즉시 페이지를 새로 고치고 첫 응답이 5초를 넘는지 기록합니다.
  • 다시 화면을 30분간 잠근 뒤 테스트합니다. 장시간 잠근 뒤에만 실패한다면 노드를 바꾸기보다 배터리 최적화 설정을 먼저 확인하세요.
  • 모바일 네트워크와 Wi-Fi를 전환할 때 연결이 끊긴다면 기본 네트워크가 다시 연결될 때까지 3~5초 기다린 뒤 자동 복구되는지 확인하세요.

재현 가능한 테스트는 “가끔 끊김”보다 원인을 찾기 쉽습니다. 예를 들어 전면에서 20분간 정상적으로 사용되다가 화면을 30분간 잠근 뒤 첫 요청만 시간 초과되고, v2rayNG를 다시 열면 즉시 복구된다면 백그라운드 제한을 명확히 가리킵니다. 반대로 전면에서도 계속 패킷이 유실되거나 모든 노드가 같은 시각에 실패한다면 로컬 네트워크, DNS 및 구독 노드 상태를 계속 확인해야 합니다.

앱별 프록시: 세 가지 트래픽 범위를 헷갈리지 않기

앱별 프록시는 어떤 안드로이드 앱의 트래픽을 v2rayNG의 가상 인터페이스로 보낼지 결정합니다. Xray의 라우팅 분기와는 다른 계층입니다. 앱별 프록시가 먼저 앱 범위를 필터링하고, 코어에 들어온 뒤에는 도메인과 주소가 라우팅 규칙에 따라 프록시, 직접 연결 또는 차단으로 다시 선택될 수 있습니다. 앱이 VpnService 대상에 포함되지 않으면 이후의 도메인 규칙은 해당 앱에 적용되지 않습니다.

일반적인 진입 경로는 v2rayNG 사이드 메뉴의 「설정」→「앱별 프록시」입니다. 전체 스위치를 켜면 앱 목록과 “우회 모드”가 표시됩니다. 우회 모드가 꺼져 있으면 선택한 앱만 프록시로 들어가고, 우회 모드가 켜져 있으면 선택한 앱은 직접 연결되며 나머지 앱이 프록시로 들어갑니다. 목록을 수정한 뒤에는 VpnService가 새 범위로 다시 구성되도록 연결을 끊었다가 한 번 재연결하는 것이 좋습니다.

모든 앱 연결

앱별 프록시를 끄면 시스템에서 제어할 수 있는 앱 트래픽이 모두 v2rayNG로 들어가고, 코어의 라우팅 규칙이 프록시 또는 직접 연결을 결정합니다. 설정은 가장 간단하지만 로컬 서비스 앱도 규칙 판단을 거치게 됩니다.

적합한 경우: 처음 문제를 진단할 때, 트래픽을 일괄 제어해야 할 때

선택한 앱만 연결

권장

앱별 프록시를 켜고 우회 모드를 끈 다음, 실제로 노드를 사용해야 하는 브라우저나 네트워크 앱만 선택합니다. 트래픽 범위가 명확하고 문제가 있는 앱을 하나씩 확인하기도 쉽습니다.

적합한 경우: 일상적인 사용, 범위를 정밀하게 제어해야 할 때

선택한 앱 우회

앱별 프록시와 우회 모드를 켜면 선택한 앱은 로컬 네트워크를 직접 사용하고 나머지 앱은 v2rayNG로 전달됩니다. 새로 설치한 앱은 기본적으로 프록시 범위에 들어가므로 사용 전에 변경 사항을 확인하세요.

적합한 경우: 소수의 앱만 반드시 로컬 네트워크에 직접 연결해야 할 때

설정 후 확인 순서

  1. 브라우저 하나만 선택하고 우회 모드를 끈 뒤 다시 연결합니다.
  2. 해당 브라우저에서 요청을 보내 정상적으로 로드되는지 확인합니다.
  3. 선택하지 않은 다른 앱을 열어 일반 네트워크를 계속 사용하는지 확인합니다.
  4. 그 다음 대상 앱을 하나씩 추가하고, 매번 변수 하나만 변경합니다.
  5. 특정 앱이 여전히 적용되지 않으면 독립 프로세스나 시스템 구성 요소를 통해 네트워크 요청을 보내는지 확인하세요.

노드, 구독과 코어: 설정 계층을 분리해서 이해하기

v2rayNG는 Xray 코어를 사용해 VMess, VLESS 등의 설정을 처리합니다. 구독은 여러 노드를 일괄 제공하고, 클라이언트는 선택 상태를 저장하며 VpnService를 시작하고 로그를 표시합니다. 코어는 프로토콜 핸드셰이크, 라우팅과 전송을 담당합니다. 구독 업데이트가 성공했다고 현재 노드가 자동으로 바뀌는 것은 아닙니다. 기존 노드가 삭제됐거나 매개변수가 변경됐다면 업데이트가 끝난 뒤 노드를 다시 선택하고 재연결하세요.

프로토콜 이름만 보고 모든 매개변수를 추측하지 마세요. VLESS는 TCP, WebSocket, gRPC 등의 전송 방식과 함께 사용될 수 있고 TLS 또는 REALITY 관련 필드를 포함할 수도 있습니다. VMess 노드 역시 서버 주소, 포트, 사용자 식별자, 전송 방식과 보안 매개변수가 서로 일치해야 합니다. 필드를 하나라도 수동으로 수정하면 핸드셰이크가 실패할 수 있으므로 서버에서 제공한 완전한 구독 설정을 우선 사용하세요.

v2rayNG

권장

안드로이드용 그래픽 클라이언트로 Xray 코어를 사용하며, VMess, VLESS 및 Xray 기능이 필요한 구독 설정에 적합합니다.

적합한 경우: 안드로이드 일상 연결과 앱별 프록시

v2flyNG

안드로이드용 클라이언트로 V2Fly 코어를 사용하며, V2Fly의 동작과 호환 범위를 명시적으로 요구하는 설정에 적합합니다. Xray만 지원하는 매개변수를 그대로 적용해서는 안 됩니다.

적합한 경우: V2Fly 코어를 명시적으로 사용하는 노드 설정

v2rayN

Windows 데스크톱 클라이언트로, 안드로이드와 같은 구독 소스를 사용할 수 있지만 로컬 포트, 시스템 프록시와 라우팅 설정은 각 기기에 별도로 저장됩니다.

적합한 경우: Windows 데스크톱 설정과 로그 진단

자주 쓰는 로컬 매개변수 이해하기

항목 일반적인 값 용도 확인할 점
로컬 SOCKS 포트 10808 SOCKS를 명시적으로 지원하는 로컬 프로그램의 연결에 사용 포트가 사용 중이면 코어가 시작되지 않을 수 있음
로컬 HTTP 포트 10809 HTTP 프록시를 지원하는 로컬 프로그램에서 사용 원격 서버 포트와 혼동하지 않기
연결 테스트 시간 초과 약 5초 명백히 연결할 수 없는 노드를 빠르게 제외 시간 초과가 구독 전체의 실패를 의미하지는 않음
화면 잠금 후 재테스트 15분, 30분 배터리 절전 정책이 백그라운드를 일시 중지하는지 확인 복구에 걸린 시간과 알림 상태 기록

10808과 10809는 흔히 사용하는 로컬 수신 대기 포트이지만 모든 버전에서 같은 값을 유지해야 하는 것은 아니며, “더 빠르게” 만들기 위해 임의로 변경할 필요도 없습니다. VpnService 모드에서는 일반 안드로이드 앱이 가상 인터페이스를 통해 트래픽을 제어하므로 사용자가 이 두 포트를 직접 입력할 필요가 없습니다. 로그에 포트 사용 중 메시지가 명확히 표시되거나 특정 로컬 프로그램에서 수동 프록시를 사용해야 할 때만 확인하면 됩니다.

연결 문제: 권한, 백그라운드, 범위, DNS 순서로 진단

진단할 때는 먼저 문제가 어느 계층에서 발생했는지 확인하세요. VpnService가 만들어지지 않으면 어떤 앱도 코어로 들어가지 않습니다. 백그라운드가 제한된 경우에는 보통 연결 직후에는 정상이고 화면을 잠근 뒤 실패합니다. 앱별 범위를 반대로 선택하면 특정 앱만 이상이 생깁니다. DNS 또는 라우팅 문제는 일부 도메인만 열리지 않거나 주소를 직접 입력했을 때 결과가 달라지는 방식으로 나타납니다. 이 순서대로 확인하면 처음부터 구독을 삭제하거나 노드를 계속 바꾸는 일을 피할 수 있습니다.

연결을 누르자마자 다시 멈추나요?

먼저 시스템에 VpnService 권한 요청이 표시됐는지 확인한 다음 v2rayNG의 「로그」에서 시작 단계 정보를 확인하세요. 로컬 포트 사용 중 메시지가 나타나면 같은 종류의 연결을 중지하고 다시 시도합니다. 시스템에 “항상 켜짐 VPN”이 있다면 연결된 앱이 충돌하지 않는지도 확인하세요.

화면을 잠시 잠그면 연결이 끊기나요?

시스템 「설정」→「앱」→「v2rayNG」→「앱 배터리 사용량」으로 이동해 “제한 없음”으로 설정하고, 백그라운드 활동과 자동 시작도 허용합니다. 연결한 뒤 화면을 15분, 30분씩 잠가 다시 테스트하세요.

특정 앱 하나만 노드를 사용하지 않나요?

「설정」→「앱별 프록시」를 열어 해당 앱이 선택됐는지 확인하고, “우회 모드”가 의미를 반대로 바꾸고 있지 않은지 확인합니다. 저장한 뒤 연결을 끊었다가 다시 연결하고, 대상 앱을 완전히 종료한 다음 다시 실행하세요.

구독 업데이트가 계속 시간 초과되나요?

먼저 현재 사용 가능한 노드로 연결한 뒤 구독 업데이트를 실행하고, 구독 주소에 불필요한 공백이 없는지도 확인하세요. 업데이트가 성공하면 노드를 다시 선택합니다. 기존 노드가 계속 선택된 상태를 목록에 변화가 없는 것으로 오해하지 마세요.

연결됨으로 표시되지만 도메인이 열리지 않나요?

먼저 안정적인 다른 네트워크로 테스트한 뒤 로그에 DNS 조회 시간 초과가 나타나는지 확인하세요. 사용자 지정 라우팅 규칙을 잠시 끄고 비교합니다. 정상으로 돌아온다면 도메인 규칙, 주소 규칙과 최종 아웃바운드의 대응 관계를 하나씩 확인하세요.

바로 실행할 수 있는 점검 목록

  • 상태 표시줄에 시스템 VPN 표시가 있고, 알림 영역에 v2rayNG 지속 실행 알림이 있습니다.
  • 현재 노드가 명확히 선택되어 있고, 구독 업데이트 후 다시 연결했습니다.
  • 시스템 배터리 정책이 “제한 없음”으로 설정되어 있으며, 백그라운드 활동과 자동 시작이 허용되어 있습니다.
  • 앱별 프록시의 “우회 모드”와 선택 목록의 의미가 서로 일치합니다.
  • 먼저 사용자 지정 라우팅을 끈 상태로 비교한 뒤 필요한 프록시·직접 연결 규칙을 복원합니다.
  • Wi-Fi와 모바일 네트워크에서 각각 한 번씩 테스트해 로컬 네트워크 문제와 노드 문제를 구분합니다.
  • 오류가 발생한 시간을 기록한 뒤 같은 시각 전후의 코어 로그를 확인합니다. 마지막 한 줄만 보지 마세요.

안정적인 설정의 핵심은 모든 스위치를 켜는 것이 아니라 각 계층의 역할을 명확히 나누는 데 있습니다. 시스템은 VpnService가 만들어지고 계속 실행되도록 허용하고, 앱별 프록시는 트래픽 범위를 정확히 정하며, Xray 라우팅은 도메인과 주소를 처리하고, 구독은 완전한 노드 매개변수만 제공합니다. 한 번 계층별 검증을 마치면 이후 연결 끊김이나 부분적인 오류가 생겨도 시스템 권한, 로컬 정책, 원격 노드 중 어디에서 문제가 발생했는지 보통 몇 분 안에 판단할 수 있습니다.

클라이언트 다운로드Windows · macOS · Android · Linux