Clash 안드로이드 백그라운드 배터리 소모가 심할 때: 절전 설정과 백그라운드 유지의 균형

VPN을 백그라운드에서 계속 실행해도 반드시 배터리가 빨리 닳는 것은 아닙니다. 비정상적인 소모는 반복 지연 측정이나 제조사 절전 정책으로 인한 강제 종료 후 재연결에서 비롯되는 경우가 많습니다. 배터리 최적화 예외, TUN 설정, 속도 측정 주기를 단계별로 살펴봅니다.

먼저 정상적인 상시 실행인지 비정상적인 배터리 소모인지 확인하세요

Clash, Clash Meta for Android, FlClash 등의 클라이언트는 프록시를 시작한 뒤 Android의 VpnService를 통해 로컬 VPN 인터페이스를 만듭니다. 상태 표시줄에 열쇠 또는 VPN 아이콘이 계속 표시되는 것은 인터페이스가 활성 상태라는 뜻일 뿐, 프로세서가 계속 높은 부하로 작동한다는 의미는 아닙니다. 화면이 꺼진 뒤 안정적인 연결은 보통 포그라운드 서비스, 소량의 연결 상태 정보와 필요한 네트워크 깨우기만 유지합니다.

배터리 소모가 비정상인지 판단하려면 배터리 잔량 감소, 백그라운드 활동 시간, 모바일 네트워크 상태를 함께 확인해야 합니다. 배터리 화면에서 Clash가 상위에 표시된다는 사실만으로 결론을 내릴 수는 없습니다. 일정 시간 동안 주로 이 네트워크 앱 하나만 실행했다면 배터리 소모 비중이 높게 나타나는 것이 자연스럽습니다.

동일한 조건으로 8시간 기준 테스트를 먼저 진행하세요

  1. 배터리를 80% 이상 충전하고 테스트 시작 시간을 기록합니다.
  2. 테스트 중 네트워크를 자주 전환하지 말고 동일한 Wi-Fi 또는 모바일 데이터 환경을 유지합니다.
  3. 동영상 재생, 게임, 클라우드 사진 동기화, 시스템 업데이트처럼 부하가 큰 작업을 종료합니다.
  4. Clash 연결은 유지하되 수동 속도 측정과 설정 편집 화면을 닫고 화면을 잠근 상태로 8시간 둡니다.
  5. 테스트가 끝나면 「설정」→「배터리」→「배터리 사용량」을 열고 Clash의 배터리 소모량, 백그라운드 활동 시간, 시스템 유휴 상태의 배터리 소모를 기록합니다.

배터리 상태가 정상이고 용량이 약 5000 mAh인 기기를 예로 들면, 안정적인 Wi-Fi에서 화면을 잠근 채 8시간 동안 배터리가 2%–5% 감소한 정도는 별도로 조치할 필요가 없는 경우가 많습니다. 10% 이상 감소하거나 배터리 화면에서 클라이언트가 백그라운드에서 계속 높은 부하로 실행 중이라면 지연시간 측정, 재연결 반복, 구독 업데이트, TUN 설정을 추가로 확인하세요. 칩셋, 신호 세기, 시스템 버전, 푸시 알림 수에 따라 결과가 달라지므로 이 수치는 문제 해결을 위한 참고값일 뿐 모든 기기에 적용되는 기준은 아닙니다.

지연시간 측정과 구독 폴링 주기를 우선 줄이세요

백그라운드 배터리 소모의 가장 흔한 원인은 VPN 인터페이스 자체가 아니라 주기적으로 실행되는 네트워크 작업입니다. 정책 그룹의 url-test, fallback, 부하 분산 상태 확인은 일정한 간격으로 테스트 주소에 접속합니다. 노드가 많을수록 한 번의 테스트에서 생성되는 DNS 조회, TCP 연결, TLS 세션도 늘어납니다. 노드 80개가 있는 정책 그룹을 1분마다 테스트하는 경우와 10분마다 테스트하는 경우, 백그라운드 깨우기 횟수가 10배 가까이 차이 날 수 있습니다.

자동 속도 측정 주기를 60초에서 300–600초로 조정하세요

정책 그룹 매개변수를 편집할 수 있는 클라이언트라면 「프로필」→「오버라이드」 또는 「설정」→「프로필 오버라이드」에서 상태 확인 옵션을 살펴보세요. 클라이언트마다 메뉴 이름은 다를 수 있습니다. 매일 동일한 네트워크 환경을 사용한다면 interval300초로 설정하고, 노드가 50개를 넘으면 먼저 600초를 사용해 보세요. Wi-Fi와 모바일 네트워크를 자주 전환하는 기기라면 300초를 유지해 현재 정책에 만료된 노드가 오래 남지 않도록 합니다.

proxy-groups:
  - name: 자동 선택
    type: url-test
    proxies:
      - 노드-A
      - 노드-B
      - 노드-C
    url: https://www.gstatic.com/generate_204
    interval: 600
    tolerance: 80
    lazy: true

lazy: true는 정책 그룹이 실제로 사용되지 않을 때 불필요한 상태 확인을 줄이는 설정입니다. 적용 여부는 현재 커널과 클라이언트가 해당 구성 필드를 지원하는지에 따라 달라집니다. tolerance: 80을 사용하면 두 노드의 차이가 수십 밀리초에 불과할 때 잦은 전환을 막을 수 있습니다. 빈번한 전환은 연결을 다시 만들기 때문에 안정성과 배터리 소모 모두에 도움이 되지 않습니다.

수동 속도 측정을 백그라운드 모니터링처럼 사용하지 마세요

  • 노드 목록의 「전체 속도 측정」은 장애를 확인할 때 적합하며, 장시간 반복해서 실행하는 용도는 아닙니다.
  • 한 번 측정할 때는 현재 정책 그룹을 선택하고, 구독에 포함된 모든 노드를 동시에 테스트할 필요는 없습니다.
  • 테스트 시간 초과는 약 5000 ms로 설정하세요. 시간 초과를 너무 길게 설정하면 만료된 노드가 더 오래 검사 시간을 차지합니다.
  • 속도 측정을 세 차례 연속 실행했을 때 나타나는 작은 차이는 대개 네트워크 변동 때문이므로, 이를 근거로 노드를 자주 바꿀 필요는 없습니다.

구독 자동 업데이트는 시간 단위 또는 하루 단위로 설정하세요

구독 내용은 일반적으로 분 단위로 바뀌지 않습니다. 자동 업데이트 주기를 1440분, 즉 하루 한 번으로 설정하면 대부분의 사용 환경에 충분합니다. 노드 제공자가 더 짧은 주기를 명확히 요구할 때는 360분 또는 720분으로 줄이세요. 구독을 15분마다 업데이트하면 설정을 반복 다운로드하고 YAML을 파싱하며 정책 그룹을 다시 만들 뿐 아니라 노드 상태 확인까지 실행될 수 있습니다.

제조사 절전 정책을 조정해 프로세스 종료 후 반복 재연결을 막으세요

Clash의 백그라운드 실행을 강제로 제한하면 배터리를 절약할 것처럼 보이지만 실제로는 반대 결과가 날 수 있습니다. 시스템이 포그라운드 서비스를 종료한 뒤 클라이언트, 자동화 작업 또는 네트워크 변화가 다시 깨우면 VPN 인터페이스를 새로 만들고 DNS와 기존 연결도 다시 초기화해야 합니다. 이러한 「종료—깨우기—재연결」의 반복은 안정적으로 상주하는 것보다 프로세서 깨우기와 네트워크 핸드셰이크를 더 많이 발생시킵니다.

Android 기본 설정 및 Pixel 시리즈

「설정」→「앱」→「Clash 클라이언트」→「앱 배터리 사용량」을 열고 백그라운드 사용량을 「허용」으로 설정합니다. 시스템에 「최적화」, 「제한」, 「제한 없음」의 세 단계가 표시된다면 VPN을 계속 사용할 때 「제한 없음」을 선택할 수 있습니다. Android 버전에 따라 메뉴가 「설정」→「앱」→「특별한 앱 액세스」→「배터리 최적화」로 표시될 수도 있습니다.

샤오미 및 HyperOS 기기

  • 「설정」→「앱 설정」→「앱 관리」→「Clash 클라이언트」→「배터리 절전」으로 이동해 「제한 없음」을 선택합니다.
  • 시스템 「보안 센터」→「앱 관리」→「권한」→「자동 시작 관리」를 열고 클라이언트의 자동 시작을 허용합니다.
  • 최근 앱 화면에서 클라이언트 카드를 길게 누른 뒤 잠그면 한 번에 정리하기로 인해 서비스가 종료될 가능성을 낮출 수 있습니다.

삼성 One UI 기기

  • 「설정」→「배터리」→「백그라운드 사용 제한」으로 이동합니다.
  • 클라이언트가 「깊은 절전 앱」 목록에 포함되어 있지 않은지 확인합니다.
  • 장시간 연결이 필요하다면 클라이언트를 「자동으로 절전 모드로 전환하지 않는 앱」에 추가합니다.

OPPO, OnePlus 및 realme 기기

일반적으로 「설정」→「앱」→「앱 관리」→「Clash 클라이언트」→「배터리 사용 관리」에서 「백그라운드 활동 허용」을 켤 수 있습니다. 일부 버전에서는 「설정」→「앱」→「자동 시작」으로 이동해 자동 시작도 허용해야 합니다. ColorOS 또는 realme UI 버전에 따라 메뉴 이름이 달라질 수 있으므로 시스템 설정 상단에서 「백그라운드 활동」 또는 「배터리 최적화」를 검색해 보세요.

예외 목록 설정을 마친 뒤 자동 정리 도구를 추가로 사용하지 마세요. 안정적인 백그라운드 실행의 목표는 VPN 서비스 하나가 낮은 빈도로 작동하도록 하는 것이지, 시스템이 몇 분마다 서비스를 다시 만드는 것이 아닙니다. 조정 전 로그에 서비스 시작, 네트워크 변경 또는 설정 다시 불러오기가 반복해서 나타났다면 예외 목록 설정 후 그 빈도가 뚜렷하게 줄어야 합니다.

필요에 따라 TUN 모드, 시스템 프록시, DNS 설정을 선택하세요

Android의 Clash 클라이언트는 보통 VpnService를 통해 트래픽을 처리하지만, 클라이언트 내부에서는 서로 다른 TUN 스택, 앱별 분기, DNS 강화, 스니핑 옵션을 제공할 수 있습니다. 기능이 많다고 모두 켜야 하는 것은 아닙니다. 배터리 절전 조정은 실제로 처리해야 하는 트래픽 범위를 기준으로 진행하세요.

자주 사용하는 앱만 프록시를 적용한다면 먼저 앱별 분기를 설정하세요

브라우저, 메신저와 일부 도구만 프록시가 필요하다면 「설정」→「네트워크」→「접근 제어」 또는 「설정」→「VPN 서비스」→「앱별 분기」에서 처리할 앱을 선택할 수 있습니다. 로컬 동영상 플레이어, LAN 화면 공유, 시스템 백업, 대용량 게임 다운로드 앱을 제외하면 프록시 커널로 들어갈 필요가 없는 연결 수를 줄일 수 있습니다.

접근 제어에는 보통 「선택한 앱만 허용」과 「선택한 앱 제외」라는 두 가지 방식이 있습니다. 변경 후에는 프록시 앱 하나와 제외한 앱 하나를 각각 열어 확인하세요. 의미가 반대인 목록을 동시에 활성화하지 말고, Android 시스템 구성 요소를 한꺼번에 제외하지도 마세요. DNS 조회 경로와 실제 연결 경로가 어긋날 수 있습니다.

TUN 스택은 안정성을 우선하고 설정을 한꺼번에 여러 개 추가하지 마세요

mihomo 커널에서 자주 사용되는 TUN 스택은 system, gvisor, mixed입니다. 선택 가능한 항목은 클라이언트와 커널 버전에 따라 달라집니다. system은 시스템 네트워크 스택을 사용하는 경향이 있어 일반적으로 처리 비용이 낮고, gvisor는 사용자 공간 네트워크 스택을 사용해 일부 호환성 문제에서 유용하지만 처리 경로가 더 깁니다. mixed는 프로토콜에 따라 조합해 처리합니다. 모든 기기에 통하는 고정된 최저전력 옵션은 없습니다.

  1. 클라이언트의 기본 스택을 유지한 채 8시간 동안 아무 작업도 하지 않는 테스트를 진행합니다.
  2. 특정 앱이 연결되지 않거나 UDP에 문제가 있거나 연결이 자주 끊길 때만 다른 스택으로 전환하세요.
  3. 한 번에 하나의 설정만 변경하고 기존 로그를 지운 뒤 다시 연결합니다.
  4. 웹페이지가 열리는 속도만 비교하지 말고 배터리 사용량, 연결 끊김 횟수, 로그의 오류를 함께 비교하세요.

DNS와 스니핑 설정은 필요한 최소 범위로 유지하세요

fake-ip는 도메인에 매핑 주소를 반환한 뒤 커널이 매핑 관계에 따라 규칙을 적용하도록 합니다. 이 기능 자체가 배터리를 많이 소모한다는 뜻은 아니지만, 지나치게 큰 규칙 집합, 반복되는 DNS 조회, 연결할 수 없는 상위 DNS, 지속적인 시간 초과는 백그라운드 활동을 늘릴 수 있습니다. 배터리 소모가 비정상적이라면 로그에 DNS timeout, fallback 재시도 또는 동일 도메인에 대한 고빈도 조회가 계속 나타나는지 확인하세요.

도메인 스니핑은 연결에서 도메인 정보를 복원하는 기능으로, 도메인을 직접 얻기 어려운 트래픽을 처리할 때 유용합니다. 현재 규칙이 이미 정확하게 적용되고 투명한 트래픽 가로채기와 관련된 호환성 문제가 없다면, 설정을 빠짐없이 갖추기 위해 스니핑 포트와 프로토콜 범위를 넓힐 필요는 없습니다. 불필요한 기능을 끄거나 범위를 줄인 뒤 동영상, 게임, 메시지 푸시, LAN 접속이 정상인지 확인하세요.

mode: rule

dns:
  enable: true
  enhanced-mode: fake-ip
  ipv6: false

tun:
  enable: true
  stack: system
  auto-route: true
  strict-route: false

이 구성은 문제를 확인할 때 살펴볼 필드를 보여 주기 위한 예시일 뿐, 현재 구독을 그대로 덮어쓰는 데 사용해서는 안 됩니다. 일부 Android 클라이언트는 그래픽 설정으로 TUN 매개변수를 생성하며, 구독 업데이트가 수동 변경 내용을 덮어쓸 수도 있습니다. 실제로 조정하기 전에 현재 Profile을 복사하고 복사본에서 테스트하세요.

네트워크 전환, 약한 신호, 여러 VPN 간 충돌을 확인하세요

모바일 네트워크 신호가 약하면 기지국 모뎀 자체의 전력 소모가 늘어납니다. Wi-Fi와 셀룰러 데이터 사이를 전환한 뒤 Clash가 연결을 옮기거나 다시 만들어야 하므로 출퇴근, 지하 주차장, 두 SIM 모두 신호가 약한 환경의 배터리 소모를 전부 프록시 클라이언트 탓으로 돌릴 수는 없습니다. 테스트할 때는 같은 이동 경로에서 「VPN 끄기」와 「VPN 켜기」를 각각 비교하고 화면 사용 시간도 비슷하게 유지하세요.

VPN 인터페이스를 사용하는 다른 서비스를 종료하세요

Android에서는 일반적으로 한 사용자가 하나의 주 VPN 연결만 유지할 수 있습니다. 방화벽, 추적 방지 도구, 기업용 VPN, 다른 프록시 클라이언트도 VpnService를 사용할 수 있습니다. 여러 앱이 번갈아 연결을 요청하면 열쇠 아이콘이 사라졌다가 다시 나타나고, 알림이 반복해서 새로 고쳐지며, 네트워크가 잠시 끊기고 클라이언트가 설정을 다시 불러오는 현상이 나타날 수 있습니다.

  • 「설정」→「네트워크 및 인터넷」→「VPN」에서 현재 활성화된 VPN을 확인합니다.
  • 다른 VPN, 방화벽 또는 로컬 필터링 서비스를 잠시 끄고 2시간 동안 관찰합니다.
  • 두 프록시 클라이언트에서 「항상 켜진 VPN」을 동시에 활성화하지 마세요.
  • 「VPN을 사용하지 않는 연결 차단」을 활성화했다면 클라이언트를 바꾸기 전에 해당 옵션을 먼저 끄세요. 전환 중 인터넷이 모두 차단되는 것을 막을 수 있습니다.

반복 재연결의 로그 패턴을 확인하세요

클라이언트의 「로그」 화면으로 이동해 수준을 info로 유지합니다. 아무 작업도 하지 않는 정상 상태에서는 새 로그가 추가되는 속도가 낮아야 합니다. 수십 초마다 network changed, start service, reload configuration, DNS timeout 또는 연결 시간 초과가 반복되면 시간 순서대로 원인을 추적하세요. 문제를 확인하는 동안 debug 수준을 장기간 사용하는 것은 권장하지 않습니다. 상세 로그는 기록량을 늘리고 중요한 이벤트를 식별하기 어렵게 만들 수 있습니다.

화면을 끈 뒤에만 재연결이 발생한다면 배터리 최적화와 Wi-Fi 절전 정책을 먼저 확인하세요. 정확히 60초마다 발생한다면 상태 확인 주기와 자동화 작업을 먼저 확인하고, 모바일 데이터에서만 발생한다면 신호, 듀얼 SIM 전환, IPv6, 통신사 네트워크 연결 가능성을 확인하세요.

실행 가능한 절전 조정 순서

스위치 열 개 이상을 동시에 바꾸면 비교 기준을 잃게 됩니다. 더 안전한 방법은 빈번한 작업부터 시작하고, 한 그룹의 조정을 마칠 때마다 최소 반나절 관찰하는 것입니다. 다음 순서는 연결 안정성과 문제 해결 효율을 함께 고려한 것입니다.

  1. 현재 설정을 복사해 보관합니다.사용 중인 Profile을 복사하고 커널 버전, 현재 노드, TUN 스택, DNS 모드를 기록합니다.
  2. 반복 속도 측정을 중단합니다.상태 확인 주기를 300–600 s로 변경하고 지원되는 경우 지연 검사 기능을 활성화합니다.
  3. 구독 폴링을 줄입니다.자동 업데이트를 720–1440 min으로 조정한 뒤 수동 업데이트 후 설정이 정상적으로 로드되는지 확인합니다.
  4. 백그라운드 예외를 설정합니다.백그라운드 활동과 자동 시작을 허용하고 포그라운드 VPN 서비스가 안정적으로 실행되도록 하며, 깊은 절전 목록에서 앱을 제외합니다.
  5. VPN 충돌을 제거합니다.VpnService를 사용하는 다른 앱을 끄고 활성 클라이언트 하나만 남깁니다.
  6. 트래픽 처리 범위를 줄입니다.앱별 분기를 통해 프록시가 필요하지 않은 대용량 트래픽 앱을 제외합니다.
  7. 마지막으로 TUN을 조정합니다.앞선 단계로 해결되지 않을 때만 system, mixed 또는 클라이언트가 제공하는 다른 스택을 하나씩 비교합니다.

조정 후 확인 기준

  • 화면을 잠근 8시간 동안 주기적인 연결 끊김 알림이 없어야 합니다.
  • 로그에서 짧은 고정 간격으로 설정을 다시 불러오거나 서비스를 시작하는 현상이 더 이상 반복되지 않아야 합니다.
  • 배터리 화면에 표시되는 백그라운드 활동 시간이 실제 VPN 사용 시간과 일치해야 합니다.
  • 메시지 푸시, 브라우저, 터미널 앱, LAN 접속이 모두 예상한 방식으로 분기되어야 합니다.
  • Wi-Fi와 모바일 데이터 전환 후 수 초 안에 연결이 복구되고 클라이언트를 수동으로 다시 시작할 필요가 없어야 합니다.

모든 단계를 완료한 뒤에도 아무 작업을 하지 않을 때의 배터리 소모가 VPN을 끈 기준 상태보다 뚜렷하게 높다면, 소수의 노드와 기본 규칙만 포함한 테스트 설정을 새로 만들어 보세요. 테스트 설정이 정상이라면 원래 구독의 정책 그룹, 상태 확인 또는 규칙 규모에 문제가 있을 가능성이 큽니다. 테스트 설정에서도 문제가 계속되면 클라이언트 버전, 시스템 펌웨어, 기기 네트워크 모듈의 호환성을 고려하세요. 클라이언트를 업그레이드하기 전에 현재 버전과 설정을 백업하고, 업그레이드 후 동일한 조건으로 다시 측정해야 변경 효과를 판단할 수 있습니다.

클라이언트 및 설정 메뉴

해당 플랫폼의 설치 패키지를 선택하거나 초기 설정, VPN 권한 부여, 규칙 모드 사용법을 계속 확인하세요.

Clash 다운로드