1. VPN 상시 실행과 배터리 소모 원인 구분하기

안드로이드 상태 표시줄에 VPN 아이콘이 보인다는 것은 시스템에 VPN 인터페이스가 연결되었다는 뜻이지, CPU가 계속 최대 부하로 작동한다는 의미는 아닙니다. Clash Meta나 mihomo 커널을 탑재한 다른 안드로이드 클라이언트를 사용할 때 표시되는 포그라운드 서비스 알림은 보통 프록시 서비스를 유지하기 위한 것입니다. 알림을 숨겨도 트래픽 처리가 자동으로 중단되지는 않습니다. 배터리 소모를 판단할 때는 알림이 계속 표시되는지만 볼 것이 아니라 같은 시간대의 배터리 잔량 변화, 실제 트래픽, 로그를 함께 확인하세요.

안드로이드 배터리 사용량 통계에는 VPN을 통해 전달된 네트워크 사용량 일부가 VPN 앱의 소모량으로 잡힐 수도 있습니다. 통계 기준은 Android 버전과 제조사마다 다릅니다. 따라서 앱 배터리 사용량 순위에서 클라이언트가 1위라는 사실만으로 커널 이상을 단정할 수는 없습니다. 백그라운드 사진 업로드, 동영상 미리 불러오기, 시스템 업데이트도 클라이언트 연결 목록에서 지속적인 트래픽으로 나타날 수 있습니다.

먼저 다음 네 가지를 기록하세요

  • 시스템 및 커널: ‘설정’ → ‘휴대전화 정보’에서 Android 버전을 확인하고, 클라이언트의 ‘정보’ 또는 커널 정보 화면에서 클라이언트 버전과 mihomo 버전을 기록하세요. 두 버전 번호는 서로 다릅니다.
  • 배터리 소모 시간대: ‘설정’ → ‘배터리’ → ‘배터리 사용량’에서 통계 기간을 확인하세요. 충전 전후 데이터가 섞이지 않도록 합니다.
  • 네트워크 상태: Wi-Fi 또는 모바일 네트워크 여부, 신호 세기, 기지국을 자주 전환하는지 기록하세요. 신호가 약하면 무선 통신에 드는 전력이 프록시 처리보다 더 클 수 있습니다.
  • 발생 증상: 지속적인 발열, 화면이 꺼진 뒤 연결 끊김, 네트워크 전환 후 재연결, 로그 화면을 열었을 때만 배터리 소모가 늘어나는 경우를 구분하세요.

2. 동일한 시간대를 정해 배터리 소모 비교하기

백그라운드 권한, DNS, 프록시 노드를 한꺼번에 바꾸지 마세요. 한 번에 조건 하나만 변경해야 차이가 생긴 원인을 파악할 수 있습니다. 신호가 안정적인 동일 Wi-Fi를 사용하고, 다운로드 중인 앱은 종료하며, 화면 밝기와 테스트 시간을 일정하게 유지하세요. 아래 시간은 문제를 점검하기 위한 기준일 뿐, 실제 기기 측정 결과나 정상 배터리 소모량의 공통 기준이 아닙니다.

테스트 단계방법 및 시간기록할 내용
시스템 기준값프록시 서비스를 중지하고 화면을 끈 채 60분간 대기시작·종료 시 배터리 잔량, 네트워크 유형, 백그라운드 작업 여부
프록시 유휴 상태기존 설정을 켜고 화면을 끈 채 60분간 대기시작·종료 시 배터리 잔량, 총 트래픽, 재연결 횟수
일정한 부하같은 화질로 동일한 동영상을 30분간 재생발열 여부, 연결 안정성, 클라이언트 트래픽
항목별 재테스트설정 하나만 바꾸고 해당 단계 반복변경한 설정, 오류 로그가 사라졌는지 여부

배터리 잔량은 대략적인 수치입니다. 한 번의 테스트에서 차이가 1%포인트뿐이라면 설정 효과가 있다고 보기 어렵습니다. 비슷한 조건에서 두 차례 더 테스트해 보세요. 테스트 중에는 충전하거나 화면 녹화를 켜지 마세요. 프록시를 중지한 뒤 시스템에서 ‘VPN 연결 없이 차단’을 사용 중이라면 먼저 설정을 기록하고 일시적으로 끄세요. 그렇지 않으면 기준 테스트에서 인터넷이 완전히 차단되어 정상 연결 상태와 직접 비교할 수 없습니다.

연결 목록에서 백그라운드 트래픽 원인 찾기

클라이언트의 ‘연결’ 화면에서 화면을 끄기 전부터 트래픽이 계속 증가하는 연결을 확인하세요. 먼저 클라우드 동기화, 사진 백업, 앱 스토어 업데이트를 일시 중지한 뒤 다시 테스트합니다. 클라이언트에 따라 앱 이름이 표시되기도 하고 대상 도메인이나 IP만 표시되기도 합니다. 여러 서비스가 공유하는 CDN 도메인 하나만으로 특정 앱을 단정하지 마세요. 유휴 상태에서 트래픽은 거의 없는데 발열이 계속되면 오류 재시도, 속도 측정 작업, 로그를 확인하세요.

3. 배터리 최적화 예외: 연결 끊김 해결용이지 배터리 절약 기능은 아닙니다

클라이언트를 ‘제한 없음’으로 설정하는 주된 목적은 시스템이 백그라운드에서 프록시 서비스를 정지하거나 종료하는 일을 줄이는 것입니다. 배터리 소모가 줄어드는 것은 보장되지 않으며, 오히려 백그라운드 앱의 네트워크 사용이 더 오래 지속될 수 있습니다. 화면을 끄면 서비스가 사라지거나 알림이 반복해서 다시 만들어지거나, 화면을 켠 뒤 연결이 한꺼번에 복구되는 경우에 우선 백그라운드 제한을 점검하세요.

브랜드와 시스템 버전에 따라 메뉴가 다를 수 있습니다. 아래는 일반적인 경로입니다. 메뉴를 찾기 어렵다면 시스템 설정에서 ‘배터리 최적화’, ‘백그라운드 활동’ 또는 ‘자동 시작’을 검색하세요. 홈 화면에서 클라이언트 아이콘을 길게 눌러 ‘앱 정보’로 이동하는 방법이 대체로 가장 안정적입니다.

시스템 또는 브랜드일반적인 설정 경로확인할 항목
Pixel / 순정 Android에 가까운 기기‘설정’ → ‘앱’ → 클라이언트 → ‘앱 배터리 사용량’ → 백그라운드 사용 허용. 일부 버전에서는 ‘제한 없음’을 선택할 수 있습니다.Android 버전에 따라 메뉴 이름이 ‘배터리’ 또는 ‘백그라운드 사용’으로 표시될 수 있습니다.
샤오미 / Redmi‘설정’ → ‘앱 설정’ → ‘앱 관리’ → 클라이언트 → ‘배터리 절약’ → ‘제한 없음’‘백그라운드 자동 시작’도 확인하세요. 최근 앱 화면에서 앱을 잠그는 것만으로는 배터리 정책을 대체할 수 없습니다.
화웨이 / Honor‘설정’ → ‘앱 및 서비스’ 또는 ‘앱’ → ‘앱 시작 관리’ → 클라이언트 → 자동 관리 끄기필요에 따라 자동 시작, 연결 실행, 백그라운드 활동을 허용하세요. 일부 Honor 기기에서는 메뉴 이름이 다릅니다.
OPPO / OnePlus / realme아이콘 길게 누르기 → ‘앱 정보’ → ‘배터리 사용 관리’ 또는 ‘배터리 소모 관리’ → 백그라운드 활동 허용재부팅 후 자동으로 다시 실행해야 한다면 자동 시작 관리도 확인하세요.
vivo / iQOO‘설정’ → ‘배터리’ → ‘백그라운드 배터리 사용 관리’ → 클라이언트 → 백그라운드에서 배터리 사용 허용‘앱’ → ‘권한 관리’에서 자동 시작 옵션도 확인하세요.
Samsung One UI‘설정’ → ‘애플리케이션’ → 클라이언트 → ‘배터리’ → ‘제한 없음’‘배터리’ → ‘백그라운드 사용 제한’에서 절전 모드 앱 목록에 포함되어 있는지 확인하세요.

상시 VPN과 백그라운드 권한은 별도로 확인

순정 Android에서 흔히 사용하는 경로는 ‘설정’ → ‘네트워크 및 인터넷’ → ‘VPN’ → 클라이언트 옆의 설정 버튼입니다. ‘항상 켜짐 VPN’은 지정한 VPN 연결을 유지하고, ‘VPN 연결 없이 차단’은 VPN을 우회하는 네트워크 연결을 제한합니다. 배터리 절약 기능도 아니고 구독 오류를 해결하는 방법도 아닙니다. 클라이언트가 해당 기능을 지원하지 않으면 옵션을 사용할 수 없을 수 있습니다.

먼저 일반적인 백그라운드 설정에서 클라이언트가 안정적으로 작동하는지 확인한 다음 상시 VPN이 필요한지 판단하세요. 모든 앱을 배터리 최적화 예외로 추가하지 말고, 지속적인 서비스가 필요한 클라이언트만 허용하세요. 설정을 바꾼 뒤 화면을 끄고 60분간 테스트한 다음 Wi-Fi에서 모바일 네트워크로 전환했을 때 연결이 복구되는지도 확인하세요.

4. TUN, 앱별 라우팅 및 재연결 반복 점검하기

안드로이드 클라이언트는 일반적으로 Android VPNService를 통해 시스템 트래픽을 연결합니다. 시스템 권한으로 TUN 장치를 만드는 데스크톱 클라이언트의 방식과는 다릅니다. 화면에 표시되는 ‘TUN’, ‘VPN 모드’, ‘네트워크 스택’의 의미는 클라이언트마다 다를 수 있습니다. Windows의 서비스 모드 설정을 그대로 적용하거나 모든 안드로이드 클라이언트에서 system, gvisor, mixed를 전환할 수 있다고 가정하지 마세요.

먼저 적용 범위를 좁힌 뒤 네트워크 스택 비교하기

  1. 클라이언트에서 앱별 라우팅을 지원한다면 브라우저와 필요한 앱만 포함하는 테스트 범위를 만들어 유휴 트래픽이 줄어드는지 비교하세요. VPN 유형 앱을 여러 개 동시에 켜지 마세요. 로컬 패킷 캡처, 방화벽, 광고 차단 도구도 VPN 슬롯을 사용할 수 있습니다.
  2. 규칙 모드에서 DIRECT는 직접 연결을 사용한다는 뜻이지, 해당 연결이 VPN 인터페이스를 거치지 않는다는 의미는 아닙니다. 특정 앱을 제외하려면 직접 연결 규칙만 추가할 것이 아니라 클라이언트의 앱 우회 기능을 확인하세요.
  3. 네트워크 전환 후 로그에 시간 초과가 계속 나타나면, 먼저 정상 작동이 확인된 다른 노드로 바꾸고 같은 대상에 다시 연결되는지 확인하세요. 사용할 수 없는 노드나 접근할 수 없는 DNS 서버로 인해 재시도가 반복될 수 있습니다.
  4. 클라이언트에 네트워크 스택 선택 옵션이 명시적으로 제공되는 경우에만 호환성을 하나씩 비교하세요. 모든 휴대전화에서 배터리 소모를 가장 낮춰 주는 네트워크 스택은 없습니다. 설정을 바꾼 뒤 웹 페이지, 메신저, UDP 서비스, 절전 모드에서 복귀하는 동작을 함께 확인하세요.

배터리 통계 수치를 낮추려고 VPN을 끈 뒤에도 모든 앱이 프록시를 사용한다고 가정하지 마세요. 7890 같은 HTTP 혼합 포트는 로컬 수신 대기 포트일 뿐입니다. 안드로이드 앱은 해당 포트가 있다는 이유만으로 자동으로 이를 사용하지 않습니다. 앱에서 프록시를 직접 설정하거나 클라이언트가 시스템 트래픽을 가로채야 합니다.

5. DNS, 도메인 스니핑, 상태 점검의 백그라운드 부하

DNS 요청이 실패한 뒤 재시도가 반복되는지 확인하세요. 단순히 DNS 기능을 켜 두는 것보다 재시도 반복이 더 중요합니다. 클라이언트 로그에서 timeout, DNS, network is unreachable를 검색하고 유휴 상태에서도 오류가 계속 발생하는지 확인하세요. 먼저 휴대전화 시간이 정확한지, 네트워크에서 설정된 DNS 서버에 접근할 수 있는지 확인한 다음 DNS 설정을 조정하세요.

fake-ip는 단독으로 배터리를 절약하는 설정이 아닙니다

enhanced-mode: fake-ip는 가상 주소로 도메인 매핑을 유지해 규칙을 적용하기 쉽게 합니다. 모든 요청이 원격 서버로 전송된다는 뜻은 아닙니다. 이름만 보고 redir-host가 배터리를 더 절약한다고 판단할 수도 없습니다. 모드를 임의로 바꾸면 로컬 네트워크 기기 검색이나 실제 DNS 응답에 의존하는 앱에 영향을 줄 수 있으므로 호환성 문제로 다뤄야 합니다.

아래는 필드 예시이며 구독 설정 전체가 아닙니다. 223.5.5.5는 평문 DNS 예시로, 쿼리 노출 방식이 암호화 DNS와 다르고 모든 네트워크에서 접근 가능하다고 보장할 수도 없습니다. 기존 설정에서 nameserver-policy, proxy-server-nameserver 또는 암호화 DNS를 사용한다면 관련 DNS 의존성을 유지하고 설정 전체를 교체하지 마세요.

DNS 필드 예시
dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 223.5.5.5

불필요한 속도 측정 빈도 줄이기

  • 상태 점검: proxy-providers의 health-check.interval과 url-test, fallback 그룹의 interval을 확인하세요. 이 간격은 보통 초 단위입니다. 현재 설정이 60초라면 안정성을 해치지 않는 범위에서 600초로 바꿔 비교해 보세요. 구독 업데이트 간격과 속도 측정 간격을 혼동하지 마세요.
  • 노드 수: 노드 100개를 60초마다 모두 점검하면 이론상 분당 약 100회의 탐색 요청이 발생할 수 있습니다. 실제 횟수는 필요한 경우에만 점검하는지, 노드를 사용하는지에 따라 달라집니다. ‘전체 속도 측정’을 반복하기보다 테스트 대상 노드 수를 줄이는 편이 백그라운드 요청을 제어하기 쉽습니다.
  • 도메인 스니핑: 현재 규칙에서 도메인 확인을 위해 스니핑이 필요하지 않다면 클라이언트의 스니핑 기능을 일시적으로 끄고 다시 테스트하세요. 도메인 복원에 의존하는 규칙은 매칭 결과가 달라질 수 있으므로 배터리 소모만 보지 말고 트래픽 분류도 확인해야 합니다.
  • 로그 수준: 점검을 마친 뒤 log-level을 debug에서 info 또는 warning으로 되돌리고 실시간 로그 화면을 닫으세요. 화면을 켜 둔 모니터링 상태를 일상적인 화면 꺼짐 상태의 배터리 소모 기준으로 삼지 마세요.

6. 증상에 맞춰 설정을 좁히고 재현 가능한 결과 남기기

증상우선 확인할 항목재테스트 방법
화면을 끄면 연결이 끊기고 화면을 켜면 복구됨배터리 최적화, 백그라운드 활동 권한, 절전 대상 앱 목록백그라운드 실행을 허용한 뒤 화면을 끄고 60분간 기다려 알림과 연결이 복구되는지 확인
유휴 상태에서도 트래픽이 계속 발생함백그라운드 동기화, 노드 상태 점검, 앱 업데이트원인으로 의심되는 항목 하나를 일시 중지하고 연결 목록의 트래픽 증가가 멈추는지 확인
네트워크 전환 후 발열 발생노드 연결 가능 여부, DNS 시간 초과, 반복 재연결Wi-Fi를 고정한 뒤 네트워크 전환만 따로 테스트
모바일 네트워크에서만 배터리 소모가 큼신호 세기, 잦은 네트워크 전환, 셀룰러 데이터 전송같은 위치에서 Wi-Fi와 비교하고 커널 문제로 바로 단정하지 않기
로그를 볼 때만 배터리 소모가 큼디버그 로그, 화면 갱신, 화면 밝기일반 로그 수준으로 복원하고 로그 화면을 닫은 뒤 다시 테스트

점검을 마쳐도 되는 기준은 백그라운드 연결이 안정적이고, 유휴 트래픽의 출처를 파악했으며, 오류 로그가 반복되지 않고, 같은 조건에서 배터리 소모 차이를 다시 확인할 수 있는 상태입니다. 모든 기기에 통하는 고정 비율을 찾거나 백그라운드 실행을 유지하려고 절전 제한을 한꺼번에 모두 끄지 마세요.

문제가 계속되면 휴대전화 모델, Android 버전, 클라이언트 및 mihomo 버전, 네트워크 종류, 테스트 시간, 민감한 정보를 가린 오류 로그 일부를 정리하세요. 특정 구독 설정에서만 발생하는지, 노드를 바꾸면 해결되는지도 함께 알려 주세요. 이런 정보가 있으면 클라이언트 문제, 규칙 설정 문제, 네트워크 환경 문제를 구분하는 데 도움이 됩니다. 기본 설정 경로는 입문 가이드에서, 연결 및 DNS 관련 추가 점검은 문제 해결에서 확인할 수 있습니다.