Android Clash 설정 가이드: VpnService 권한 및 배터리 최적화 예외 설정
Android Clash의 VpnService 권한 설정 방법과 제조사별 배터리 최적화로 백그라운드 연결이 끊길 때 예외 등록 및 앱 고정 방법을 안내합니다.
VpnService: Android 트래픽을 처리하는 통로이지 원격 노드가 아닙니다
VpnService는 Android에서 제공하는 VPN 서비스 인터페이스입니다. Android용 Clash 클라이언트는 일반적으로 이를 사용해 로컬 가상 네트워크 인터페이스를 만들고, 처리 대상에 포함된 패킷을 프록시 엔진으로 전달합니다. 이후 규칙에 따라 직접 연결하거나 프록시를 사용하거나 연결을 차단합니다. 구독 서비스와는 별개이며, 트래픽이 반드시 원격 VPN 서버를 거친다는 뜻도 아닙니다.
따라서 상태 표시줄에 VPN 아이콘이 보인다는 것은 시스템에 VPN 연결이 있다는 뜻일 뿐입니다. 구독이 유효하거나 노드에 연결할 수 있다거나 모든 앱의 트래픽이 프록시를 통과한다는 보장은 없습니다. 반대로 정책이 DIRECT로 설정되어 있어도 로컬 트래픽 통로가 작동 중이므로 VPN 아이콘이 계속 표시될 수 있습니다.
- 시스템 권한: 클라이언트가 VpnService를 통해 로컬 VPN을 만들도록 허용합니다.
- 설정 및 엔진: 노드, 정책 그룹, DNS, 분기 규칙을 불러옵니다. 클라이언트에 따라 서로 다른 세대의 Clash 또는 mihomo 엔진을 사용할 수 있습니다.
- 백그라운드 실행: 서비스와 엔진 프로세스가 계속 작동하도록 유지해 화면을 잠근 뒤 시스템이 제한하지 않게 합니다.
이 세 가지는 각각 구분해 문제를 확인해야 합니다. 구독을 반복해서 가져와도 배터리 정책으로 종료된 백그라운드 서비스를 복구할 수 없고, VPN 연결을 계속 허용해도 만료된 노드 인증 정보는 해결되지 않습니다.
처음 실행할 때: VPN 권한 및 알림 상태 확인
사용 가능한 설정으로 연결 시작하기
- 현재 Android 버전과 프로세서 아키텍처에 맞는 클라이언트를 설치한 다음, 설정 화면에서 구독 또는 YAML 파일을 가져옵니다.
- 설정을 선택하고 정상적으로 파싱되었는지 확인합니다. 우선 서비스 제공자가 설정한 DNS와 규칙을 그대로 유지하고 여러 항목을 한꺼번에 바꾸지 마세요.
- 클라이언트에서 시작 또는 연결 버튼을 누릅니다. 시스템에 ‘연결 요청’과 같은 확인 창이 표시되면 요청한 앱의 이름을 확인한 뒤 허용합니다.
- 시스템에서 「설정」→「네트워크 및 인터넷」→「VPN」으로 이동해 현재 연결이 대상 클라이언트에 해당하는지 확인합니다. 일부 제조사 기기에서는 「연결 및 공유」 또는 「기타 연결」에 메뉴가 있습니다.
- 클라이언트의 연결 기록을 열고 HTTPS 페이지에 접속해 새 연결과 적용된 정책이 표시되는지 확인합니다.
VPN 권한은 카메라나 저장 공간 같은 일반 권한이 아니므로 보통 「앱 권한」의 일반적인 권한 목록에 표시되지 않습니다. 거부했다면 클라이언트로 돌아가 연결을 다시 시작하세요. 허용 버튼을 누를 수 없다면 화면 위에 표시되는 창, 화면 필터 또는 시스템 창을 가리는 도구를 먼저 종료한 뒤 다시 시도하세요. 자동 클릭 도구로 확인 절차를 우회하지 마세요.
알림 권한과 VPN 권한은 별도로 관리합니다
Android 8.0부터 백그라운드 실행 제한이 적용되면서 지속적인 네트워크 작업에 포그라운드 서비스가 중요한 역할을 합니다. Android 13부터는 알림 런타임 권한도 추가되었습니다. 알림 권한을 거부해도 VPN 권한이 취소되는 것은 아니며 포그라운드 서비스가 반드시 차단되는 것도 아닙니다. 다만 일반 알림 창에서 상태를 확인하기 어려워질 수 있습니다.
클라이언트에서 알림 권한을 요청하면 허용하는 것이 좋습니다. 연결 상태 알림 카테고리가 꺼져 있지 않은지도 확인하세요. 알림은 서비스가 계속 실행 중인지 살펴보는 단서입니다. 알림이 사라졌다는 이유만으로 VPN 연결이 끊겼다고 단정하지 말고, 시스템 VPN 화면과 클라이언트 연결 상태도 확인하세요.
배터리 최적화 예외: 배터리 설정, 자동 시작, 백그라운드 고정은 각각 다른 기능
‘예외 목록에 추가’는 Android 전반에 통용되는 단일 옵션 이름이 아닙니다. 시스템 배터리 최적화, 제조사별 백그라운드 관리, 자동 시작 제어, 최근 앱 화면에서의 고정이 각각 서비스 유지에 영향을 줄 수 있습니다. 문제를 확인할 때는 변경 사항을 하나씩 기록하세요. 모든 권한을 켜 놓고 어떤 설정이 효과가 있었는지 모르는 상황은 피해야 합니다.
| 설정 항목 | 주요 기능 | 보장되지 않는 사항 |
|---|---|---|
| 배터리 사용을 제한 없음으로 설정 | 백그라운드 활동에 대한 시스템 제한 완화 | 서비스가 절대 종료되지 않는다는 보장은 없음 |
| 백그라운드 활동 허용 | 제조사의 백그라운드 관리 정책 완화 | 네트워크 또는 노드 문제는 해결되지 않음 |
| 자동 시작 허용 | 조건에 따라 앱 구성 요소를 시작하거나 복구하도록 허용 | 클라이언트의 부팅 시 연결 기능이 켜졌다는 뜻은 아님 |
| 최근 앱에서 앱 고정 | 한 번에 정리할 때 앱이 실수로 종료될 가능성을 낮춤 | 강제 종료나 시스템의 프로세스 정리를 막지는 못함 |
| 데이터 사용 제한 없음 허용 | 데이터 절약 모드가 백그라운드 네트워크 연결에 미치는 제한 완화 | 배터리 제한을 우회하는 기능은 아님 |
먼저 「설정」→「앱」→대상 클라이언트→「배터리」 또는 「앱 배터리 사용량」으로 이동해 「제한 없음」을 선택하거나 백그라운드 사용을 허용하세요. 구형 Android에서는 「특별 앱 액세스」→「배터리 최적화」로 이동한 뒤 전체 앱을 표시하고 클라이언트를 찾아 최적화하지 않도록 설정해야 할 수 있습니다.
배터리 소모를 감수하지 않아도 되는 설정은 아닙니다. 연결을 계속 유지하거나 속도 측정을 자주 수행하거나 상태 확인 간격을 짧게 설정하거나 활성 연결이 많으면 배터리 소모가 늘어날 수 있습니다. 예외 설정은 백그라운드 제한을 해결하기 위한 것입니다. 모든 정책 그룹의 확인 주기를 몇 초로 바꾸는 것은 권장하지 않습니다.
주요 제조사 설정 경로: 앱 정보에서 백그라운드 정책 확인
아래 경로는 일반적인 예시이며 모든 시스템 버전에서 메뉴 이름이 똑같지는 않습니다. 시스템 업데이트, 지역별 펌웨어, 기종에 따라 메뉴 이름이 달라질 수 있습니다. 메뉴를 찾지 못하면 클라이언트 아이콘을 길게 눌러 「앱 정보」를 열거나 시스템 설정에서 ‘배터리 최적화’, ‘자동 시작’, ‘백그라운드 활동’을 검색하세요.
Pixel 및 순정 Android에 가까운 시스템
- 「설정」→「앱」→「모든 앱 보기」→대상 클라이언트→「앱 배터리 사용량」으로 이동합니다.
- 「백그라운드 사용 허용」과 최적화 수준이 표시되면 백그라운드 실행을 허용하고 관련 옵션을 제한 없음으로 설정합니다.
- 데이터 절약 모드를 사용한다면 앱의 「모바일 데이터 및 Wi-Fi」 등의 메뉴에서 백그라운드 데이터와 데이터 무제한 사용 설정을 확인합니다.
샤오미, Redmi 및 HyperOS/MIUI
- 앱 정보에서 「배터리 절약」을 찾아 「제한 없음」을 선택합니다.
- 「설정」→「앱 설정」→「권한 관리」 주변에서 「자동 시작 관리」 또는 「백그라운드 자동 시작」을 찾아 대상 클라이언트를 허용합니다.
- 최근 앱 화면에서 고정을 지원하면 앱 카드를 길게 누르거나 카드 메뉴에서 고정할 수 있습니다. 동작 방식은 런처 버전에 따라 다릅니다.
최근 앱 화면의 자물쇠 아이콘은 일부 정리 동작에만 영향을 줍니다. 화면을 잠근 뒤에도 연결이 끊기면 계속 고정하기보다 배터리 정책을 확인하세요.
화웨이, Honor: 앱 시작 관리
해당 옵션을 제공하는 시스템에서는 「설정」→「앱 및 서비스」→「앱 시작 관리」로 이동해 클라이언트를 찾습니다. 자동 관리를 끈 뒤 필요에 따라 자동 시작, 연결 시작, 백그라운드 활동을 허용합니다. Honor 기기에서는 「앱」 아래에 메뉴가 있을 수도 있습니다. 기기의 시스템이 Android 앱 설치를 지원하지 않는다면 이 문서의 APK 설치 및 VpnService 절차는 적용되지 않습니다.
OPPO, OnePlus, realme: 백그라운드 활동 및 자동 시작
앱 정보에서 「전력 사용 관리」 또는 「배터리 사용량」으로 이동해 「백그라운드 활동 허용」과 「자동 시작 허용」을 확인합니다. 최근 앱 화면에서 「고정」 기능을 제공하는지도 살펴보세요. ColorOS, OxygenOS, realme UI의 메뉴는 서로 다를 수 있으므로 현재 기기에 표시되는 옵션을 기준으로 설정하세요.
vivo, iQOO 및 삼성
- vivo, iQOO: 「설정」→「배터리」에서 「백그라운드 배터리 사용 관리」를 찾아 클라이언트가 백그라운드에서 배터리를 더 사용할 수 있도록 설정합니다. 시스템 앱 관리 또는 iManager에서 자동 시작 권한도 확인하세요.
- 삼성: 「설정」→「애플리케이션」→대상 클라이언트→「배터리」에서 「제한 없음」을 선택합니다. 이어서 「배터리」→「백그라운드 사용 제한」에서 ‘절전 상태 앱’과 ‘초절전 상태 앱’을 확인해 클라이언트가 제한 목록에 포함되지 않도록 합니다. 시스템에서 지원하면 ‘절대 자동 절전 상태로 전환되지 않는 앱’에 추가하세요.
화면을 잠근 뒤 연결이 끊길 때: 정해진 절차로 서비스 종료와 네트워크 문제 구분
‘화면이 켜져 있을 때는 정상인데 잠그면 작동하지 않는다’는 현상만으로 배터리 정책이 원인이라고 단정할 수는 없습니다. Wi-Fi 연결 해제, 모바일 네트워크 전환, 노드 시간 초과, DNS 오류가 백그라운드에서 드러날 수도 있습니다. 아래 재현 절차를 사용해 확인하세요. 각 시간은 문제 확인을 위한 권장값이며 성능 측정 결과가 아닙니다.
- 기준 상태 기록: 같은 Wi-Fi를 유지하면서 클라이언트 버전, 시스템 버전, 현재 정책, 시작 시간, 테스트 URL을 기록합니다. 먼저 화면이 켜진 상태에서 정상적으로 접속되는지 확인합니다.
- 짧게 잠금: 화면을 5분간 잠근 뒤 잠금을 해제하고 시스템 VPN 연결이 유지되는지, 클라이언트를 다시 시작해야 하는지 확인합니다.
- 관찰 시간 연장: 같은 조건에서 다시 화면을 잠그고 30분 뒤 확인합니다. 짧은 테스트를 통과했다고 해서 깊은 절전 상태까지 문제가 없다고 볼 수는 없습니다.
- 네트워크 전환만 테스트: 서비스 연결을 유지한 상태에서 Wi-Fi를 끄고 모바일 네트워크로 전환해 새 연결이 복구되는지 확인합니다. 네트워크 전환 테스트를 앞서 진행한 화면 잠금 테스트와 함께하지 마세요.
- 항목별로 변경: 매번 백그라운드 설정 한 종류만 바꾸고 같은 절차를 반복해 결과를 기록합니다.
| 확인된 증상 | 먼저 확인할 항목 |
|---|---|
| 시스템 VPN 연결이 끊기고 클라이언트가 중지 상태로 표시됨 | 백그라운드 제한, 서비스 충돌, 다른 VPN의 연결 대체 |
| VPN은 연결되어 있지만 새 요청이 모두 시간 초과됨 | 현재 네트워크, 노드 연결 가능 여부, DNS 로그 |
| 특정 앱 하나만 접속할 수 없음 | 앱별 프록시 목록, 적용된 규칙, 앱 자체의 연결 캐시 |
| Wi-Fi에서 모바일 네트워크로 전환한 뒤에만 실패함 | 네트워크 전환 후 재연결, 이전 연결 잔류, 모바일 데이터 권한 |
로그를 내보낼 때는 log-level: info를 임시로 사용할 수 있습니다. 문제를 파악하는 데 필요한 경우에만 잠시 로그 상세 수준을 높이세요. 로그와 스크린샷에는 구독 주소, 노드 서버, 접속 도메인 또는 액세스 토큰이 포함될 수 있습니다. 공유하기 전에 민감한 정보를 삭제하세요.
항상 켜져 있는 VPN과 앱별 프록시: 연결 복구 후에도 인터넷에 접속할 수 없을 때
항상 켜져 있는 VPN이 앱의 무조건적인 상시 실행을 보장하지는 않습니다
Android 7.0부터 항상 켜져 있는 VPN을 지원하지만, 클라이언트도 이 기능과 호환되고 해당 설정을 허용해야 합니다. 「설정」→「네트워크 및 인터넷」→「VPN」에서 클라이언트 옆의 설정 버튼을 눌러 「항상 켜져 있는 VPN」을 찾아보세요. 옵션을 사용할 수 없다면 관련 없는 설정을 변경해 억지로 켜지 마세요.
「VPN을 사용하지 않는 연결 차단」은 별도의 제한 설정입니다. VPN이 연결되지 않았거나 VPN이 처리하지 않는 연결은 시스템에서 차단될 수 있습니다. 이 기능을 켠 상태에서 클라이언트 설정이 작동하지 않으면 휴대전화가 인터넷에 전혀 연결되지 않을 수도 있습니다. 먼저 정상 연결, 재시작 후 복구, 앱별 동작을 확인한 다음 사용할지 결정하세요. 문제를 확인하는 동안에는 원인을 파악하기 위해 차단 기능을 일시적으로 끌 수 있습니다.
앱별 허용 목록과 rule 모드는 서로 다른 단계의 설정입니다
Android 클라이언트의 ‘선택한 앱만 프록시’ 또는 ‘선택한 앱 우회’ 설정은 일반적으로 VPN이 처리할 앱의 범위를 정해 로컬 인터페이스에 전달할 앱을 결정합니다. mode: rule은 엔진으로 전달된 연결에 어떤 규칙을 적용할지 정합니다. 앱이 VPN에 포함되지 않았다면 규칙 순서를 바꿔도 해당 앱의 연결 경로는 달라지지 않습니다.
일부 클라이언트에서는 앱별 설정을 ‘접근 제어’라고 부릅니다. 허용 목록을 사용할 때는 실제로 네트워크 요청을 보내는 앱을 포함해야 합니다. 목록을 수정한 뒤에는 클라이언트 안내에 따라 VPN을 다시 연결하세요. 「VPN을 사용하지 않는 연결 차단」도 켜져 있으면 제외된 앱은 직접 연결되는 대신 인터넷에 접속하지 못할 수 있습니다.
마찬가지로 설정의 mixed-port: 7890은 로컬 HTTP/SOCKS 프록시의 수신 포트 예시이지 Android VPN 권한 설정이 아닙니다. 로컬 포트만 실행하고 VPN을 연결하지 않으면 일반 앱은 해당 포트가 열려 있다는 이유만으로 트래픽을 자동 전달하지 않습니다.
복구 순서: 서비스부터 확인한 뒤 네트워크, 마지막으로 설정 점검
- VPN 연결이 없음: 권한, 백그라운드 정책, 다른 VPN 앱을 확인한 다음 클라이언트 서비스를 다시 시작합니다.
- VPN은 연결됐지만 접속할 수 없음: 로컬 네트워크가 작동하는지 확인하고 현재 노드, DNS, 연결 로그를 점검합니다.
- 일부 앱만 문제가 있음: 앱별 프록시 범위, 적용된 정책, 시스템의 VPN 차단 설정을 확인합니다.
- 재부팅 후 자동으로 복구되지 않음: 클라이언트의 부팅 시 연결 옵션, 자동 시작 권한, 시스템의 항상 켜져 있는 VPN 기능을 각각 확인합니다. 이 설정들을 하나의 스위치처럼 취급하지 마세요.
안정적으로 Android Clash를 사용하려면 권한, 백그라운드 실행, 설정이 서로 맞아야 합니다. 사용 가능한 설정을 하나 보존한 뒤 항목별로 재현하고 변경하는 편이 엔진, DNS, 배터리 설정을 한꺼번에 바꾸는 것보다 원인을 찾기 쉽습니다. 설정 항목은 설정 참고 문서에서 확인하고, 클라이언트를 바꾸려면 먼저 선택 가이드에서 플랫폼 호환성을 살펴보세요.