왜 Android에서는 구독, TUN, DNS를 한 번에 맞춰야 할까요
스마트폰에서 프록시를 쓸 때 흔한 오해는 「노드만 고르면 끝」이라는 점입니다. 실제로는 프로필이 제대로 받아졌는지, 시스템 VPN(사실상 TUN 계열 경로)이 켜졌는지, DNS 조회가 의도한 경로로 흘러가는지가 따로따로 깨지면 증상만으로는 원인 찾기가 어렵습니다. Clash for Android(CFA)나 ClashMeta for Android 같은 클라이언트는 데스크톱과 같은 YAML 규칙을 그대로 쓰는 대신, 모바일 OS의 VPN 권한·절전 정책·Private DNS 같은 레이어와 맞물립니다.
이 글은 초보자도 순서만 따라가면 기본기를 갖추도록, 구독 URL 가져오기 → 모드와 정책 확인 → VPN(TUN) 켜기 → DNS·누수 점검 → 현실적인 트러블슈팅 흐름으로 정리했습니다. 메뉴 이름은 빌드·포크마다 조금 다를 수 있으나, 작업의 본질은 동일합니다.
어떤 앱을 쓰면 좋을까: CFA와 ClashMeta for Android
커뮤니티에서는 Clash for Android와 이를 이어받거나 Meta 커널을 넣은 ClashMeta for Android가 자주 언급됩니다. 후자는 Mihomo(Clash Meta) 계열이라 Hysteria2·TUIC 등 최신 전송 계열을 구독에서 지원하는 경우가 많습니다. 반면 회사·학교 제공 문서가 특정 구 클라이언트만 가리키면 그쪽 빌드를 쓰는 편이 덜 헤맙니다.
중요한 것은 이름보다 CPU 아키텍처(arm64-v8a 등)와 구독이 요구하는 커널 기능이 맞는지입니다. 범용(Universal) APK는 편하지만 용량이 클 수 있으니, 여유가 있다면 기기에 맞는 단일 ABI 패키지를 고르세요.
설치와 첫 실행: VPN 권한을 정확히 이해하기
Play 스토어에 없을 수 있으니, 다운로드 페이지나 신뢰하는 배포 채널에서 APK를 받는 경우가 일반적입니다. 설치 전에 해당 브라우저·파일 앱에 대해 「출처 알 수 없는 앱 설치」를 허용해야 합니다.
- 다운로드한 APK를 열고, 패키지 설치 화면까지 진행합니다.
- 앱을 처음 실행하면 VPN 구성 권한 요청이 뜹니다. 터널을 만들 권한이므로 거부하면 연결이 불가능합니다.
- 상태 표시줄에 열쇠 아이콘이 보이면 시스템이 해당 VPN 세션을 활성으로 본다는 뜻입니다.
구독 가져오기: URL에서 프로필을 동기화하는 실무 순서
대부분의 구독은 긴 HTTPS URL 한 줄로 YAML 또는 Base64 묶음을 내려줍니다. 앱마다 표현이 다르지만 흐름은 같습니다: 새 구성 만들기 → URL 입력 → 이름 붙이기 → 가져오기(동기화).
권장 절차
- 프로필/구성 화면에서 URL에서 가져오기 또는 이에 해당하는 항목을 고릅니다.
- 구독 관리 페이지에서 복사한 링크를 그대로 붙여 넣습니다. 앞뒤 공백이 없도록 합니다.
- 알아보기 쉬운 표시 이름(예: 제공자 이름-월정액)을 넣습니다.
- 업데이트·동기화를 누르고 오류 메시지가 없는지 확인합니다.
- 프록시 목록에 지연이 표시되면 원격 구성이 파싱된 것입니다.
업데이트 직후 노드가 전부 비활성·회색이면 링크가 만료됐거나, 셀룰러망에서 제공 서버에 닿지 못하는 경우가 많습니다. 같은 URL을 Wi‑Fi 환경의 브라우저에서 열어 본문이 내려오는지 먼저 확인하세요.
Rule·Global·Direct: 모바일에서도 모드 선택이 중요한 이유
데스크톱과 마찬가지로 Rule은 도메인·IP 규칙에 따라 DIRECT와 PROXY를 나눕니다. Global은 모든 트래픽을 선택한 그룹으로 몰아보내 디버깅에는 편하지만, 데이터·지연 측면에서 비용이 큽니다. Direct는 프록시를 거의 쓰지 않습니다.
일상 사용은 Rule을 권장합니다. 해외 앱만 뭉뚱그려 글로벌로 켜 두면, 의도치 않게 국내 결제·배달 앱까지 멀리 돌아가 지연이 커질 수 있습니다. 반대로 Rule인데 특정 서비스가 안 되면, 그때만 잠시 Global로 증상을 분리해 보는 방식이 안전합니다.
TUN 모드와 VPN 스위치: 전체 앱 트래픽을 태우기
Android에서 일부 앱은 시스템 프록시 설정을 따르지 않습니다. 브라우저 위주라면 앱 내 프록시만으로도 충분할 수 있지만, 메신저·게임·스트리밍까지 규칙을 일관되게 적용하려면 시스템 VPN을 켠 상태가 필요한 경우가 많습니다. CFA류 앱에서 메인 토글을 켜면 곧바로 이런 경로로 들어갑니다.
절전·백그라운드에서 끊기지 않게
삼성·샤오미 등 제조사 ROM은 배터리 최적화로 VPN 프로세스를 공격적으로 재시작합니다. CFA를 배터리 사용량 제한 없음으로 두고, 가능하면 Always‑on VPN 옵션을 함께 사용하세요. 또한 「분할 앱」 기능을 켜 두었다면, 우회가 필요한 앱이 목록에서 빠지지 않았는지 확인합니다.
TUN 관련 고급 옵션(스택, MTU 등)은 커널·ROM 조합에 따라 체감이 갈립니다. 기본값에서 문제가 없으면 굳이 건드리지 않는 편이 좋고, 끊김이 있다면 한 항목씩만 바꿔 기록하며 테스트하세요.
DNS 설정과 누수 방지: fake-ip, Private DNS, 프로필 충돌
DNS는 작아 보이지만 프라이버시와 접속 성공률 모두에 큰 비중을 차지합니다.
Clash 프로필의 dns 블록은 데스크톱과 같은 문법을 쓰는 경우가 많고, 모바일에서도 enhanced-mode 값에 따라 도메인 규칙과의 정렬이 달라집니다.
프로필에서 자주 보는 형태
아래는 이해를 돕기 위한 예시이며, 그룹 이름·업스트림 DNS는 구독과 환경에 맞게 바꿔야 합니다.
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://dns.example/dns-query
fallback:
- tls://dns.google
fake-ip는 내부적으로 가짜 응답을 써 규칙 매칭을 빠르게 맞추는 데 도움이 되지만, 특정 앱·ROM 조합에서는 기대와 다른 해석이 나올 수 있습니다.
문제가 지속되면 제공자 문서에 맞춰 redir-host 등 대안을 검토하세요.
Android 시스템 Private DNS와의 관계
설정의 네트워크 → Private DNS는 OS 전역으로 우선할 수 있습니다. Clash 쪽 DNS와 이중으로 걸리면, 누수 테스트에서 여전히 통신사 리졸버가 보이거나, 특정 도메인만 실패하는 식으로 나타납니다. 누수를 최소화하는 실험을 할 때는 잠시 Private DNS를 끄고 프로필 DNS만 남겨 비교해 보는 방법이 유효합니다.
연결 검증: 지연 측정과 누수 테스트를 같이 보기
노드 목록의 지연 숫자는 참고용입니다. 실제 체감은 앱·회선·시간대에 따라 달라집니다. Rule 모드에서 문제가 있으면 Global로 잠시 바꿔 같은 사이트가 열리는지 대조하고, 다시 Rule로 돌아와 규칙 불일치를 의심하세요.
DNS 누수 점검은 신뢰할 수 있는 HTTPS 사이트에서 VPN 연결 상태로 진행합니다. 결과에 로컬 ISP DNS가 섞여 보이면 Private DNS·듀얼 스택 IPv6·분할 터널링부터 의심하는 순서가 일반적입니다.
증상별 빠른 체크표
| 증상 | 먼저 볼 곳 | 조치 방향 |
|---|---|---|
| 구독 업데이트 실패 | URL, 네트워크, 시각 | 링크 재발급, Wi‑Fi 재시도, 기기 날짜 자동 설정 |
| VPN이 자주 꺼짐 | 배터리 최적화, RAM 정리 앱 | 앱 예외 지정, Always‑on VPN |
| 특정 앱만 먹통 | 분할 앱, 다른 VPN | 분할 목록 확인, 충돌 VPN 종료 |
| 해외만 안 됨 | 노드, 모드, 규칙 | 다른 노드, Global 테스트, GEOIP 순서 |
| DNS만 이상 | Private DNS, 프로필 dns 블록 | Private DNS 끄고 재측정, enhanced-mode 점검 |
자주 묻는 질문
아래는 본문 흐름과 맞춰 정리한 질문 모음입니다. 구조화된 FAQ 검색에도 연결됩니다.
구독을 넣었는데 노드가 비어 있거나 업데이트가 실패합니다
URL 만료·오타, 셀룰러에서의 차단, 인증서 문제가 흔합니다. 같은 링크를 브라우저로 열어 본문이 내려오는지 확인하고, Wi‑Fi로 바꿔 재시도하세요.
VPN을 켰는데 특정 앱만 인터넷이 안 됩니다
분할 터널링 옵션, 기기의 절전, 다른 VPN앱과의 충돌을 의심하세요. 해당 앱에 대한 배터리 최적화를 끄고, 동시에 켜진 개인 VPN이 없는지 확인합니다.
TUN이 꺼지거나 연결이 자주 끊깁니다
제조사 절전 정책이 백그라운드 VPN을 죽이는 경우가 많습니다. CFA를 배터리 제한 없음으로 두고, Always‑on VPN이 있다면 함께 켜 두는 편이 안정적입니다.
DNS 누수 테스트에서 여전히 통신사 DNS가 보입니다
Android 설정의 Private DNS가 시스템 레벨로 우선할 수 있습니다. 누수 방지를 최우선이면 잠시 Private DNS를 끄고, 프로필의 DNS와 fake-ip 설정을 다시 맞춥니다.
fake-ip와 redir-host 중 무엇을 써야 하나요?
fake-ip는 규칙 매칭과 연계해 지연을 줄이는 데 유리한 경우가 많고, redir-host는 환경에 따라 호환성이 더 나을 때가 있습니다. 구독 제공자의 권장값을 따르고, 문제가 있으면 한 가지만 바꿔 비교 테스트하세요.
ClashMeta for Android와 Clash for Android의 차이는 무엇인가요?
ClashMeta for Android는 Mihomo(Clash Meta) 커널 계열로 최신 프로토콜 지원 폭이 넓은 편입니다. 화면 용어는 비슷하지만 구독 호환성은 커널 차이에 따라 달라질 수 있으니 설명 페이지의 지원 목록을 확인하세요.
정리: 모바일에서도 규칙·DNS·터널을 한 세트로 보라
단일 노드에만 의존하는 초간단 VPN 앱들은 처음엔 편하지만, 국내 서비스와 해외 서비스를 섞어 쓰는 현실에서는 곧 한계가 드러납니다. 앱마다 프록시를 따로 넣어야 하고, DNS는 여전히 로컬로 새어 나가며, 게임·음성 통화 같은 UDP 트래픽은 아예 우회에서 빠지기도 합니다.
Clash 계열은 한 프로필 안에서 구독·규칙·정책 그룹·DNS를 같은 언어로 다루기 때문에, 기기를 바꿔도 개념을 옮기기 쉽습니다. Android에서는 여기에 VPN 권한·절전·Private DNS만 추가로 맞추면, 데스크톱에서 익힌 전략을 거의 그대로 재사용할 수 있습니다. 단발성 트릭보다 장기적으로 공개 이슈와 릴리스가 살아 있는 클라이언트를 고르는 편이 안전합니다.
일부 상용 앱은 화려한 스위치 대신 내부적으로 블랙박스에 가깝고, 제공자가 바뀌면 처음부터 다시 배워야 할 때가 있습니다. 반면 본문에서 설명한 것처럼 Clash는 YAML 규칙이라는 공통 토대 위에 동작하므로, 환경이 달라져도 진단 순서가 흔들리지 않습니다. Android에서 구독·TUN·DNS까지 한 번에 정리하고 싶다면, 아래 링크에서 신뢰할 수 있는 빌드를 받아 직접 비교해 보시길 권합니다.