안드로이드 VPN을 처음 설정할 때 걸리는 지점은 대부분 '연결' 버튼이 아니라 그 앞의 네 가지입니다. 어떤 클라이언트를 설치할지, 구독 링크를 어떻게 넣을지, 시스템 VPN 권한을 어떻게 승인할지, 백그라운드가 배터리 절약 정책에 멈추지는 않을지. 이 안드로이드 VPN 설치 가이드는 실제 조작 순서를 그대로 따라가며 단계마다 대조할 수 있는 확인 지점을 제시하고, 마지막에 트래픽이 실제로 해외 회선을 타는지 출구 IP와 DNS로 확인하는 방법을 설명합니다.
본문에 언급된 클라이언트는 유형 설명을 위한 예시이며 특정 버전을 지정하지 않습니다. 구독에 포함된 노드 수와 지역은 계정에서 실제로 표시되는 내용을 기준으로 합니다.
클라이언트부터 선택: 프로토콜 지원 범위가 쓸 수 있는 회선을 정합니다
구독 링크 자체는 인코딩된 노드 정보일 뿐이고, 이를 시스템에서 쓸 수 있는 프록시로 바꿔 주는 것이 클라이언트입니다. 안드로이드 클라이언트는 대부분 커널을 내장하고 있어 설치 후 바로 쓸 수 있고, 별도의 실행 환경을 준비할 필요가 없습니다. 차이는 두 가지에 집중됩니다. 지원하는 프로토콜 범위, 그리고 분할 규칙을 얼마나 세밀하게 쓸 수 있는지입니다.
| 클라이언트 | 커널 유형 | 일반 지원 프로토콜 | 구독 등록 방식 |
|---|---|---|---|
| v2rayNG | Xray 계열 | VMess、VLESS、Trojan、Shadowsocks、Hysteria2 | 새 구독 그룹을 만든 뒤 링크를 붙여넣거나 클립보드에서 가져오기 |
| NekoBox for Android | sing-box 계열 | VMess、VLESS、Trojan、Shadowsocks、Hysteria2、TUIC | 새 구독을 만든 뒤 업데이트, 공유 링크 일괄 등록 지원 |
| Hiddify | sing-box 계열 | VMess、VLESS、Trojan、Shadowsocks、Hysteria2、TUIC | 구독 링크를 추가한 뒤 한 번에 업데이트 |
| FlClash 등 mihomo 계열 | mihomo 계열 | VMess、VLESS、Trojan、Shadowsocks、Hysteria2、TUIC | 구독 링크와 설정 파일 등록 지원 |
위 표는 흔한 조합일 뿐 정답은 아닙니다. 클라이언트 업데이트에 따라 지원 프로토콜 범위가 달라지므로, 등록 전에 프로토콜 목록에 구독에서 쓸 항목이 있는지 먼저 확인하는 편이 나중에 '왜 연결이 안 되지'를 추측하는 것보다 훨씬 수월합니다.
프로토콜별 실제 차이
- Shadowsocks: 핸드셰이크가 가볍고 오버헤드가 적어 일상적인 웹 서핑과 영상 시청에 충분하며, 설정 항목도 가장 적습니다.
- VMess: 비교적 이른 세대의 프로토콜로, 클라이언트와 서버의 시간 오차에 민감해 시스템 시간이 맞지 않으면 인증 실패가 나기 쉽습니다.
- VLESS: VMess를 단순화한 후속 프로토콜로, 자체 암호화가 없어 보안은 외부의 TLS 또는 Reality에 의존합니다.
- Trojan: 트래픽을 일반 HTTPS로 위장하며 포트는 보통 443이라, 443만 허용하는 네트워크에서도 비교적 수월하게 통과합니다.
- Hysteria2와 TUIC: 둘 다 QUIC 위에서 UDP로 동작해 약한 네트워크와 높은 패킷 손실 환경에서 복구가 빠르지만, UDP가 제한된 네트워크에는 더 민감합니다.
프로토콜을 이해하면 증상을 판단하는 데 도움이 됩니다. 연결 후 일정 간격으로 끊겼다가 다시 붙는 증상은 UDP 경로의 패킷 손실과 관련이 있을 가능성이 크고, 이런 경우 Hysteria2나 TUIC 회선이 TCP 계열보다 안정적인 편입니다. 반대로 웹 페이지가 느리게 열리거나 영상 버퍼링이 길다면 분할 규칙이나 DNS 쪽 문제일 가능성이 커서 프로토콜을 바꿔도 소용이 없습니다. 클라이언트와 서버 사이 트래픽은 프로토콜 자체의 암호화 계층이 보호하며, VPNDH 회선은 모두 군사 등급 암호화를 적용합니다.
1단계: 클라이언트 설치 및 출처 확인
설치 파일은 버전 번호보다 출처가 중요합니다. VPN 권한을 한 번 허용하면 클라이언트가 기기의 모든 트래픽을 처리할 수 있으므로, 2분을 더 들여 출처를 확인하는 편이 출처가 불분명한 설치 파일로 시간을 아끼는 것보다 낫습니다.
- 클라이언트 프로젝트의 공식 배포 페이지에서 설치 파일을 받거나, Google Play에서 같은 이름의 앱을 설치합니다.
- 설치할 때 시스템이 '알 수 없는 출처의 앱'을 묻는데, 해당 출처 하나에만 허용하고 설치가 끝나면 바로 회수하면 됩니다.
- 클라이언트를 열고 바로 연결하지 말고, 버전 정보와 프로토콜 목록에 구독에서 쓸 프로토콜이 들어 있는지 먼저 확인합니다.
- 시스템이 네트워크 권한을 물으면 허용하면 됩니다. 이 단계에서는 VPN 권한 창이 아직 뜨지 않으며, 그건 다음 단계입니다.
안드로이드 기기 한 대에서는 동시에 하나의 VPN만 활성 상태일 수 있습니다. 이전에 다른 가속 도구를 설치했다면 먼저 연결을 끊고 설정하세요. 그렇지 않으면 새 클라이언트가 '다른 VPN이 사용 중'이라는 메시지를 반복해서 띄워 연결 실패처럼 보입니다.
2단계: 구독 링크 가져오기
구독 링크는 계정 자격 증명이지 평범한 주소가 아닙니다. 노드 주소와 인증 정보가 담겨 있어 누구든 확보하면 트래픽을 소모할 수 있으므로, 단체 대화방에 올리거나 공용 클립보드 도구로 옮기지 마세요.
- 패널에서 구독 링크를 처음부터 끝까지 복사합니다. 링크가 대체로 길어 끝부분이 잘리는 것이 업데이트 실패의 가장 흔한 원인입니다.
- 클라이언트를 열고 '구독', '그룹' 또는 '설정' 항목을 찾아 새 그룹을 만듭니다. 이름은 지역이나 용도에 맞춰 나중에 구분하기 쉽게 짓습니다.
- 링크를 주소 입력란에 붙여넣고 저장한 뒤 '구독 업데이트'를 누릅니다. 일부 클라이언트는 클립보드에서 바로 가져오거나 QR 코드로 가져오기를 지원하며, 읽어 들이는 링크는 동일합니다.
- 업데이트가 끝나면 노드 목록에 회선이 표시됩니다. 항목과 지역은 구독 내용을 기준으로 하며, 하나도 나타나지 않으면 구독을 가져오지 못한 것이므로 이전 단계로 돌아가 확인합니다.
링크가 온전한지, 기기 시간이 자동 동기화되는지(시간 오차가 크면 TLS 핸드셰이크가 바로 실패합니다), 현재 네트워크에서 구독 주소에 접근할 수 있는지. 세 가지가 모두 정상이라면 네트워크를 바꿔 다시 시도합니다.
구독 내용은 회선 조정에 따라 바뀌지만 노드 목록이 스스로 갱신되지는 않습니다. 특정 회선이 연결되지 않는다면 먼저 구독을 수동으로 한 번 업데이트한 뒤 노드 자체의 문제인지 판단하세요. 불필요한 재설치를 크게 줄일 수 있습니다.
3단계: VPN 권한 허용 후 연결
안드로이드의 VPN 권한은 시스템이 일괄 관리합니다. 클라이언트는 VpnService를 통해 기기의 IP 계층 트래픽을 처리하므로 사용자가 직접 동의해야 하며, 앱이 몰래 켤 수는 없습니다. 이 단계에서 권한을 거부해도 오류가 나지 않고 '연결을 눌렀는데 아무 일도 일어나지 않는' 형태로만 나타납니다.
- 노드 목록에서 회선 하나를 선택하고 연결을 누릅니다.
- 시스템이 '연결 요청' 대화상자를 띄우면 VPN 아이콘과 클라이언트 이름이 표시됩니다. '항상 허용'을 체크한 뒤 확인을 누릅니다.
- 상태 표시줄에 열쇠 또는 VPN 표시가 나타나면 터널이 연결된 것입니다.
- 클라이언트 첫 화면으로 돌아가 업로드·다운로드 트래픽 카운터가 변하는지 확인합니다. 숫자가 움직이지 않으면 트래픽이 실제로 프록시를 타지 않는 것입니다.
나중에 권한을 확인하거나 취소하려면 시스템 설정 → 네트워크 및 인터넷 → VPN에서 이 구성을 찾아 삭제하면 취소됩니다. 한 계정으로 여러 기기를 동시에 사용해도 문제없으며, VPNDH 요금제는 기기 수를 제한하지 않으므로 각 기기에서 위 과정을 한 번씩 거치면 됩니다.
4단계: 배터리 최적화 예외와 백그라운드 유지
안드로이드의 배터리 절약 정책은 화면이 꺼지면 백그라운드 프로세스를 정지시키고 VPN 터널도 함께 끊깁니다. 증상은 아주 뚜렷합니다. 방금 연결했을 때는 멀쩡하다가 화면을 잠그고 10여 분 뒤 다시 켜면 모든 앱이 로딩만 돌고 있습니다.
- 시스템 설정 → 앱 → 클라이언트 찾기 → 배터리 → '제한 없음' 선택, 또는 해당 앱의 배터리 최적화를 해제합니다.
- 제조사 커스텀 시스템(MIUI / HyperOS, ColorOS, OriginOS, HarmonyOS 등)은 '자동 시작'과 '백그라운드 활동' 권한을 따로 켜야 합니다.
- 최근 작업 목록에서 클라이언트를 잠가 두어 한 번에 정리할 때 함께 지워지지 않게 합니다.
- 오래 켜 두어야 한다면 시스템의 '항상 켜져 있는 VPN'을 켜고 클라이언트를 해당 구성으로 지정하면, 연결이 끊겼을 때 시스템이 자동 재연결을 시도합니다.
터널이 시스템에 의해 끊긴 상황이라면 어떤 회선으로 바꿔도 마찬가지로 끊깁니다. 먼저 배터리 정책을 확인하고 그다음 회선 품질을 판단해야 하며, 순서를 바꾸면 헛수고만 하게 됩니다.
5단계: 연결 상태 확인
연결에 성공했다고 설정이 맞는 것은 아닙니다. 터널이 열려도 분할 규칙, DNS 설정, IPv6 우선순위 때문에 트래픽이 프록시를 우회할 수 있습니다. 최소한 네 가지를 확인하세요. 출구 IP, DNS 조회 경로, 분할 규칙이 의도대로 동작하는지, 연결이 끊긴 뒤 복구되는지입니다.
- ✅ 해외 사이트를 열었을 때 페이지가 끝까지 로드되고 이미지와 스크립트가 타임아웃되지 않습니다.
- ✅ IP 조회 사이트에서 보이는 출구 지역이 선택한 회선의 지역과 일치합니다.
- ✅ DNS 조회 결과가 로컬 통신사 주소가 아니라 노드 측 리졸버로 표시됩니다.
- ✅ 분할 규칙을 쓰는 경우 국내 사이트는 여전히 직접 연결로 열리고, 해외 사이트는 프록시를 탑니다.
- ❌ 출구 IP가 여전히 로컬 주소: 터널이 트래픽을 실제로 넘겨받지 못한 것이므로 3단계로 돌아가 권한을 확인합니다.
- ❌ DNS 조회에 로컬 통신사 주소가 표시됨: DNS 누수가 있는 것이므로 DNS를 원격 조회로 바꾸거나 클라이언트 내장 DNS를 사용합니다.
DNS 누수는 어떻게 생기는가
프록시가 TCP와 UDP 트래픽을 넘겨받아도 DNS 조회는 다른 경로로 나갑니다. 클라이언트가 도메인 조회를 시스템에 넘기고 시스템이 다시 로컬 통신사로 보내면, 조회는 프록시 바깥에서 일어납니다. 이것이 DNS 누수입니다. 당장 인터넷이 끊기지는 않지만 '해외 회선에 연결됐다'는 사실의 가치를 떨어뜨립니다.
처리 방법은 두 가지입니다. 클라이언트 DNS를 원격 조회로 설정해 도메인이 노드 측에서 해석되게 하거나, 클라이언트에 내장된 DNS와 분할 규칙 세트를 사용하는 것입니다. 설정을 바꾼 뒤 DNS 조회를 다시 해 봤을 때 결과에 여전히 로컬 통신사 주소가 나오면 설정이 적용되지 않은 것입니다.
IPv6 때문에 생기는 '일부 앱이 프록시를 안 타는' 현상
노드는 IPv4 출구만 제공하는데 기기에서 IPv6가 켜져 있으면, 일부 앱이 IPv6 직접 연결을 우선시해 마치 앱이 스스로 프록시를 우회한 것처럼 보입니다. 해결책은 클라이언트에서 IPv6 아웃바운드를 끄거나, 시스템 APN 설정에서 IPv6를 끈 뒤 클라이언트를 한 번 재시작하는 것입니다.
자주 막히는 지점 대조표
아래 표는 처음 설정할 때 가장 자주 만나는 다섯 가지 증상을 정리한 것입니다. 증상으로 원인을 찾는 편이 항목마다 재설치하는 것보다 빠릅니다.
| 증상 | 흔한 원인 | 해결 |
|---|---|---|
| 구독 업데이트 실패 | 링크 잘림, 기기 시간 오차, 현재 네트워크에서 구독 주소 접근 불가 | 처음부터 끝까지 다시 복사, 자동 시간 동기화 켜기, 네트워크를 바꿔 재시도 |
| 연결됨으로 표시되지만 트래픽 없음 | VPN 권한을 허용하지 않았거나 다른 VPN이 활성 상태 | 시스템 VPN 설정에서 확인, 다른 VPN을 먼저 해제 |
| 화면을 잠근 뒤 일정 시간이 지나면 끊김 | 배터리 절약 정책이 백그라운드 프로세스를 정지 | 배터리 최적화 해제, 자동 시작과 백그라운드 활동 허용 |
| 국내 사이트가 열리지 않거나 매우 느림 | 분할 규칙이 전역 프록시로 설정됨 | 'LAN 및 중국 본토 주소 우회'로 되돌리기 |
| 일부 앱만 프록시를 타지 않음 | 앱이 IPv6를 우선 사용하거나 자체 네트워크 스택을 내장 | IPv6 아웃바운드를 끈 뒤 클라이언트 재시작 |
대조해 봐도 연결되지 않는다면 클라이언트 버전, 선택한 프로토콜, 오류 메시지 원문을 기록해 두고 도움말 센터의 분할 규칙과 DNS 관련 설명을 확인하세요. 클라이언트를 반복해서 재설치하는 것보다 훨씬 효과적입니다.
회선 선택과 요금제 조합
구독을 받아 오면 노드 목록에 전용선, 중계, 직결 세 가지 회선이 섞여 있고 클라이언트가 라벨로 표시합니다. 세 가지의 차이는 '빠르냐'가 아니라 경로가 어떻게 지나가는지에 있습니다.
- 전용선(IEPL): 통신사급 점대점 링크를 사용해 피크 시간대에도 흔들림이 적어, 화상 회의나 원격 데스크톱처럼 오래 켜 두는 상황에 적합합니다.
- 중계: 중계 노드에 먼저 접속한 뒤 해외로 나가므로 경로는 조금 돌아가지만 연결 안정성이 더 높습니다.
- 직결: 착지 지점에 바로 연결하므로 지연은 물리적 거리에 좌우되며, 속도에 민감하고 안정성 요구는 보통인 용도에 적합합니다.
110+ 국가, 150+ 회선을 운용합니다. 지역이 많다고 해서 모든 회선이 빠른 것은 아니므로 용도에 맞춰 고르는 편이 지역만 보고 고르는 것보다 현실적입니다. 화상 회의와 AI 도구처럼 긴 연결이 필요한 경우에는 전용선을 우선하고, 단순한 웹 서핑과 영상 시청이라면 직결이나 중계로 충분합니다. 전체 목록은 회선 목록에서 지역과 유형으로 필터링할 수 있습니다.
트래픽은 개통일 기준으로 매월 초기화되며, 중간에 업그레이드하면 차액을 남은 일수로 환산합니다. 월 구독은 세 가지입니다. ¥9.9에 60GB, ¥18에 250GB, ¥28에 500GB. 사용량이 많지 않다면 트래픽 패키지 ¥158/300GB, ¥358/1000GB, ¥658/3000GB를 쓰는 만큼만 소진할 수 있고 기간 만료가 없어 매월 초기화되지 않습니다. 결제는 Alipay, WeChat Pay, USDT를 지원하며 가입에 이메일 주소가 필요 없고 사용자 이름과 비밀번호만 있으면 됩니다. 설정은 요금제 페이지에서 주문한 뒤 바로 시작할 수 있습니다.