Clash Android 사용 가이드: VpnService 권한, 배터리 최적화 예외 및 백그라운드 실행
Android에서 Clash를 처음 연결할 때 필요한 VPN 권한부터 제조사별 배터리 제한으로 인한 연결 끊김, 앱별 프록시와 상시 VPN 설정까지 안내합니다.
첫 연결: VpnService 권한 및 구독 확인
Android용 Clash 클라이언트는 일반적으로 시스템 VpnService를 통해 가상 네트워크 인터페이스를 만들고, 처리 대상인 트래픽을 코어로 전달합니다. mihomo 코어를 사용하는 클라이언트도 이 권한을 허용해야 합니다. 구독 계정 권한과는 별개이며, YAML 설정을 가져온다고 자동으로 허용되는 것도 아닙니다.
클라이언트마다 버튼 이름은 ‘시작’, ‘연결’, ‘VPN’ 등으로 다를 수 있습니다. 이 글에서는 기능을 기준으로 안내합니다. 클라이언트 화면이나 제조사별 시스템 메뉴가 다르다면 설정에서 ‘VPN’, ‘배터리 최적화’, ‘자동 시작’을 검색해 보세요.
- 구독 또는 로컬 설정을 가져온 뒤 현재 설정으로 적용합니다. 설정이 정상적으로 파싱되고 프록시 그룹에서 선택할 수 있는 노드가 있는지 확인하세요.
- ‘규칙’ 모드를 선택하고 연결 가능한 노드를 지정합니다. 노드 지연 시간 테스트에 성공해도 테스트 대상에 접속할 수 있다는 뜻일 뿐, 모든 앱의 접속을 보장하지는 않습니다.
- 연결을 누릅니다. Android에서 처음 연결할 때 ‘네트워크 연결 요청’과 같은 시스템 대화상자가 표시되면 앱 이름을 확인한 뒤 허용하세요.
- 클라이언트로 돌아와 연결 상태와 실행 로그를 확인합니다. 테스트용 웹페이지를 열어 연결 기록이 추가되는지도 살펴보세요.
권한 요청 창이 표시되지 않거나 연결 직후 끊기는 경우
- 다른 VPN이 이미 연결된 경우: Android는 일반적으로 한 사용자 또는 프로필에서 VPN 하나만 활성화할 수 있습니다. VPN 가속기, 방화벽, 일부 광고 차단 앱도 VpnService를 사용할 수 있으므로 먼저 연결을 해제한 뒤 다시 시도하세요.
- 다른 앱에서 상시 VPN을 사용 중인 경우: 시스템의 ‘설정’ → ‘네트워크 및 인터넷’ → ‘VPN’에서 기존 VPN 설정을 확인하세요. 제조사에 따라 ‘연결 및 공유’ 메뉴에 있을 수도 있습니다.
- 업무 프로필 또는 기기 관리 제한: 회사의 기기 관리 정책으로 VPN을 직접 설정하지 못할 수 있습니다. 이 경우 클라이언트를 계속 설치하기보다 기기 관리자에게 문의하세요.
- 권한 요청 화면에서 버튼을 누를 수 없는 경우: 화면 위에 표시되는 앱 창이나 화면 필터를 잠시 끈 다음 클라이언트에서 권한 요청을 다시 시작하세요. 자동 클릭 도구로 확인 절차를 건너뛰지 마세요.
Android 13 이상에서 알림 권한과 VPN 권한은 서로 다릅니다. 알림을 허용하면 실행 상태를 확인하거나 연결을 끊기 쉽지만, VpnService 권한을 대신하지는 않습니다. 알림을 거부했다고 해서 서비스가 중지된 것으로 단정할 수도 없습니다.
시스템 VPN, TUN 모드, 규칙 모드의 차이
시스템에 ‘VPN’이라고 표시된다고 해서 모든 연결이 원격 프록시 서버를 거치는 것은 아닙니다. Android의 가상 인터페이스는 트래픽을 받아들이고, Clash 또는 mihomo의 규칙과 정책 그룹이 이후 경로를 결정합니다. 규칙에 DIRECT가 적용되면 클라이언트에서 처리된 뒤 직접 연결될 수 있습니다.
| 설정 계층 | 제어 항목 | 확인 위치 |
|---|---|---|
| 시스템 VPN 권한 | 앱의 가상 네트워크 인터페이스 생성 허용 | Android VPN 설정 및 연결 요청 |
| 앱별 프록시 | VPN 터널로 보낼 앱 | 클라이언트의 앱 목록 및 포함·제외 옵션 |
| 규칙 모드 | 코어에 들어온 연결에 적용할 정책 | 현재 설정의 rules 및 정책 그룹 |
| TUN 및 DNS 설정 | 트래픽 전달, 도메인 조회 및 관련 라우팅 동작 | 클라이언트 네트워크 설정 및 코어 설정 |
일부 Android 클라이언트는 VPN 인터페이스와 라우팅을 직접 관리하므로 데스크톱용 tun: 설정을 그대로 적용하지 않습니다. VPN 아이콘을 띄우려고 구독 설정에 데스크톱 TUN 항목을 추가하거나, 데스크톱에서 관리자 권한으로 할 수 있는 작업을 휴대폰에서도 할 수 있다고 가정하지 마세요. 먼저 해당 Android 클라이언트의 트래픽 처리 방식을 따르세요.
휴대폰에서 VpnService를 사용하는 경우 보통 Wi-Fi에 수동 프록시를 설정할 필요가 없습니다. 이전에 192.168.1.10:7890처럼 PC 프록시를 입력했다면 테스트 전에 해당 Wi-Fi의 프록시를 ‘없음’으로 바꾸세요. 전원이 꺼진 PC에 계속 연결을 시도하는 상황을 피할 수 있습니다.
배터리 최적화 예외: 배터리 제한 해제 후 자동 시작 확인
화면을 잠근 뒤 연결이 끊기는 원인은 백그라운드 제한, 시스템 절전, 제조사의 앱 정리 정책일 수 있습니다. 네트워크 전환이나 노드 문제일 수도 있습니다. 먼저 연결이 끊겼을 때 클라이언트가 계속 실행 중인지 확인하세요. 서비스 알림이 사라지거나 연결 버튼이 중지 상태로 돌아갔다면 프로세스 제한을 먼저 살펴보고, 서비스는 실행 중인데 요청이 시간 초과되면 네트워크와 로그를 확인하세요.
Android 공통 설정 경로
- 클라이언트 아이콘을 길게 눌러 ‘앱 정보’를 엽니다.
- ‘배터리’ 또는 ‘앱 배터리 사용량’에서 ‘제한 없음’을 선택하거나 해당 앱의 배터리 최적화를 끕니다. 표시되는 옵션은 Android 버전에 따라 다를 수 있습니다.
- ‘모바일 데이터 및 Wi-Fi’ 또는 ‘데이터 사용량’에서 백그라운드 데이터가 허용되어 있는지 확인합니다. 데이터 절약 모드를 사용 중이라면 필요에 따라 무제한 데이터 사용도 허용하세요.
- 클라이언트로 돌아와 연결한 뒤 화면을 잠가 백그라운드에서도 작동하는지 확인하세요. 홈 화면으로 전환하는 것만으로는 백그라운드 테스트가 되지 않습니다.
주요 제조사별 설정 경로
| 시스템 | 주요 설정 경로 | 확인할 항목 |
|---|---|---|
| Xiaomi MIUI / HyperOS | 앱 정보 → 배터리 절약 정책; 설정에서 ‘자동 시작’ 검색 | ‘제한 없음’을 선택하고 필요하면 백그라운드 자동 시작을 허용 |
| Huawei EMUI / HarmonyOS의 Android 앱 환경 | 설정 → 배터리 → 앱 시작 관리 | 해당 앱의 자동 관리 기능을 끄고 자동 시작, 연결 시작 및 백그라운드 실행을 허용 |
| OPPO ColorOS / OnePlus OxygenOS | 앱 정보 → 배터리 사용량; 설정에서 ‘자동 시작’ 검색 | 백그라운드 실행을 허용하고 자동 시작 관련 제한 확인 |
| vivo OriginOS | 설정에서 ‘백그라운드 배터리 관리’ 및 ‘자동 시작’ 검색 | 백그라운드 고전력 사용을 허용하고 자동 시작 권한 확인 |
| Samsung One UI | 설정 → 배터리 → 백그라운드 사용 제한 | 절전 및 초절전 앱 목록에서 삭제하고 필요하면 ‘항상 절전하지 않는 앱’에 추가 |
위 경로는 자주 쓰이는 예시이며 모든 시스템 버전에서 메뉴 이름이 같지는 않습니다. HarmonyOS의 네이티브 앱 환경과 Android 앱 호환 환경도 구분해야 합니다. 설치하기 전에 해당 시스템에서 선택한 Android 클라이언트를 실행할 수 있는지 확인하세요.
배터리 최적화 예외를 설정하면 백그라운드 제한을 줄일 수 있지만, 기기를 켤 때 자동으로 연결된다고 보장하지는 않습니다. 부팅 시 실행 여부는 클라이언트의 기능 지원, 시스템의 자동 시작 허용 여부, 기기 잠금 해제 상태에 따라 달라집니다. 설정 후에는 실제로 재부팅해 확인하세요.
앱별 프록시: 목록이 포함인지 제외인지 확인
앱별 프록시는 브라우저나 메신저처럼 지정한 앱만 VPN으로 보내거나, 로컬 기기 관리 앱은 VPN을 우회하도록 할 때 유용합니다. 보통 클라이언트의 ‘설정’ → ‘네트워크’ → ‘앱별 프록시’ 또는 ‘앱 접근 제어’에서 설정합니다. 메뉴 이름보다 중요한 것은 목록이 포함 목록인지 제외 목록인지 확인하는 것입니다.
- 선택한 앱만 프록시: 선택한 앱만 VPN으로 연결되고 선택하지 않은 앱은 VPN을 사용하지 않습니다. 새 앱을 추가한 뒤 목록에 포함됐는지 확인하세요.
- 선택한 앱 우회: 선택한 앱은 VPN을 사용하지 않고, 나머지 앱은 VPN 처리 대상이 됩니다.
- 규칙의 DIRECT: 앱은 VPN으로 들어온 뒤 코어의 규칙에 따라 직접 연결될 수 있습니다. 이는 시스템 수준에서 앱을 제외하는 것과 다릅니다.
예를 들어 브라우저만 프록시를 사용하게 하려면 ‘선택한 앱만 프록시’를 고르고 실제 사용하는 브라우저를 선택한 다음 저장하세요. 이후 VPN을 다시 연결합니다. 일부 클라이언트는 앱 목록을 바꾸면 자동으로 재연결됩니다. 자동 재연결되지 않으면 직접 연결을 중지했다가 다시 시작해 새 인터페이스 설정을 적용하세요.
앱 복제본, 업무 프로필 앱, 기본 프로필 앱은 사용자 ID가 다를 수 있으므로 아이콘이 같다고 모두 적용됐다고 볼 수 없습니다. 다운로드 작업이 시스템 다운로드 서비스에서 실행되는 경우도 있습니다. 브라우저를 선택해도 외부 다운로드 구성 요소까지 같은 경로로 연결된다고 보장할 수 없습니다.
선택한 앱에서 새 페이지를 열고 클라이언트의 연결 기록을 확인하세요. 기존 장시간 연결이나 캐시된 결과로는 규칙 적용 여부를 판단하기 어렵습니다. 기록이 없다면 DNS부터 바꾸기보다 앱 목록, 목록 방식, 현재 사용자 프로필을 먼저 확인하세요.
상시 VPN: 자동 복구와 연결 차단은 별도로 설정
Android 7.0부터 시스템 수준의 ‘상시 VPN’을 사용할 수 있지만, 실제로 설정할 수 있는지는 클라이언트 지원 여부와 기기 정책에 따라 다릅니다. 기본 Android에 가까운 시스템에서는 보통 ‘설정’ → ‘네트워크 및 인터넷’ → ‘VPN’ → 클라이언트 옆의 톱니바퀴로 이동합니다. 다른 시스템에서는 설정에서 ‘VPN’을 검색하세요.
이 화면에는 ‘상시 VPN’과 ‘VPN을 사용하지 않는 연결 차단’이 함께 표시될 수 있습니다. 상시 VPN은 시스템이 VPN 연결을 유지하거나 다시 시작하도록 하고, 연결 차단은 VPN을 통하지 않는 네트워크 연결을 제한합니다. 어느 설정도 노드의 정상 작동을 보장하거나 설정 문법 오류를 해결하지는 않습니다.
- 먼저 일반 연결 상태에서 구독, 노드, DNS, 앱별 설정이 모두 정상 작동하는지 확인합니다.
- ‘상시 VPN’을 켜고 재부팅 후, 잠금 해제 후, 수동으로 연결을 끊은 뒤의 동작을 확인합니다.
- VPN을 우회하는 연결을 실제로 제한해야 할 때만 ‘VPN을 사용하지 않는 연결 차단’을 켭니다.
- 브라우저, 제외한 앱, 로컬 네트워크 기기, 웹 로그인이 필요한 Wi-Fi를 각각 테스트합니다.
호텔이나 공항 Wi-Fi는 포털 인증을 먼저 완료해야 하는 경우가 많습니다. VPN과 연결 차단 때문에 로그인 페이지가 열리지 않으면 연결 차단을 잠시 끄고 VPN 연결을 해제한 뒤 인증을 완료하고 다시 연결하세요. ‘상시 VPN’이 제조사의 백그라운드 제한까지 해결해 준다고 기대해서는 안 됩니다.
화면 잠금 및 네트워크 전환: 증상별 연결 끊김 점검
같은 설정과 같은 노드를 유지한 채 항목별로 확인하세요. 구독, DNS, 배터리 설정을 한꺼번에 바꾸면 원인을 찾기 어렵습니다. 아래는 테스트 절차이며 특정 기기에서 측정한 결과가 아닙니다. 로그의 시간 초과, 재연결, 서비스 중지 기록과 대조할 수 있도록 매번 발생 시간을 기록하세요.
- 화면이 켜진 상태에서 기준 확인: Wi-Fi에 연결한 뒤 서로 다른 사이트 두 곳을 열고, 연결 기록에 대상과 적용된 정책이 표시되는지 확인합니다.
- 화면 잠금 테스트: 먼저 5분간 화면을 잠근 뒤, 이어서 15분간 테스트합니다. 잠금 해제 후 서비스가 계속 실행 중인지, 새 요청이 성공하는지 확인하세요.
- 네트워크 전환 테스트: Wi-Fi를 끄고 모바일 데이터로 전환한 다음 다시 Wi-Fi로 돌아옵니다. 기존 TCP 연결이 끊기는 것은 드문 일이 아니므로 새 연결이 복구되는지 확인하세요.
- 재부팅 테스트: 필요한 자동 시작 또는 상시 VPN 설정을 켠 뒤 휴대폰을 재부팅하고, 잠금 해제 전후의 상태를 각각 확인합니다.
로그를 바탕으로 다음 단계 결정
- 서비스가 중지됨: 배터리 제한, 자동 시작 권한, 다른 VPN의 점유 여부, 앱 정리 또는 강제 종료 여부를 확인하세요.
- 서비스는 실행 중이나 DNS 시간 초과 발생: 설정의 DNS 업스트림, 현재 네트워크 연결 상태, Android의 ‘비공개 DNS’ 설정을 확인하세요. 한 번에 한 항목만 변경하고 기존 설정을 기록해 두세요.
- 특정 앱 하나만 문제 발생: 앱별 목록, 규칙 적용 결과, 앱 자체의 네트워크 권한을 확인하세요. 설정 전체를 먼저 초기화하지 마세요.
- 프록시 요청은 모두 시간 초과되고 직접 연결은 정상: 노드와 정책 그룹을 확인하세요. 지연 시간 테스트뿐 아니라 실제 접속 대상에 연결되는지도 확인해야 합니다.
- 모바일 데이터는 정상이고 Wi-Fi에서만 문제 발생: 포털 인증, 이전에 설정한 수동 프록시, 라우터의 네트워크 제한을 확인한 뒤 클라이언트 설정 변경을 고려하세요.
Android의 ‘비공개 DNS’와 설정 파일의 DNS 모듈은 서로 다른 계층에서 작동합니다. 실제 요청 경로는 Android 버전, 클라이언트, 트래픽 처리 방식에 따라 달라질 수 있습니다. 문제를 비교할 때는 일시적으로 ‘자동’으로 바꿔 볼 수 있지만, 비공개 DNS를 끄는 것이 모든 연결 끊김의 해결책은 아닙니다.
설정과 로그를 기록해 반복 점검 줄이기
설정 후 클라이언트 이름과 버전, Android 버전, 연결 모드, 앱별 목록 방식, 배터리 설정을 기록해 두세요. 개발자나 유지 관리자에게 문의할 때는 문제 발생 시간, Wi-Fi 또는 모바일 데이터 환경, 민감한 정보를 가린 관련 로그를 함께 전달하세요. 구독 URL, 노드 비밀번호, 액세스 토큰은 공개하지 마세요.
백그라운드에서 실행하면 VPN 서비스가 계속 유지됩니다. 실제 배터리 소모량은 트래픽, 노드 프로토콜, DNS 요청, 속도 측정 빈도, 기기의 네트워크 상태에도 영향을 받습니다. 평소 모든 노드를 반복해서 일괄 측정할 필요는 없습니다. 불필요한 테스트와 로그 출력을 줄인 뒤 시스템 배터리 사용량을 비교하세요. 상시 알림만 보고 배터리 소모가 비정상이라고 판단하지 마세요.
다음 순서로 설정을 마무리하세요. VPN 권한을 확인하고 필요한 백그라운드 제한을 해제한 뒤 앱별 목록이 제대로 적용되는지 검증합니다. 마지막으로 상시 VPN과 연결 차단을 사용할지 결정하세요. 다른 클라이언트를 찾고 있다면 클라이언트 비교를, 기본 설정 가져오기 방법은 Clash 사용 가이드를 확인하세요. 규칙과 DNS의 역할은 고급 설정에서 더 살펴볼 수 있습니다.