Clash Android 사용 설정: VpnService 및 배터리 최적화 제외 설정

Android VPN 연결 방식과 백그라운드 실행, 배터리 제한, 알림 권한 및 연결 끊김 복구 방법을 설명합니다.

Android용 Clash 클라이언트는 일반적으로 시스템에서 제공하는 VpnService를 이용해 기기의 트래픽을 가로챕니다. 처음 실행할 때 “연결 요청”이 표시되고 VPN 열쇠 아이콘이 나타난다면, 시스템이 앱 트래픽을 로컬 가상 네트워크 인터페이스로 전달하고 있다는 뜻입니다. 휴대폰이 기존의 원격 VPN 서버에 직접 연결되었다는 의미는 아닙니다. Clash 코어는 이 트래픽을 읽고 설정된 규칙, 정책 그룹 및 노드 선택에 따라 프록시, 직접 연결 또는 차단 여부를 결정합니다.

이 방식은 시스템 프록시를 직접 사용하지 않는 대부분의 앱에도 적용할 수 있지만, Android의 백그라운드 제한 영향을 더 쉽게 받습니다. 화면을 잠근 뒤 연결이 끊기거나, Wi-Fi를 전환한 후 복구되지 않거나, 알림을 끈 뒤 서비스가 사라지는 현상은 대개 구독 자체가 아니라 VpnService, 포그라운드 서비스, 배터리 정책 및 네트워크 전환이 함께 작용한 결과입니다. 설정은 먼저 구성이 정상인지 확인한 다음 시스템 권한을 조정하고, 마지막으로 대기 상태와 네트워크 전환 결과를 확인하는 순서가 바람직합니다.

VpnService가 Android 트래픽을 처리하는 방식

시스템 권한을 얻은 클라이언트는 TUN 유형의 가상 네트워크 인터페이스를 생성합니다. Android는 선택한 앱에서 발생한 IP 패킷을 이 인터페이스로 전달하고, Clash 또는 mihomo 코어가 DNS 처리, 규칙 매칭 및 프록시 전달을 수행합니다. 규칙 모드에서는 일반적으로 설정 파일의 위에서부터 트래픽을 대조합니다. 도메인, IP, 프로세스 또는 규칙 세트가 일치하면 해당 정책 그룹으로 전달됩니다. 일치하는 규칙이 없으면 보통 마지막의 기본 규칙이 처리합니다.

여기서 말하는 “VPN”은 주로 Android가 제공하는 트래픽 진입점입니다. 프록시 노드는 Clash 설정에 따라 결정되며, VpnService 자체가 노드를 제공하거나 구독을 대신하지는 않습니다. 구독을 가져온 뒤에도 설정을 업데이트하고 정책 그룹을 선택한 다음 현재 노드가 정상인지 확인해야 합니다. 구독에 규칙과 정책 그룹만 있고 유효한 프록시가 없다면, 시스템에 VPN 아이콘이 표시되더라도 프록시가 필요한 외부 연결은 성립하지 않습니다.

구성 요소 주요 역할 일반적인 표시
Android VpnService 가상 인터페이스를 만들고 앱 트래픽을 클라이언트로 전달 상태 표시줄에 VPN 표시가 나타남
Clash 또는 mihomo 코어 설정 해석, DNS 처리, 규칙 매칭 및 연결 전달 로그에 규칙 및 정책 일치 결과가 표시됨
구독 설정 노드, 정책 그룹, 규칙 및 관련 매개변수 제공 업데이트 후 노드와 정책 선택 항목이 바뀔 수 있음
포그라운드 서비스 알림 프록시 서비스가 계속 실행 중임을 시스템에 알림 알림 창에 실행 상태 진입점이 유지됨

Android에서는 동일한 사용자 공간에서 활성화된 VPN 서비스를 보통 하나만 유지할 수 있습니다. 다른 VPN 클라이언트, 회사 업무 프로필 VPN, 광고 차단 도구 및 일부 방화벽 앱도 VpnService를 사용할 수 있습니다. 새 서비스를 시작하면 기존 서비스가 즉시 중지될 수 있습니다. 따라서 Clash Android가 시작되지 않을 때는 시작 버튼을 계속 누르기보다, 먼저 시스템 VPN 설정에 이미 작동 중인 연결이 있는지 확인해야 합니다.

처음 실행하거나 구독을 가져온 뒤의 설정 순서

처음 사용할 때는 고정된 순서로 진행하는 것이 좋습니다. 그래야 노드 장애, 규칙 문제 및 시스템 권한 문제를 혼동하지 않을 수 있습니다. 먼저 설정을 가져와 업데이트를 완료한 뒤, 프록시 또는 정책 페이지에서 연결 가능한 노드를 하나 선택하세요. 정책 그룹이 자동 선택으로 되어 있다면 먼저 지연 시간 테스트를 실행할 수 있지만, 지연 시간은 테스트 주소의 응답 상태만 보여 줄 뿐 모든 웹사이트에 접속할 수 있다는 뜻은 아닙니다.

  1. 구독 가져오기: 구독 주소가 유효하고 설정 업데이트 중 파싱 오류가 없는지 확인합니다. YAML 들여쓰기 오류, 참조 규칙 세트 다운로드 실패 또는 만료된 구독으로 인해 설정을 불러오지 못할 수 있습니다.
  2. 정책 선택: 주요 프록시 정책 그룹으로 들어가 현재 연결 가능한 노드를 선택합니다. 설정을 업데이트하면 정책 그룹의 항목이 초기화될 수 있으므로 업데이트 후 선택 항목을 다시 확인해야 합니다.
  3. 서비스 시작: VPN 또는 TUN 실행 스위치를 켜고, Android에 표시되는 연결 요청을 확인한 뒤 클라이언트의 VPN 생성을 허용합니다.
  4. 실행 알림 유지: 알림 창에서 클라이언트의 포그라운드 서비스 상태가 보이는지 확인합니다. 시스템이 알림을 제한한다면 앱 알림 설정에서 해당 알림 카테고리를 확인하세요.
  5. 연결 확인: 직접 연결될 것으로 예상되는 사이트와 프록시를 사용할 것으로 예상되는 사이트를 각각 열고, 클라이언트 로그에서 규칙 일치 결과를 확인합니다.

앱별 프록시를 지원한다면 “선택한 앱만 프록시 사용” 또는 “선택한 앱 우회”를 선택할 수 있습니다. 전자는 소수의 앱만 Clash를 거치게 할 때 적합하고, 후자는 은행 앱, 로컬 네트워크 관리 앱 또는 호환성이 낮은 앱을 제외할 때 적합합니다. 앱별 목록을 변경한 뒤에는 대상 앱을 완전히 종료했다가 다시 열어야 합니다. 이미 생성된 연결이 새 네트워크 경로로 즉시 전환되지 않을 수 있기 때문입니다.

DNS 설정도 첫 연결 결과에 영향을 줍니다. mihomo 코어는 도메인 처리를 위해 fake-ip 또는 redir-host 강화 모드를 사용하는 경우가 많습니다. 설정에 DNS 서버, 폴백 규칙 및 도메인 정책이 이미 정의되어 있다면 여러 위치에서 임의로 덮어쓰지 않는 것이 좋습니다. Android의 “비공개 DNS”는 암호화된 DNS를 사용하므로 일부 네트워크 또는 설정 조합에서는 클라이언트의 DNS 처리와 다르게 작동할 수 있습니다. 도메인은 열리지 않지만 IP 주소로는 접속되는 경우, 클라이언트를 바로 재설치하기보다 비공개 DNS를 잠시 자동으로 되돌려 비교해 보세요.

mode: rule
dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - 1.1.1.1
    - 8.8.8.8

위 예시는 일반적인 필드 관계를 설명하기 위한 것일 뿐이며, 실제 구독에는 완전한 DNS 설정이 이미 포함되어 있을 수 있습니다. 수정 전에는 원본 설정을 보관하고, 원격 구독이 다시 업데이트될 때 로컬 변경 사항이 덮어써질 수 있다는 점에 유의하세요. Android 클라이언트 화면의 VPN 스위치는 보통 시스템 가상 인터페이스를 생성하는 역할을 하며, 설정 파일의 모든 tun 필드와 단순히 같은 의미로 볼 수 없습니다.

백그라운드 실행, 배터리 최적화 제외 및 알림 권한

Android는 배터리 잔량, 사용 빈도 및 제조사 정책에 따라 백그라운드 프로세스를 제한합니다. Clash 실행 중에는 일반적으로 포그라운드 서비스가 시작되지만, 장시간 화면 잠금, 저전력 모드 또는 메모리 부족 상황에서는 여전히 제한될 수 있습니다. 대표적인 증상은 화면이 켜져 있을 때는 정상적으로 연결되지만 몇 분간 잠근 뒤 요청이 시간 초과되는 경우, 클라이언트를 다시 열면 연결이 복구되는 경우, 또는 시스템이 최근 앱을 정리한 뒤 VPN 아이콘도 사라지는 경우입니다.

배터리 사용을 제한 없음으로 설정

시스템의 “설정 → 앱 → Clash 클라이언트 → 배터리”와 같은 화면으로 이동해 백그라운드 배터리 사용을 “제한 없음”, “백그라운드 활동 허용” 또는 제조사 시스템의 동일한 항목으로 설정합니다. Android 버전에 따라 명칭은 다를 수 있으며, 일부 기기에서는 “앱 배터리 관리”, “배터리 최적화” 또는 “특별한 앱 권한”에 관련 메뉴가 있습니다. 설정을 마친 뒤에는 화면을 잠근 상태로 일정 시간 기다린 후 테스트해야 하며, 몇 분간 전면에서 사용한 것만으로 적용 여부를 판단해서는 안 됩니다.

배터리 최적화 제외는 본질적으로 시스템이 해당 앱의 대기 제한을 줄이도록 하는 설정입니다. 작동하지 않는 노드를 복구하거나 노드의 대역폭을 높여 주지는 않습니다. 전면에서도 연결되지 않는다면 먼저 설정, 노드 및 DNS를 확인해야 하며, 전면에서는 정상이고 백그라운드에서만 끊길 때 배터리 정책을 우선 점검해야 합니다.

자동 시작 및 백그라운드 활동 허용

일부 기기에는 “자동 시작”, “연결된 앱 자동 시작”, “백그라운드 팝업” 또는 “백그라운드 실행” 스위치가 있습니다. 부팅 후 프록시를 자동으로 복구해야 한다면 클라이언트의 자동 시작을 허용할 수 있습니다. 반대로 필요할 때만 프록시를 켠다면 모든 시작 권한을 활성화할 필요는 없습니다. 또한 클라이언트 자체가 부팅 후 복구 또는 VPN 항상 켜기를 지원해야 하므로, 자동 시작 권한만 부여한다고 서비스가 반드시 생성되는 것은 아닙니다.

일부 시스템은 최근 앱을 정리할 때 백그라운드 서비스도 함께 종료합니다. 기기에서 최근 앱 잠금 기능을 제공한다면 클라이언트를 작업 목록에 유지할 수 있습니다. 다만 작업 잠금은 제조사 시스템의 보조 기능일 뿐이며, VpnService 권한, 포그라운드 서비스 알림 및 배터리 최적화 설정을 대신할 수는 없습니다.

알림 및 포그라운드 서비스 상태 확인

Android 13 이상에서는 알림 권한을 별도로 요청합니다. 클라이언트의 상시 알림은 서비스 상태, 트래픽 또는 중지 진입점을 표시하는 데 사용됩니다. 알림 권한을 거부하면 포그라운드 서비스 표시 방식이 달라질 수 있고, 서비스가 계속 실행 중인지 확인하기도 어려워집니다. 앱 알림 설정에서 실행 상태와 관련된 카테고리를 허용하고, 해당 카테고리를 자주 소리가 나는 높은 방해 수준으로 설정하지 않는 것이 좋습니다.

시스템의 데이터 절약 모드도 확인해야 합니다. “데이터 절약 모드”가 켜져 있다면 클라이언트가 백그라운드에서 모바일 데이터를 사용할 수 있도록 허용해야 합니다. 그렇지 않으면 Wi-Fi에서 모바일 네트워크로 전환할 때 포그라운드 서비스는 실행 중이어도 새 프록시 연결이 정상적으로 생성되지 않을 수 있습니다. 듀얼 SIM 기기에서는 현재 데이터 SIM이 연결되어 있는지 확인하고, SIM을 전환한 뒤 기본 네트워크가 안정될 때까지 기다린 다음 Clash가 다시 연결되는지 살펴보세요.

VPN 항상 켜기 및 “VPN 없이 연결 차단”

Android 시스템의 VPN 설정에는 일반적으로 “VPN 항상 켜기”가 있습니다. Clash 클라이언트를 선택하면 시스템이 해당 VpnService를 계속 활성화하려고 하며, 기기 부팅 후 복구를 요청할 수 있습니다. 이 옵션은 일상적인 모든 트래픽을 지속적으로 규칙 시스템에 통과시키려는 사용자에게 적합하지만, 부팅 단계에서 클라이언트, 설정 및 노드가 모두 정상적으로 로드되어야 합니다.

“VPN 없이 연결 차단”은 더 엄격한 시스템 옵션입니다. 이 옵션을 켜면 VpnService가 아직 생성되지 않은 동안 기기의 트래픽이 차단될 수 있습니다. 클라이언트 충돌, 설정 로드 실패, 구독 규칙 세트 다운로드 미완료 또는 시스템 부팅 직후에는 일시적으로 인터넷에 연결되지 않을 수 있습니다. 활성화하기 전에 시스템 VPN 페이지에서 이 옵션을 끄는 방법을 알고 있는지 확인하고, Wi-Fi, 모바일 데이터 및 화면 잠금 후 복구 상황에서 클라이언트가 안정적으로 작동하는지 먼저 테스트하세요.

엄격한 차단 모드는 앱별 우회, 로컬 네트워크 접근 및 기기 검색이 필요한 앱에도 영향을 줄 수 있습니다. 프린터, 화면 공유 기기 및 라우터 관리 페이지처럼 로컬 네트워크 대역에 의존하는 기능을 사용할 때는 설정에서 LAN 접근을 허용하고 대상 트래픽이 DIRECT와 일치하는지 확인하세요. 규칙이 직접 연결을 선택하더라도 트래픽은 먼저 VpnService로 들어간 뒤 코어가 로컬 라우팅에 따라 전송할 수 있으므로, 잘못된 라우팅, DNS 또는 엄격한 제한이 결과에 영향을 줄 수 있습니다.

Android 핫스팟으로 공유하는 트래픽은 휴대폰에서 VpnService를 실행했다고 해서 자동으로 같은 방식으로 Clash를 통과하지 않는 경우가 많습니다. 핫스팟 전달 지원 여부는 클라이언트 구현, 시스템 버전 및 기기 권한에 따라 달라지므로, 휴대폰 자체에서 접속된다는 이유만으로 공유된 기기도 프록시를 사용한다고 판단해서는 안 됩니다. 공유가 필요하다면 클라이언트에 전용 핫스팟, LAN 수신 또는 전달 설정이 있는지 확인하고 로컬 포트의 노출 범위에도 주의하세요.

네트워크 전환 후 연결 복구 순서

집 Wi-Fi에서 모바일 데이터로 전환하거나, 웹 로그인 페이지가 필요한 공용 Wi-Fi에 접속하거나, 신호가 없는 지역에서 벗어나면 Android의 기본 네트워크가 바뀝니다. 기존 TCP 또는 UDP 연결은 보통 그대로 사용할 수 없으며, Clash는 새 네트워크에서 노드 연결을 다시 생성해야 합니다. 잠시 중단되는 것은 정상입니다. 기다린 뒤에도 복구되지 않으면 외부에서 내부로 들어가는 순서로 확인하세요.

  1. 먼저 기본 네트워크 확인: Clash를 잠시 중지하고 현재 Wi-Fi 또는 모바일 데이터 자체가 인터넷에 접속되는지 확인합니다. 공용 Wi-Fi라면 먼저 인증 페이지에서 로그인해야 합니다.
  2. VpnService 다시 시작: 클라이언트 실행 스위치를 끄고 VPN 아이콘이 사라질 때까지 기다린 뒤 다시 켭니다. 상태가 동기화되지 않도록 짧은 시간 안에 반복해서 누르지 마세요.
  3. 노드 변경: 이미 정상 작동이 확인된 다른 노드를 선택해 다시 테스트합니다. 특정 노드에 연결되지 않는다고 해서 Android 백그라운드 설정이 잘못된 것은 아닙니다.
  4. 구독 업데이트: 구독이 만료되지 않았는지 확인하고 업데이트 과정에서 네트워크, 인증서 또는 설정 파싱 오류가 발생했는지 살펴봅니다.
  5. 시스템 시간 확인: 자동 날짜, 시간 및 시간대가 잘못되면 TLS 연결이 실패할 수 있습니다. 로그에는 핸드셰이크 오류 또는 인증서 시간 이상으로 표시되는 경우가 많습니다.
  6. DNS 비교: 도메인만 실패한다면 비공개 DNS, 설정의 DNS 및 현재 네트워크의 가로채기를 확인합니다. IP와 도메인 모두 실패한다면 노드와 라우팅을 계속 점검하세요.
  7. 다른 VPN 확인: VpnService를 동시에 사용하는 방화벽, 필터 또는 회사 VPN을 중지한 뒤 Clash에 다시 권한을 부여합니다.

로그는 장애 수준을 구분하는 주요 근거입니다. 연결 시간 초과가 반복되면 노드 주소, 포트, 현재 네트워크 연결 가능 여부 및 방화벽을 확인해야 합니다. 도메인 해석 실패가 나타나면 DNS와 네트워크 인증을 확인하세요. 설정 파싱 오류가 나타나면 구독과 YAML 내용으로 돌아가야 합니다. 새로운 네트워크 오류 없이 서비스만 사라진다면 백그라운드 프로세스가 제한되었거나 시스템이 종료했을 가능성이 높습니다.

증상 우선 확인할 항목 권장 조치
화면을 잠근 뒤 VPN 아이콘이 사라짐 배터리 최적화, 백그라운드 활동, 포그라운드 서비스 제한 없음으로 설정하고 실행 알림 유지
모바일 데이터로 전환한 뒤 계속 시간 초과 백그라운드 데이터, 노드 연결 가능 여부, 기존 연결 서비스를 다시 시작하고 다른 노드로 테스트
도메인만 열리지 않음 설정 DNS, 비공개 DNS, 공용 네트워크 인증 비공개 DNS 자동 설정과 비교하고 해석 로그 확인
시작하자마자 다른 서비스로 대체됨 다른 VPN, 필터 또는 업무 프로필 VpnService 하나만 남긴 뒤 다시 권한 부여
휴대폰을 다시 시작한 뒤 자동 연결되지 않음 VPN 항상 켜기, 자동 시작, 클라이언트 복구 옵션 항목별로 켜고 한 번 재부팅해 확인

안정적인 실행을 위한 일상 점검 목록

장기간 사용할 때는 앱 데이터를 자주 삭제하거나 반복해서 설치할 필요가 없습니다. 데이터를 삭제하면 이미 부여한 권한 상태, 가져온 설정 및 로컬 선택이 사라져 문제를 다시 파악하는 단계만 늘어납니다. 시스템 업데이트, 클라이언트 업그레이드 또는 구독 업데이트 후 항목별로 확인할 수 있도록 간단한 점검 목록을 유지하는 편이 좋습니다.

Clash Android의 안정성은 세 가지 조건에 달려 있습니다. 가장 아래에는 사용 가능한 네트워크와 노드가 있고, 중간에는 올바른 Clash 또는 mihomo 설정이 있으며, 가장 위에는 Android의 VpnService 및 백그라운드 프로세스 관리가 있습니다. 이 계층에 따라 문제를 점검하면 배터리 제한을 구독 장애로 오인하는 일을 피할 수 있고, 노드가 작동하지 않을 때 시스템 권한을 반복해서 수정하는 일도 줄일 수 있습니다. 순서에 맞춘 설정과 대기 테스트를 한 번 완료한 뒤에는 구독 업데이트, 정책 선택 및 시스템 업데이트로 인한 권한 변경만 주로 관리하면 됩니다.

Clash 다운로드