이 글에서 다루는 범위

Android에서는 배포판마다 메뉴 이름과 스위치 위치가 조금씩 다르지만, VPN 세션을 여는 권한, 구독·프로필을 불러오는 방식, 규칙 기반 라우팅, 앱 단위 예외(Per-App Proxy)라는 축은 공통입니다. 본문은 이런 흐름을 한 번에 잡을 수 있도록 2026년 기준으로 단계별로 정리합니다.

네트워크 우회·프록시 사용은 국가·기관·서비스 약관에 따라 허용 범위가 다릅니다. 합법적인 용도와 본인의 책임 범위 안에서만 설정을 적용하시기 바랍니다. 용어와 데스크톱 쪽 개념을 먼저 맞추고 싶다면 Clash 사용 문서를 함께 보는 것을 권장합니다.

설치 전에 알아둘 것

APK 출처와 업데이트

플레이 스토어 정책 등으로 인해 클라이언트는 종종 공식 사이트나 저장소에서 배포되는 APK로 설치하는 경우가 많습니다. 「알 수 없는 앱 설치」를 허용할 때는 가능한 한 배포 주체가 분명한 빌드를 선택하고, 업데이트 후에도 같은 출처를 유지하는 편이 안전합니다. 설치 패키지는 공식 다운로드 페이지에서 받는 흐름이 버전 관리에 유리합니다.

기기 측 준비

배터리 최적화에서 앱이 백그라운드에서 강제 종료되면 VPN이 끊깁니다. 제조사별로 「자동 시작」「배터리 제한 없음」 메뉴가 있으면 Clash와 연관된 구성 요소(있는 경우)를 예외로 두세요. 또한 기업 단말이나 MDM이 걸린 기기는 프로필·VPN 설치 자체가 차단될 수 있습니다.

첫 실행과 권한

대부분의 Clash 계열 Android 앱은 트래픽을 잡기 위해 시스템 VPN API를 사용합니다. 처음 연결할 때 뜨는 확인 화면에서 허용해야 하며, 이후에도 OS 업데이트 직후 권한이 초기화되는 경우가 있으니 연결이 안 되면 설정 앱의 VPN 목록을 다시 확인하세요.

알림 권한을 켜 두면 현재 모드·선택 노드를 빠르게 확인하거나, 일시 정지에 활용하기 쉽습니다. 다만 알림이 거슬리면 최소한 「연결됨」 여부만 보이도록 채널을 조정하는 편이 좋습니다.

구독·프로필 가져오기

구독 URL로 추가

서비스 제공자가 준 구독 링크를 그대로 붙여 넣는 방식이 가장 흔합니다. 갱신 주기는 너무 짧게 잡으면 배터리·데이터 소모가 늘 수 있으므로, 실패 로그가 없다면 수 시간~하루 단위로도 충분한 경우가 많습니다. 수동으로 새로고침할 수 있는 UI가 있으면, 구독 서버가 불안정할 때만 눌러 주는 습관이 회선에 부담을 줄입니다.

파일·클립보드로 가져오기

YAML로 받은 프로필을 파일로 받았다면 저장소에서 열거나, 텍스트를 붙여 넣어 로컬 프로필로 둘 수 있습니다. 데스크톱에서 쓰던 설정을 그대로 옮길 때는 Android에서 지원하지 않는 프로토콜·필드가 없는지 릴리스 노트와 문서를 대조하세요. 규칙 세트(Rule Provider) URL이 기기에서 막히면 프로필은 들어와도 규칙이 비어 있을 수 있습니다.

모드 이해하기: Rule / Global / Direct

Rule은 설정에 적힌 도메인·IP·GEOIP 등에 따라 프록시와 직접 연결을 나눕니다. 일상 사용에는 기본값으로 두는 경우가 많습니다. Global은 모든 트래픽을 선택한 프록시 그룹으로내므로, 특정 앱만 테스트할 때는 오히려 Per-App와 섞이면 혼란이 생길 수 있어 주의가 필요합니다. Direct는 이름 그대로 우회 없이 나가게 하므로, 문제 원인을 가를 때 잠시 켜 보는 진단용으로 쓰입니다.

프로필마다 기본 DNS 모드(fake-ip 등)가 다를 수 있습니다. 특정 앱만 느리거나 로컬 NAS에 붙지 않으면 DNS 섹션을 의심하고, 필요 시 프로필 제공자의 권장값을 따르세요.

TUN·시스템 VPN과의 관계

Android에서는 앱이 가상 네트워크 인터페이스를 등록해 트래픽을 가로채는 방식이 일반적입니다. 이것이 곧 설정 앱에 보이는 「VPN」 항목과 연결됩니다. 일부 ROM에서는 「항상 켜진 VPN」이나 「분할 터널링」 같은 OS 수준 옵션이 추가로 있으며, 이는 Clash 앱 안의 Per-App 설정과 겹치거나 충돌할 수 있으니 한쪽만 쓰거나 우선순위를 정리하는 편이 낫습니다.

게임·음성 통화처럼 RTT에 민감한 앱은 VPN 경로에서 지연이 늘어날 수 있습니다. 이때는 해당 앱만 직접 연결(제외) 목록에 넣거나, 규칙에서 예외 도메인을 명시하는 식으로 조정합니다.

앱별 분리(Per-App Proxy) 상세

왜 필요한가

은행·증권·간편결제·사내 앱 등은 출국 IP나 데이터센터 IP를 탐지해 접속을 막는 경우가 있습니다. 이때 전역 프록시를 끄기보다, 문제를 일으키는 앱만 직접 연결로 빼 주는 방식이 운영이 쉽습니다. 반대로 데이터를 아끼려면 지정한 앱만 프록시를 타게 하는 화이트리스트 방식도 가능합니다.

UI에서 하는 설정 순서

대표적인 흐름은 다음과 같습니다. (앱마다 메뉴 명칭은 다를 수 있습니다.)

1) 메인 화면에서 VPN 연결을 잠시 끄거나, 설정만 열어둔 상태에서 앱 목록을 연다. 2) 「앱별 프록시」「분할 앱」「Bypass」 등의 항목에서 모드를 고른다 — 전체 우회 중 예외(블랙리스트)인지, 선택한 앱만 우회(화이트리스트)인지가 핵심입니다. 3) 목록에서 앱을 체크하고 저장한다. 4) VPN을 다시 켠 뒤 해당 앱에서 로그인·결제를 재시도한다.

흔한 실수

시스템 앱·웹뷰를 포함한 부속 패키지를 빼먹으면 여전히 프록시를 탑니다. 브라우저를 직접 연결로 두었는데도 특정 사이트만 막히면, 같은 제조사 브라우저가 여러 패키지 이름으로 나뉘어 있는지 확인하세요. 또한 「화이트리스트」 모드인데 필요한 앱을 빼먹으면 해당 앱은 전혀 우회되지 않습니다.

문제가 생겼을 때

연결은 되는데 아무 사이트도 안 열린다면 DNS·시간 동기화·노드 자체 장애를 의심합니다. 다른 기기에서 같은 구독이 동작하는지 먼저 확인하세요. 특정 앱만 실패하면 Per-App 예외와 앱 자체의 VPN 탐지(루팅·에뮬레이터 차단 등)를 살펴봅니다.

배터리 절전으로 앱이 죽어 VPN이 내려가면, 로그에는 원인이 안 남는 경우가 많습니다. 절전 예외잠금 화면에서의 백그라운드 제한을 완화해야 합니다. 구독 갱신 직후에만 깨진다면 파서·코어 버전과 프로필 문법 오류를 점검하고, 필요 시 클라이언트를 최신으로 맞춥니다.

기억할 점: Android는 제조사·OS 버전별로 VPN 스택과 절전 정책이 달라, 같은 YAML이라도 체감이 다를 수 있습니다. 한 번에 여러 옵션을 바꾸기보다 DNS → 프로필 → 모드 → Per-App 순으로 좁혀 가며 재현 조건을 남기세요.

규칙형 클라이언트는 한번 구조를 잡아 두면 모바일에서도 데스크톱과 비슷한 수준으로 앱·도메인 단위 제어가 가능합니다. 특히 Per-App는 결제·금융 앱과 우회가 필요한 앱을 동시에 쓰는 사용자에게 체감 차이가 큽니다. 배포 경로가 분명하고 문서와 함께 제공되는 빌드를 유지하면, 연결 성공률과 재현성도 함께 좋아지는 경우가 많습니다.

→ Clash를 무료로 내려받아 Android에서 구독·규칙·앱별 분리를 한곳에서 정리해 보세요