Android에서 Clash 사용 시 핵심 설정 2가지: VpnService 권한 승인과 절전 화이트리스트
Android Clash는 VpnService로 로컬 터널을 만듭니다. 권한 승인 팝업, 백그라운드 강제 종료, 앱별 프록시가 대표적 문제입니다. 승인 원리와 주요 제조사별 절전 화이트리스트 등록 경로를 정리합니다.
Android의 Clash가 반드시 권한 승인 창을 띄우는 이유
Windows, macOS의 Clash 클라이언트는 시스템 프록시 설정이나 TUN 가상 네트워크 카드로 트래픽을 가로채지만, Android 시스템은 보안상의 이유로 이 경로를 막아 두었습니다. 일반 앱은 네트워크 인터페이스를 직접 읽고 쓸 권한이 없습니다. 시스템이 남겨 둔 공식 통로는 VpnService이며, 전체 트래픽을 넘겨받으려는 앱(프록시 도구뿐 아니라 정식 기업용 VPN, 자녀 보호 소프트웨어 등도 포함)은 모두 이 인터페이스를 통해 사용자에게 권한을 요청해야 합니다.
그래서 Android용 Clash 클라이언트를 처음 열고 프록시를 켜면 시스템이 "VPN 연결을 하시겠습니까? 이 앱은 모든 네트워크 트래픽을 모니터링하기 위해 VPN 연결을 설정하려 합니다"와 같은 대화창을 띄웁니다. 이는 Clash 자체의 동작이 아니라 Android 시스템이 VpnService 인터페이스에 대해 강제로 표시하는 안내로, 이 기술 경로를 사용하는 앱이라면 예외 없이 거쳐야 합니다. "확인/허용"을 누르면 시스템이 가상 네트워크 인터페이스를 할당하고, 그때부터 Clash가 기기 트래픽을 커널 단계에서 처리해 규칙대로 분배할 수 있습니다.
한 번 승인하면 앱을 삭제 후 재설치하거나 앱 데이터를 지우지 않는 한 시스템이 보통 이 선택을 기억해 다음부터는 팝업이 다시 뜨지 않습니다. 매번 프록시를 켤 때마다 재승인이 필요하다면, 배터리 관리 소프트웨어가 백그라운드에서 앱 상태를 정리했거나 시스템 업데이트로 VPN 권한 기록이 초기화됐을 가능성이 큽니다.
권한 창이 뜨지 않거나 눌러도 반응이 없을 때
일부 기기에서는 "시작" 버튼을 누른 뒤 팝업이 순간적으로 사라지거나, 팝업이 전혀 뜨지 않거나, 프록시 스위치는 켜져 있는데 트래픽이 실제로는 프록시를 타지 않는 경우가 있습니다. 아래 순서로 하나씩 점검해 보세요.
- 다른 VPN 연결이 이미 있는지 확인합니다. Android 시스템은 한 번에 하나의
VpnService인스턴스만 허용합니다. 기기에 기업용 VPN, 다른 프록시 도구, 혹은 "개인 DNS"에 가상 네트워크 카드가 필요한 기능이 설정돼 있으면 Clash 터널이 밀려나거나 아예 생성되지 않으며, 시스템 설정의 "VPN" 목록에서 현재 사용 중인 항목을 확인할 수 있습니다. - "앱 잠금"이나 권한 관리에 막혀 있지 않은지 확인합니다. 일부 커스텀 시스템은 VPN 권한을 일반 네트워크 권한과 별도로 개인정보 관리 항목에 두므로, 설정의 개인정보 또는 권한 페이지에서 "VPN 서비스" 또는 "VPN 연결 설정" 항목을 따로 찾아 켜야 합니다.
- 앱을 재설치해 데이터를 초기화한 뒤 다시 시도합니다. 권한 기록이 손상됐다면 승인 절차를 처음부터 다시 밟는 것으로 대부분 해결됩니다. 재설치 전에 구독 정보와 사용자 규칙을 미리 내보내 두어 설정 손실을 막으세요.
- 시스템 프록시 모드로 바꿔서 검증합니다. 클라이언트가 TUN 모드와 기존 시스템 프록시 모드를 함께 지원한다면, 먼저 시스템 프록시 모드로 구독과 노드 자체에 문제가 없는지 확인한 뒤 VpnService 권한 문제만 따로 좁혀 나가는 것이 효율적입니다.
화이트리스트를 설정해도 시스템이 백그라운드를 종료하는 이유
VpnService로 만든 터널은 장시간 실행되는 백그라운드 프로세스입니다. Android의 배터리 관리 메커니즘은 기본적으로 전면에서 오래 상호작용이 없는 프로세스를 "의심스러운 백그라운드 활동"으로 간주해 적극적으로 정리하며, 국내 제조사 커스텀 시스템일수록 이 정책이 특히 공격적입니다. 실제로는 화면 잠금 후 얼마 지나면 프록시가 끊기거나, 백그라운드로 몇 분 두면 네트워크가 직접 연결로 되돌아가거나, 야간이나 장시간 방치 시 프로세스가 조용히 종료되는 형태로 나타납니다.
이 터널을 유지하려면 핵심은 시스템의 배터리 최적화 정책이 이 앱을 "인지하지 못하게" 하거나, 절전 제한에서 명시적으로 제외되도록 설정하는 것입니다. 이는 보통 두 가지 설정이 함께 필요합니다.
- 시스템 차원의 배터리 최적화 화이트리스트. 대부분의 Android 시스템 설정에는 "배터리 최적화", "배터리 소모 순위" 또는 "앱 지능형 관리" 항목이 있으며, Clash 클라이언트를 찾아 "최적화 안 함" 또는 "백그라운드 활동 허용"을 선택합니다.
- 제조사가 자체적으로 추가한 절전 관리자 화이트리스트. 이는 시스템 기본 배터리 최적화와는 별도의 독립된 메커니즘으로, 각각 따로 허용해 주어야 합니다. 다음 항목에서 제조사별 경로를 정리합니다.
주요 제조사 시스템별 화이트리스트 설정 경로
브랜드마다 메뉴 이름과 단계가 다소 다릅니다. 아래 경로는 현재 주류 버전에서 흔히 볼 수 있는 위치를 기준으로 하며, 메뉴 문구가 다르면 설정 검색창에 "배터리", "절전" 또는 "자동 실행"을 입력하면 대부분 빠르게 찾을 수 있습니다.
Xiaomi / Redmi(MIUI / HyperOS)
설정 → 앱 설정 → 앱 관리 → Clash 클라이언트 찾기 → 절전 정책을 "제한 없음"으로 선택합니다. 추가로 설정 → 배터리 및 성능 → 앱 지능형 제어에서 해당 앱의 "메모리 및 백그라운드 사용 관리" 제한을 해제해야 하며, 두 곳 모두 허용해야 백그라운드에 안정적으로 상주합니다.
Huawei(HarmonyOS / EMUI)
설정 → 배터리 → 배터리 설정 더보기 → 실행 관리에서 Clash 클라이언트의 자동 관리를 끄고 "자동 실행 허용", "연관 실행 허용", "백그라운드 활동 허용" 세 개 스위치를 수동으로 켭니다. 일부 기기는 "앱 실행 관리" 외에 "스마트 절전"이 해당 앱에 거는 제한도 따로 꺼야 합니다.
OPPO(ColorOS)
설정 → 배터리 → 앱 배터리 소모 관리에서 해당 앱을 찾아 "백그라운드 실행 허용"을 선택합니다. 이어서 설정 → 앱 관리 → 앱 실행 관리에서 수동 관리로 바꾸고 세 스위치(자동 실행, 연관 실행, 백그라운드 실행)를 모두 켭니다.
vivo(OriginOS / Funtouch OS)
i管家(iManager) → 절전 관리 → 백그라운드 고전력 소모에서 Clash 클라이언트를 백그라운드 고전력 소모 허용 목록에 추가합니다. 이어서 휴대폰 관리자 → 앱 관리 → 권한 관리 → 자동 실행 관리에서 해당 앱의 자동 실행 스위치를 켭니다.
Samsung(One UI)
설정 → 배터리 및 디바이스 케어 → 배터리 → 백그라운드 사용 제한에서 앱을 "절전 대상 앱", "최대 절전 앱" 목록에서 제외합니다. 이어 "미사용 앱 자동 종료" 제한에도 포함되지 않았는지 별도로 확인합니다. 삼성의 절전 정책은 비교적 완화된 편이라 보통 이 한 곳만 조정하면 됩니다.
앱별 프록시: 필요한 앱만 터널로 보내기
Android의 VpnService는 터널을 만드는 것 외에도, 클라이언트가 어떤 앱의 트래픽을 프록시에 포함시키고 어떤 앱은 직접 연결로 둘지 지정할 수 있게 해 줍니다. 이것이 바로 앱별 프록시(일부 클라이언트에서는 "앱 화이트리스트"와 "앱 블랙리스트"라는 반대 방향의 두 모드로 부릅니다)입니다. 대표적인 사용 사례는 브라우저와 특정 앱 몇 개만 프록시를 태우고 은행·결제 앱은 직접 연결로 두는 것, 혹은 반대로 프록시에 민감한 몇몇 앱만 제외하는 것입니다.
앱별 프록시를 설정할 때 주의할 점 두 가지가 있습니다. 첫째, 화이트리스트 모드와 블랙리스트 모드는 동시에 적용될 수 없고 한 번에 하나만 유효하므로, 모드를 잘못 고르면 프록시를 태워야 할 앱이 빠지거나 그러지 않아야 할 앱이 오히려 프록시를 타게 됩니다. 둘째, 앱별 목록을 수정한 뒤에는 보통 프록시 서비스를 한 번 재시작해야 적용됩니다. 시스템의 VpnService 터널 파라미터는 연결을 맺을 때 한 번에 기록되므로, 실행 중에 목록을 바꿔도 즉시 반영되지 않습니다.
특정 앱이 프록시를 타는지 빠르게 확인하고 싶다면 앱별 기능에 의존할 필요 없이, 클라이언트의 연결 로그나 트래픽 패널에서 해당 앱의 도메인 요청 기록을 직접 보는 편이 목록을 반복해서 조정하는 것보다 훨씬 직관적입니다.
전체 점검 순서 정리
위 내용을 종합하면 Android 프록시가 불안정할 때 권장하는 전체 점검 순서는 다음과 같습니다. 먼저 VpnService 권한 승인 자체가 정상적으로 성립했는지 확인하고(시스템 VPN 목록에 활성 연결 아이콘이 있는지 확인), 다음으로 다른 앱이 같은 VpnService 자리를 차지하고 있지 않은지 확인합니다. 그 다음 시스템 배터리 최적화와 제조사 절전 관리자, 두 층의 화이트리스트를 차례로 대조합니다. 마지막으로 앱별 프록시를 사용 중이라면 모드와 목록이 의도한 대로 맞는지 점검합니다. 이 네 단계만으로 Android에서 "설치했지만 불안정한" 대부분의 상황을 파악할 수 있으며, 무작정 재설치하거나 클라이언트를 바꾸는 것보다 훨씬 효율적입니다.