안드로이드에서 앱별 라우팅이 필요한 이유

데스크톱에서 시스템 프록시만 켜는 것과 달리, 안드로이드 앱은 각자 소켓·백그라운드 동기·OEM 번들을 가집니다. VPN 프로필을 전면 적용하면 결제, 지도, 푸시 채널까지 같은 우회를 타게 되어 지연이 늘거나, 캡티브 포털이 있는 공용 Wi‑Fi에서 인증이 꼬이기도 합니다. 앱별 라우팅은 「모든 트래픽을 이 노드로」가 아니라 「어떤 UID를 터널에 태울지」를 먼저 정합니다. Clash Meta for Android는 접근 제어·앱 필터 화면에서 전역, 선택 앱만, 또는 전역+명시적 예외 중 하나를 고를 수 있게 합니다. 빌드마다 메뉴 이름은 조금 다르지만 개념은 같습니다.

아래 설명은 법·이용약관·조직 정책을 위반하는 우회를 권하는 것이 아닙니다. 회사나 학교에서 VPN·분할 금지가 명시되어 있다면 그 규정을 따르는 것이 우선입니다. Clash를 쓸 수 있는 네트워크와 기기에서만 적용하세요. 어떤 클라이언트를 표준으로 삼을지 고민 중이라면 플랫폼별 클라이언트 비교로 유지 관리 빈도와 진단 기능을 함께 보세요.

용어: 「Clash Meta for Android」는 Meta·Mihomo 계열 코어를 쓰는 커뮤니티 안드로이드 빌드를 가리키는 넓은 표현입니다. 앱별·접근 제어·앱 필터 등 이름은 다르지만 UID 기준 분할이라는 점은 동일합니다.

앱 목록과 GEOIP 규칙: 서로 다른 두 층

초보자가 자주 섞는 개념이 있습니다. 구독 설명에 나오는 「중국 본토 우회」「국내 직접」 같은 문구는 config.yaml 안의 규칙으로, 목적지 IP·도메인을 어떻게 분류할지 정합니다. 반면 앱별 제어는 「그 앱의 트래픽이 Clash 터널에 들어올 자격이 있는지」를 정합니다. GEOIP 규칙이 아무리 잘 돼 있어도, 앱 모드가 전역 프록시로 열려 있으면 국내 은행 앱이 해외 출구로 나갈 수 있습니다. 반대로 앱 목록이 완벽해도 특정 사이트용 DOMAIN 규칙이 빠지면 여전히 접속이 꼬일 수 있습니다.

두 슬라이더로 생각하면 편합니다. GEOIP 슬라이더: 「Clash에 도착한 트래픽 중 국가 X는 DIRECT?」 앱 슬라이더: 「이 안드로이드 패키지가 소켓을 Clash에 넘길까?」 둘 다 맞춰야 국내 필수 앱은 OS에서도 빼고, 커널 안에서도 결제·CDN 도메인이 DIRECT로 가는 흐름이 자연스럽습니다. 커널 쪽 규칙 유지 방법은 규칙·분류 모범 사례를 참고하고, 여기서는 안드로이드 쪽 절반에 집중합니다.

선택 앱만 프록시 vs 선택 앱 제외

대부분 빌드는 두 모드를 함께 둡니다. 하나는 체크한 앱만 VPN 인터페이스를 쓰게 하고 나머지는 기본 라우트(화이트리스트)입니다. 다른 하나는 거의 모든 앱을 터널로 보내되 체크한 앱만 예외로 직접 연결(블랙리스트)입니다. 중국어 UI의 「仅代理」는 전자에, 「绕过」류 표현은 예외를 빼는 쪽에 가깝습니다. 모드를 바꾼 뒤에는 대상 앱을 한 번 종료했다가 다시 열어 소켓이 새 정책으로 묶이게 하세요.

모드 동작 잘 맞는 경우
선택 앱만 프록시 목록에 있는 앱만 Clash를 탐. 나머지는 터널 밖. 브라우저·채팅·게임 등 소수만 우회하고 평소와 같이 쓰고 싶을 때.
선택 앱 제외(우회) 기본은 터널, 체크한 앱만 DIRECT. 대부분은 전역에 가깝게 쓰되 은행·NFC 지갑 등만 빼야 할 때.

시스템 구성요소(웹뷰, 다운로드 매니저 등)까지 성급히 건드리면 OEM 기능이나 백그라운드 업데이트가 꼬일 수 있습니다. 먼저 사용자가 설치한 앱부터 조정하고, 필요할 때만 확장하세요.

Clash Meta에서 앱별 제어 켜기: 단계

메뉴 경로는 버전마다 다르지만 흐름은 비슷합니다. 먼저 구독을 불러와 노드가 정상인지 확인한 뒤, 앱을 쪼개기 전에 전체 터널이 한 번은 되는지 검증하세요. 기본 프로필이 깨져 있으면 분할 디버깅만 어려워집니다.

  1. VPN 권한 허용. 안드로이드는 Clash를 일반 VPN과 같이 취급합니다. 연결 요청을 거부하면 앱 목록을 아무리 설정해도 터널이 안 올라옵니다.
  2. TUN(또는 동등 모드) 사용. 투명 포워딩이 필요하면 TUN을 켭니다. 스택·IPv6 선택은 TUN 모드 심화와 교차 확인하세요.
  3. 접근 제어·앱 필터에서 「전체 앱」이 아닌 화이트/블랙 모드로 전환합니다.
  4. 앱을 검색·체크합니다. 표시 이름이 같아도 패키지가 다르면 별개 항목입니다.
  5. 적용 후 VPN 세션을 완전히 끊었다가 다시 연결합니다. 일부 빌드는 재연결 시에만 UID 규칙을 다시 계산합니다.
  6. 검증: 직행이어야 할 앱 하나, 우회가 필요한 앱 하나를 골라 IP 확인 사이트나 로그에서 기대한 정책이 나오는지 봅니다.

패키지 이름 찾기·선택 검증

안드로이드는 런처에 보이는 이름이 아니라 패키지 이름으로 앱을 식별합니다. 브라우저도 stable·beta·lite마다 패키지가 다를 수 있습니다. 시스템 앱 정보 화면, Play 스토어 URL의 id= 파라미터, 신뢰할 수 있는 패키지 조회 도구로 확인하세요. 듀얼 메신저·업무 프로필은 UID가 갈라지므로 각각 체크해야 합니다.

패키지 예시(설명용)
com.android.chrome
org.mozilla.firefox
com.tencent.mm

국내·금융 앱을 DIRECT로 두기

인증서 고정, 통신사 연동, NFC 결제 등은 VPN 가정이 아닌 기본 경로를 전제로 하는 경우가 많습니다. 이런 앱을 해외 출구로 보내면 리스크 관리 알림과 무관하게 차단될 수 있습니다. 실무 패턴은 앱 층에서 먼저 제외(또는 화이트리스트에 넣지 않음)하고, 커널 규칙으로 국내 CDN·결제 도메인을 DIRECT로 유지하는 이중 방어입니다. 슈퍼앱 안 미니프로그램은 예상 밖 서버로 이어질 수 있으니, VPN on/off와 함께 증상이 따라오는지 먼저 보세요. 기업 강화 클라이언트가 분할을 감지하면 정책 위반이 될 수 있으니 문서를 확인하세요. 일반적인 DNS·정책 질문은 FAQ도 함께 읽으면 좋습니다.

보안: 앱을 쪼갰다고 Clash 자체를 패치할 필요가 없어지는 것은 아닙니다. 프로필·구독 토큰은 여전히 기기를 믿을 수 있을 때만 보관하세요.

TUN·구독 규칙은 언제 더 얹나

앱 필터는 UID 범위를 정할 뿐, fake-ip·원격 DNS·DOMAIN 규칙을 대신하지 않습니다. 일상용으로는 소수 앱만 화이트리스트하고, YAML에서는 중국·국내 트래픽 DIRECT, 해외 CDN은 적절한 정책 그룹으로 보내는 층을 얹는 구성이 흔합니다. 폰에서 분할만 하고 노트북 트래픽까지 덮어야 한다면 동일한 체크만으로는 부족하고, 데스크톱 클라이언트나 라우터급 해결책을 검토해야 합니다. OEM이 VPN을 백그라운드에서 죽이면 목록이 랜덤하게 풀리는 것처럼 보일 수 있으니 배터리 최적화 예외를 먼저 잡으세요.

자주 겪는 분할 터널 이슈

우회가 필요한 사이트만 안 된다: 터널이 살아 있는지, 브라우저 패키지를 정확히 골랐는지, DNS가 터널 안에서 막히지 않았는지 순서대로 확인하세요. 국내 앱이 이상하게 느리다: 블랙리스트에 넣었는지, 쌍둥이 패키지를 빠뜨렸는지 봅니다. Wi‑Fi에서는 되고 LTE에서만 실패: IPv6 전용 APN이면 프로필의 IPv6 처리와 스택 선택을 맞춰야 합니다.

마무리

앱별 프록시는 숨은 옵션이 아니라 UID·규칙·DNS를 한 줄로 설명 가능하게 쌓는 작업입니다. 화이트/블랙 중 어떤 멘탈 모델이 편한지 먼저 정하고, 국내 필수 앱은 OS와 YAML 양쪽에서 모두 DIRECT로 가게 맞추면 혼란이 줄어듭니다. 분할만 잘한다고 끝이 아니라, Meta급 코어와 로그·업데이트가 함께 있어야 장기적으로 덜 지칩니다.

Clash를 무료로 받아 안드로이드와 데스크톱에서 비슷한 운영 방식으로 맞춰 보세요. 앱 목록과 규칙을 스스로 검증할 수 있을 때 유지보수 비용이 줄어듭니다.