「안드로이드 VPN 추천」을 검색하는 사람은 대개 이미 클라이언트를 한두 개 써 본 상태입니다. 설치하고 연결하고 낮에는 잘 쓰다가, 다음 날 아침 알림창의 연결 아이콘이 사라진 것을 발견하죠. 문제는 대개 프로토콜이 아니라, 오래 살아 있는 백그라운드 서비스를 시스템이 어떻게 다루는지에 있습니다. 안드로이드는 Doze부터 백그라운드 실행 제한, 제조사별 배터리 관리까지 단계마다 사용 중이 아닌 것처럼 보이는 프로세스를 회수합니다. 이 글은 백그라운드 유지, 앱별 프록시, 배터리 사용량 세 축으로 비교하고 마지막에 그대로 따라 할 수 있는 설정 목록을 제시합니다. 모든 비교는 재현 가능한 점검 항목으로 진행하며, 확인할 수 없는 수치는 제시하지 않습니다.
먼저 구분할 것: 연결되는가, 그리고 얼마나 오래 유지되는가
연결 실패와 연결 끊김은 다른 문제이고 점검 방향도 정반대입니다. 전자는 프로토콜과 구독, 회선이 사용 가능한지를 봅니다. 후자는 절전 정책과 백그라운드 권한, 네트워크 전환을 봅니다. 둘을 섞어 놓으면 '프로토콜을 세 번 바꿔도 계속 끊기는' 악순환이 생깁니다.
끊김은 보통 세 가지로 나타납니다. 첫째, 화면을 끄고 한참 두면 모든 앱이 요청 시간 초과가 되고 화면을 켜고 몇 초 지나면 저절로 회복됩니다. 시스템이 프로세스를 동결한 경우입니다. 둘째, 실내 Wi-Fi에서 밖으로 나가 이동통신으로 바뀔 때 연결이 자동으로 복구되지 않고 한 번 직접 다시 연결해야 합니다. 긴 연결이 네트워크를 갈아탈 때 끊긴 경우입니다. 셋째, 알림창 아이콘은 사라졌는데 시스템 설정에는 연결이 성립된 것으로 표시됩니다. 대개 남아 있는 터널 인터페이스이고, 트래픽은 이미 로컬 네트워크로 돌아간 상태입니다.
터널이 살아 있는지 판단할 때는 클라이언트 화면이 아니라 실제 출구를 봐야 합니다. 끊긴 것 같을 때는 회선을 거칠 때만 열리는 주소에 접속해 보세요. 즉시 실패하면 터널은 이미 끊긴 것이고, 여전히 열린다면 연결이 살아 있는 것이 아니라 앱 계층 캐시나 분할 규칙이 통과시킨 것일 가능성이 큽니다.
백그라운드 유지: 세 층을 모두 설정해야 끊기지 않습니다
안드로이드의 절전 메커니즘은 세 층입니다. 시스템 차원의 Doze와 앱 대기, 앱 차원의 백그라운드 실행 제한, 제조사가 따로 만든 배터리 관리입니다. 세 층은 각각 독립적이라 한 층만 손보면 밤에 끊기는 문제는 그대로 나타납니다.
-
클라이언트를 배터리 최적화 예외에 추가
경로는 보통 '설정 → 앱 → 특수 앱 권한 → 배터리 최적화'이고, 필터를 '모든 앱'으로 바꾼 뒤 클라이언트를 찾아 '최적화하지 않음'을 선택합니다. Android 6에서 도입된 Doze는 화면이 꺼지면 네트워크 접근과 깨우기를 미루기 때문에, 예외 목록이 지금으로서는 가장 안정적인 면제 방법입니다. 일부 제조사는 이 항목을 '배터리 → 앱 전력 관리'에 넣어 두고 이름도 배터리 최적화가 아닌 경우가 있으니, '백그라운드 활동 허용' 같은 스위치를 찾으면 됩니다.
-
제조사의 자동 시작과 백그라운드 실행 권한 켜기
자동 시작, 연관 시작, 백그라운드 실행은 시스템마다 이름이 다르지만 역할은 같습니다. 프로세스가 회수된 뒤에 다시 띄울 수 있는지 여부입니다. 이 층은 포그라운드 서비스 자체에는 영향을 주지 않지만, 종료된 뒤 스스로 돌아올 수 있는지를 결정합니다.
-
상시 알림을 유지하고 최근 작업 목록에서 잠그기
VpnService 기반 클라이언트는 포그라운드 서비스로 동작해야 하고, 알림이 그 가시성 증빙입니다. 알림 권한을 끄면 일부 기종은 서비스를 보이지 않는 것으로 판단해 회수를 앞당기므로, '알림창을 깔끔하게' 만들려고 끄는 것은 권하지 않습니다. 또한 최근 작업 목록에서 클라이언트를 잠가 두면 일괄 정리할 때 잘못 종료되는 일을 줄일 수 있습니다.
-
절전 모드가 이 앱만 따로 제한하지 않는지 확인
적지 않은 시스템이 '자주 쓰지 않는 앱'을 따로 동결하고, 저전력 모드에서 백그라운드 데이터를 제한합니다. 클라이언트를 제한 없음 목록에 넣고, 절전 모드가 백그라운드 데이터를 추가로 제한하지 않는지도 확인하세요.
네 단계를 마치면 밤에 끊기는 문제는 대부분 사라집니다. 그래도 끊긴다면 두 가지를 먼저 의심하세요. 하나는 저전력 모드에서 시스템이 백그라운드 데이터를 일괄 차단하는 경우, 다른 하나는 같은 VpnService 기반 클라이언트를 함께 설치해 서로 자리를 다투는 경우입니다.
앱별 프록시: 필요한 앱으로 터널 범위 좁히기
Android의 VpnService는 허용 목록과 제외 목록 두 가지 앱 목록을 제공하고, 클라이언트는 이를 기준으로 어떤 앱의 트래픽이 터널로 들어가고 어떤 앱이 로컬 네트워크를 쓰는지 정합니다. 이것이 앱별 프록시입니다. 쓰임은 두 가지입니다. 불필요한 우회를 줄여 배터리를 아끼고, 일부 앱이 출구 지역 변화로 위험 감지를 트리거하지 않게 합니다.
목록은 두 가지로 쓸 수 있습니다. 허용 목록은 '선택한 앱만 프록시'로, 체크한 앱만 터널을 지납니다. 제외 목록은 '선택한 앱 제외'로, 기본은 전부 터널을 지나고 필요 없는 앱만 빼는 방식입니다. 일상에서는 제외 목록을 권합니다. 허용 목록은 시스템 구성 요소를 빠뜨리기 쉬워 다운로드 관리자, 푸시, 앱 내 업데이트가 들쭉날쭉해지고 원인을 찾는 데 시간이 많이 듭니다. 클라이언트의 메뉴 이름은 보통 '앱별 프록시' 또는 '앱 분할'입니다.
| 앱 종류 | 권장 | 이유 |
|---|---|---|
| 은행·결제 앱 | 제외 | 출구 지역이 자주 바뀌면 추가 인증이 걸리기 쉬워 로컬 네트워크가 편합니다 |
| 앱 스토어·시스템 업데이트 | 제외 | 다운로드량이 많아 로컬 대역폭이 더 빠르고 구독 트래픽도 쓰지 않습니다 |
| 화면 미러링, 프린터, 공유기 관리 | 제외 | 사설 대역에 접근하는 트래픽이라 애초에 터널로 갈 필요가 없습니다 |
| 생활·국내 서비스 | 필요에 따라 제외 | 우회를 줄여 깨우기 횟수와 소모 전력을 낮춥니다 |
| 해외 스트리밍·개발 도구 | 프록시 | 출구 지역을 고정해야 하고 연결 안정성에 민감합니다 |
| 메신저·푸시 | 프록시 | 긴 연결에는 안정적인 출구가 필요하고, 잦은 전환은 메시지 지연을 만듭니다 |
특정 앱을 제외하면 그 앱의 조회와 연결은 모두 로컬 네트워크를 지납니다. 이는 의도된 동작이며 유출이 아닙니다. 실제로 확인할 것은 터널을 지나는 쪽입니다. 클라이언트가 사용자 지정 DNS를 허용한다면 조회를 터널 안으로 지정하고, 조회 테스트로 결과가 로컬 통신사로 떨어지지 않는지 확인하세요.
배터리 사용량: 프로토콜과 하트비트의 균형
소모 전력은 세 가지로 구성됩니다. 무선 모듈이 깨어나는 횟수, 암복호화 비용, 그리고 패킷 손실 뒤의 재전송입니다. 셋 중 가장 쉽게 간과되는 것은 첫 번째입니다. 하트비트와 재연결이 기기를 잠에서 깨우는 비용은 암복호화 자체보다 큰 경우가 많습니다.
암복호화 비용
최신 ARM 프로세서는 대부분 AES 명령 확장을 갖추고 있어 AES 계열 암호화의 추가 비용은 작습니다. 하드웨어 가속이 없는 환경에서는 ChaCha20 같은 스트림 암호가 오히려 더 가볍습니다. 안드로이드 기기에서는 이 항목이 대개 전력 소모의 주원인이 아닙니다. 기기가 오래되었거나 암호화 연결을 여러 개 동시에 돌리는 경우는 예외입니다.
하트비트와 재연결
하트비트 간격이 짧을수록 중간 장비가 유휴로 판단해 회수할 가능성은 줄지만 깨우는 횟수는 늘어납니다. TCP 계열 프로토콜은 네트워크를 바꾸면 핸드셰이크를 다시 해야 하고, 재연결 자체에 한 번의 완전한 연결 수립 비용이 듭니다. QUIC 계열인 Hysteria2와 TUIC는 연결 마이그레이션을 지원해 네트워크를 바꿔도 핸드셰이크를 다시 하지 않으므로 이동통신 환경에서 더 매끄럽습니다.
UDP의 현실적인 문제
QUIC 계열 프로토콜은 모두 UDP 위에서 동작합니다. 일부 네트워크는 UDP를 속도 제한하거나 아예 버리는데, 이때 클라이언트는 계속 재전송하므로 전력 소모가 TCP 계열보다 오히려 커집니다. 판단 방법은 간단합니다. 같은 회선에서 프로토콜을 바꿔 가며 화면이 꺼진 상태의 방전 속도와 재연결 빈도를 보면 되고, 더 안정적인 쪽을 쓰면 됩니다.
결론: Wi-Fi가 고정되어 있고 패킷 손실이 뚜렷한 환경에서는 QUIC 계열을, 출퇴근 위주로 전력 절약이 우선인 상황에서는 TCP 계열을 먼저 고려하세요. 프로토콜은 효율에 영향을 주지만 전력 소모의 큰 몫은 백그라운드 깨우기입니다. 유지 설정을 정리하기 전에는 프로토콜을 바꿔도 개선 폭이 제한적입니다.
프로토콜과 클라이언트: 안드로이드 기준 비교
프로토콜은 핸드셰이크 방식과 전송 계층을 정하고, 클라이언트는 구독을 어떻게 가져오고 앱별 프록시를 어떻게 설정하는지를 정합니다. 둘은 나눠서 봐야 하며, 클라이언트의 성능으로 프로토콜의 좋고 나쁨을 추정해서는 안 됩니다.
| 프로토콜 | 전송 | 안드로이드 주의점 |
|---|---|---|
| Shadowsocks | TCP / UDP | 비용이 작고 핸드셰이크가 빠릅니다. UDP는 서버에서 열어 두어야 하며, 그렇지 않으면 음성·게임 트래픽이 통하지 않습니다 |
| VMess | TCP / WebSocket / gRPC | 기기 시간에 의존하므로 시간 오차가 크면 핸드셰이크가 바로 실패합니다. 자동 시간 동기화가 켜져 있는지 먼저 확인하세요 |
| Trojan | TLS, 보통 443 | 일반 HTTPS와 같은 포트를 씁니다. 설정의 도메인이 인증서와 일치해야 하며, 그렇지 않으면 핸드셰이크가 거부됩니다 |
| VLESS | TLS / REALITY | 자체 암호화는 하지 않고 보안은 외부 TLS가 담당합니다. 비용이 VMess보다 낮아 장시간 연결에 적합합니다 |
| Hysteria2 | QUIC(UDP) | 약한 네트워크에서 회복이 빠르고 네트워크를 바꿔도 재연결이 필요 없습니다. UDP가 제한되면 성능이 눈에 띄게 나빠집니다 |
| TUIC | QUIC(UDP) | 연결 마이그레이션을 지원하지만 UDP 품질에 민감해 네트워크 상태가 좋은 환경에 적합합니다 |
클라이언트 쪽은 v2rayNG, NekoBox, sing-box 계열과 Clash Meta 계열 모두 구독 링크를 그대로 지원합니다. 가져오는 방법은 두 가지입니다. 구독 주소를 복사한 뒤 클라이언트에서 '클립보드에서 가져오기'를 선택하거나, QR 코드를 바로 스캔하면 됩니다. 구독 링크는 계정 비밀번호가 아니라 설정 묶음이므로 기기를 바꿀 때 같은 링크를 다시 가져오면 되고, 회선이 갱신되면 클라이언트에서 구독을 직접 업데이트하면 됩니다. 더 자세한 가져오기 절차는 사용 가이드에서 확인할 수 있습니다.
구독 링크는 자격 증명과 같으니 공개 그룹이나 스크린샷에 올리지 마세요. 외부에 노출된 것을 발견하면 빠르게 교체하고, 이전 링크를 채팅 기록에 남겨 두지 마세요.
일주일 자가 점검 목록
아래 목록은 '설치 후 첫 주'의 실제 사용 순서대로 정리했습니다. 별도 도구 없이 하나씩 확인하면 됩니다.
- ✅ 화면을 끄고 하룻밤 두어도 알림창의 연결 아이콘이 남아 있고, 해외 사이트를 열 때 직접 다시 연결할 필요가 없습니다
- ✅ Wi-Fi에서 이동통신으로 바꿨다가 다시 돌아와도 몇 초 안에 자동으로 복구되고, 앱을 다시 시작할 필요가 없습니다
- ✅ 앱별 프록시 목록이 의도와 같습니다. 제외한 앱에서 확인한 출구 주소가 로컬 주소입니다
- ✅ 터널을 지나는 앱의 조회 결과가 터널 안에서 지정한 DNS로 떨어지고, 로컬 통신사로 새지 않습니다
- ✅ 구독을 갱신한 뒤 회선 목록이 정상적으로 바뀌고, 이전 설정이 겹겹이 쌓이지 않고 교체됩니다
- ❌ 알림 권한이 꺼져 있거나, 클라이언트가 여전히 '최적화' 상태입니다
- ❌ VpnService 기반 클라이언트를 두 개 동시에 켜 서로 자리를 다투고 있습니다. 같은 시각에 하나만 동작할 수 있습니다
- ❌ 일괄 정리로 백그라운드를 비운 뒤 자동 재연결이 되지 않고, 어떤 예외 목록에도 들어 있지 않습니다
선택 기준: 안드로이드에서 확인할 항목
안드로이드의 선택 순서는 데스크톱과 다릅니다. 데스크톱은 프로토콜과 클라이언트 기능을 먼저 보지만, 안드로이드는 회선 유형과 백그라운드 유지의 궁합을 먼저 보고 그다음 트래픽과 과금 방식을 봅니다.
회선 유형이 지터를 좌우합니다. IEPL 전용선, 중계, 직결의 차이는 중간에 공용 네트워크를 몇 구간 지나느냐에 있습니다. 전용선은 통제 가능한 구간을 좁히고, 중계는 입구에서 한 번 포워딩하며, 직결은 공용 인터넷 라우팅에 전적으로 의존합니다. 이동통신 자체의 지터가 큰 만큼, 전용선의 가치는 회선 쪽 변수를 먼저 줄여 준다는 데 있습니다.
트래픽과 과금 방식은 사용 습관에 맞춰 고르세요. 자주 영상을 보고 클라이언트를 늘 켜 두는 편이라면 월 구독이 낫습니다. ¥9.9 매월 60GB, ¥18 매월 250GB, ¥28 매월 500GB이며, 트래픽은 개통일 기준으로 매월 초기화되고 중간에 업그레이드하면 차액이 남은 일수로 환산됩니다. 가끔 쓰거나 출장 기간에만 쓴다면 트래픽 패키지가 유리합니다. ¥158 300GB, ¥358 1000GB, ¥658 3000GB이며, 다 쓸 때까지 유효하고 기간이 만료되지 않습니다.
가입 절차도 한번 볼 만합니다. VPNLS는 이메일 주소가 필요 없고 사용자 이름과 비밀번호만으로 개통되며, 결제는 Alipay, WeChat 또는 USDT로 진행됩니다. 본 서비스는 로그를 기록하지 않으며, 이 점은 프로토콜이 하나 더 있는 것보다 선택할 때 더 의미가 있습니다.
선택 결론: 안드로이드의 안정성 순서는 대략 백그라운드 유지 설정, 회선 유형, 프로토콜, 클라이언트입니다. 배터리 최적화와 알림 권한을 먼저 정리하고 프로토콜을 논하세요. 순서가 뒤바뀌면 어떤 프로토콜로 바꿔도 밤에 한 번은 끊깁니다. 하나만 한다면 클라이언트를 배터리 최적화 예외에 넣고 상시 알림을 유지하는 것, 두 가지를 한다면 앱별 프록시 제외 목록까지 더하는 것입니다.