분할 터널링이란 무엇인가

안드로이드 VPN의 분할 터널링은 모든 앱의 트래픽을 VPN으로 보내는 대신, 앱별 규칙에 따라 일부 앱만 VPN 터널을 사용하게 하는 기능입니다. 업무 메신저, 은행 앱, 사내 시스템처럼 일반 연결이 더 적합한 앱은 직접 연결로 남겨 두고, 해외 서비스나 특정 서버 접속이 필요한 앱만 VPN에 태울 수 있습니다. 이렇게 구성하면 앱마다 요구하는 연결 경로가 달라도 한 기기에서 함께 사용할 수 있습니다.

다만 클라이언트마다 표현과 동작 방식이 다릅니다. 어떤 앱은 ‘VPN에서 제외할 앱’을 선택하고, 다른 앱은 ‘VPN을 사용할 앱’만 고르는 방식입니다. 전자는 제외 목록 방식이고 후자는 포함 목록 방식이므로, 같은 앱을 선택했더라도 결과가 반대로 보일 수 있습니다. 설정을 저장하기 전에 화면에 표시된 설명을 읽고, 현재 모드가 허용 목록인지 제외 목록인지 먼저 확인해야 합니다.

분할 터널링은 단순히 속도를 높이는 기능으로만 보면 안 됩니다. VPN을 사용하지 않는 앱은 기기의 일반 네트워크 인터페이스와 통신사의 DNS를 사용할 수 있고, VPN을 사용하는 앱은 클라이언트의 가상 인터페이스와 원격 DNS 정책을 따를 수 있습니다. 따라서 앱별 IP, DNS, IPv6 처리 방식이 서로 달라지는 것은 정상적인 결과일 수 있습니다.

100+

국가 커버리지

180+

운영 회선

무제한

동시 연결 기기

60일

무조건 환불

한 줄 결론: 앱을 선택하기 전에 포함 목록인지 제외 목록인지 확인하고, 설정 후에는 대상 앱과 제외 앱의 IP·DNS를 각각 따로 검사해야 합니다.

안드로이드 앱별 지원 방식 비교

안드로이드에서 분할 터널링을 설정하는 경로는 공식 클라이언트와 호환 클라이언트에 따라 달라집니다. 공식 앱은 보통 VPN 설정 또는 연결 설정 안에 앱별 라우팅 항목을 제공하며, 사용자가 설치된 앱 목록에서 직접 선택합니다. 계정에 로그인한 뒤 구독을 연결하는 구조라면 구독 링크를 별도로 복사하지 않아도 되지만, 클라이언트에 따라 패널에서 발급한 구독 주소를 가져와야 할 수 있습니다.

Clash 계열 안드로이드 클라이언트는 프로필의 모드와 규칙 집합이 중요합니다. 앱별로 VPN을 적용하려면 앱 식별자, 즉 패키지 이름을 기준으로 규칙을 추가하는 방식이 흔합니다. 화면에서 앱 이름만 보이는 경우도 있지만, 같은 이름의 앱이 여러 개 설치되어 있거나 업무용 프로필과 개인용 프로필이 분리되어 있다면 패키지 식별자가 다를 수 있으므로 실제 실행 앱을 확인해야 합니다.

sing-box 기반 클라이언트는 애플리케이션 패키지 또는 프로세스 이름을 라우팅 규칙의 기준으로 사용할 수 있습니다. 설정 파일을 직접 편집하는 경우에는 JSON 구조의 쉼표와 중괄호가 맞아야 하며, 기존 규칙보다 앞에 배치해야 원하는 규칙이 먼저 적용됩니다. Shadowrocket은 iOS 중심 클라이언트이므로 안드로이드 설정 예시로 혼동하지 않는 것이 좋습니다. 안드로이드에서는 해당 플랫폼을 지원하는 공식 앱, Clash 계열 또는 sing-box 계열 클라이언트를 사용해야 합니다.

참고: Android 시스템의 VPN은 일반적으로 한 번에 하나의 VPN 서비스만 활성화합니다. 다른 VPN 앱이나 보안 앱이 이미 연결을 점유하고 있으면 새 클라이언트가 시작되지 않거나, 앱별 규칙이 적용되지 않을 수 있습니다.
  • ✅ 공식 앱에서는 앱별 라우팅 또는 분할 터널링 메뉴를 먼저 찾습니다.
  • ✅ Clash 계열에서는 글로벌 모드가 아닌 규칙 모드인지 확인합니다.
  • ✅ sing-box에서는 앱 패키지 규칙의 위치와 JSON 문법을 함께 점검합니다.
  • ❌ 두 개의 VPN 클라이언트를 동시에 연결한 상태에서 규칙 문제를 판단하지 않습니다.

앱별 분할 터널링 설정 순서

이제 실제 설정 절차를 정리하겠습니다. 메뉴 이름은 앱 버전에 따라 달라질 수 있지만, 판단 순서는 거의 같습니다. 먼저 VPN 프로필을 가져오거나 로그인하고, 연결할 서버를 선택한 다음, 앱별 라우팅 메뉴로 이동합니다. 처음부터 여러 앱을 한꺼번에 선택하면 어느 규칙이 실패했는지 찾기 어려우므로, 테스트할 앱을 하나씩 추가하는 방식이 안전합니다.

  1. 안드로이드 클라이언트에서 계정에 로그인하거나 구독 링크를 가져옵니다. 구독 링크를 사용하는 경우 주소 전체가 복사되었는지 확인하고, 클라이언트가 반환한 프로토콜 형식을 지원하는지 점검합니다.
  2. 프로필 또는 서버 목록에서 사용할 설정을 선택합니다. Shadowsocks, VMess, Trojan, Hysteria2, WireGuard 등은 클라이언트가 지원하는 방식에 따라 표시되며, 프로토콜 이름이 보인다고 해서 모든 기능이 동일하게 작동하는 것은 아닙니다.
  3. 설정에서 ‘앱별 VPN’, ‘분할 터널링’, ‘VPN에서 제외할 앱’과 비슷한 메뉴를 엽니다. 이때 포함 목록과 제외 목록 중 어떤 모드인지 설명 문장을 확인합니다.
  4. VPN으로 보낼 앱만 선택하거나, 반대로 VPN에서 제외할 앱을 선택합니다. 업무 앱을 일반 연결로 유지하려는 목적이라면 제외 목록 방식에서 해당 업무 앱을 추가하는 구성이 이해하기 쉽습니다.
  5. 저장한 뒤 클라이언트의 연결 스위치를 켭니다. 안드로이드가 표시하는 VPN 연결 승인 창이 나오면 프로필 이름과 연결 요청 앱을 확인하고 승인합니다.
  6. 대상 앱을 완전히 종료한 뒤 다시 실행합니다. 앱이 이미 열려 있으면 기존 DNS 캐시나 기존 연결을 계속 사용할 수 있어 규칙을 바꾼 직후에는 결과가 정확하지 않을 수 있습니다.

Clash 계열에서는 앱별 규칙만 추가하고 끝내지 말고, 규칙 모드가 실제로 활성화되었는지 확인해야 합니다. 글로벌 모드는 모든 트래픽을 한 경로로 보내므로 앱별 예외가 무시될 수 있습니다. sing-box 계열에서는 라우팅 규칙의 순서가 특히 중요합니다. 넓은 범위의 최종 규칙이 앱별 규칙보다 앞에 있으면, 앱 패키지를 지정했더라도 먼저 평가된 규칙으로 빠질 수 있습니다.

설정 변경 후에는 반드시 연결을 끊었다가 다시 연결하는 편이 좋습니다. 일부 클라이언트는 새 규칙을 즉시 반영하지만, 이미 생성된 터널과 DNS 세션을 유지하는 경우도 있습니다. 재연결 후 대상 앱 하나와 제외 앱 하나를 각각 실행해 결과를 비교하면 설정 오류를 빠르게 좁힐 수 있습니다.

IP와 DNS가 실제로 분리되었는지 확인하기

분할 터널링이 제대로 적용되었는지는 VPN 아이콘이 표시되는지만으로 판단할 수 없습니다. VPN을 사용하도록 지정한 앱과 제외한 앱이 서로 다른 출구 IP를 보이는지 확인해야 합니다. 같은 웹 기반 IP 확인 페이지를 두 앱의 내장 브라우저나 실제 브라우저에서 각각 열어 비교할 수 있으며, 앱 자체가 외부 연결 정보를 표시한다면 그 결과를 함께 참고합니다.

DNS도 별도로 확인해야 합니다. IP가 VPN 경로로 보이더라도 DNS 요청이 일반 연결로 나가면 지역 판별이나 서비스 로그인 과정에서 문제가 생길 수 있습니다. 반대로 업무 앱을 직접 연결로 두었는데 DNS만 VPN 인터페이스를 따라가면 사내 도메인이나 로컬 장치 이름이 정상적으로 해석되지 않을 수 있습니다. 클라이언트의 ‘원격 DNS’, ‘시스템 DNS’, ‘터널 DNS’와 같은 항목을 확인하고, 앱별 목적에 맞는 정책을 선택해야 합니다.

브라우저 기반 검사와 앱 내부 연결은 결과가 다를 수 있습니다. 일부 앱은 자체 DNS 라이브러리를 사용하고, 일부 앱은 프록시를 인식하지 않으며, 또 다른 앱은 IPv6를 우선 사용할 수 있습니다. 따라서 한 번의 웹 검사만으로 모든 트래픽이 같은 경로를 사용한다고 단정하지 말고, 실제로 사용할 앱에서 로그인, 콘텐츠 요청, 파일 전송 같은 주요 동작을 확인해야 합니다.

확인 항목VPN 적용 앱에서 기대하는 결과VPN 제외 앱에서 기대하는 결과
출구 IP선택한 VPN 회선의 IP로 표시현재 통신 환경의 일반 IP로 표시
DNS 위치클라이언트가 지정한 원격 DNS 정책 적용시스템 또는 로컬 네트워크 DNS 정책 적용
연결 경로가상 VPN 인터페이스를 통해 전달일반 네트워크 인터페이스를 통해 전달
앱 동작VPN이 필요한 서비스에 접속사내·은행·로컬 서비스와의 직접 연결 유지

연결 실패와 규칙 미적용 해결법

가장 흔한 문제는 선택한 앱이 VPN을 사용하지 않는 경우입니다. 먼저 해당 앱이 목록에 정확히 추가되었는지 확인하고, 포함 목록과 제외 목록을 반대로 이해하지 않았는지 다시 봅니다. 그다음 클라이언트를 규칙 모드로 전환하고, 프로필을 저장한 뒤 VPN 연결을 재시작합니다. 앱이 복제 기능이나 업무용 프로필로 설치되어 있다면 일반 설치본과 다른 패키지 식별자를 사용할 수 있으므로 목록에서 두 항목을 모두 확인해야 합니다.

VPN에 연결한 뒤 인터넷 자체가 끊긴다면 킬 스위치 또는 ‘VPN 없이는 연결 차단’ 기능을 점검합니다. 이 기능이 켜져 있으면 제외 목록으로 지정한 앱까지 차단되는 것처럼 보일 수 있습니다. 배터리 절전 기능도 원인입니다. 안드로이드가 백그라운드 VPN 서비스를 중지하면 화면을 켰을 때만 연결이 복구되거나, 앱 전환 후 규칙이 사라진 것처럼 보일 수 있습니다. 클라이언트의 배터리 사용을 제한하지 않도록 시스템 설정을 확인합니다.

특정 앱만 로그인에 실패하거나 콘텐츠를 불러오지 못한다면 DNS와 IPv6를 분리해서 살펴봅니다. VPN 경로는 IPv4만 처리하는데 앱이 IPv6를 우선 사용하면, 앱의 일부 요청이 다른 경로로 나갈 수 있습니다. 클라이언트가 IPv6 처리 옵션을 제공한다면 같은 정책으로 통일하고, 제공하지 않는다면 문제가 발생하는 앱을 일시적으로 전체 VPN 경로에서 테스트해 원인을 비교합니다.

구독을 가져온 뒤 노드가 보이지 않는 문제는 분할 터널링과 별개일 수 있습니다. 링크가 잘렸거나 만료된 주소를 사용했는지, 클라이언트와 구독 형식이 맞는지, 수동 갱신이 성공했는지 순서대로 확인합니다. 연결은 되지만 앱 규칙만 작동하지 않는다면 규칙 파일의 구문과 우선순위, 앱 패키지 이름을 먼저 점검하는 것이 효율적입니다.

  • ✅ 앱을 강제 종료하고 VPN 연결을 다시 시작한 뒤 재검사합니다.
  • ✅ 글로벌 모드, 규칙 모드, 직접 연결 모드의 현재 상태를 확인합니다.
  • ✅ 배터리 절전과 백그라운드 제한이 클라이언트에 적용되지 않았는지 봅니다.
  • ❌ IP 하나만 확인하고 DNS 유출이나 IPv6 경로까지 정상이라고 단정하지 않습니다.
  • ❌ 문제가 생길 때마다 서버를 바꾸기보다 규칙 범위와 우선순위를 먼저 점검합니다.

안정적으로 사용하는 관리 원칙

분할 터널링은 한 번 설정하고 잊는 기능이 아니라, 앱 업데이트와 네트워크 환경 변화에 맞춰 점검해야 하는 정책입니다. 앱이 업데이트되면서 패키지 구조가 바뀌거나, 새로 설치한 업무 앱이 직접 연결 목록에 포함되지 않을 수 있습니다. 특히 금융, 사내 인증, 결제처럼 연결 출처에 민감한 앱은 VPN 적용 여부를 임의로 바꾸지 말고 서비스 운영자가 안내한 네트워크 조건을 우선해야 합니다.

프로필을 여러 개 사용할 때는 이름을 목적별로 구분하는 것이 좋습니다. 예를 들어 일반 사용용, 업무 예외용, 스트리밍 테스트용처럼 설명을 붙이면 현재 어떤 규칙이 적용됐는지 확인하기 쉽습니다. 구독을 갱신한 뒤에는 서버 목록만 바뀌는지, 라우팅 규칙까지 덮어쓰이는지 확인해야 합니다. 일부 클라이언트는 프로필을 새로 내려받을 때 사용자 지정 규칙을 유지하지만, 일부는 원본 설정으로 되돌릴 수 있습니다.

보안과 편의성 사이의 기준도 정해야 합니다. 모든 앱을 VPN에 넣으면 경로를 관리하기는 쉽지만 로컬 장치 접근이나 업무 서비스가 불편해질 수 있습니다. 반대로 제외 앱을 지나치게 늘리면 중요한 요청이 일반 연결로 나갈 수 있습니다. 필요한 앱만 포함하는 방식은 규칙을 명확하게 유지하기 좋고, 일반 연결을 기본으로 하되 특정 앱만 제외하는 방식은 업무용 스마트폰처럼 직접 연결이 많은 환경에 적합합니다.

최종 판단: 앱별 분할 터널링의 핵심은 설정 화면에서 앱을 고르는 일이 아니라, 규칙의 방향과 우선순위, DNS·IPv6 경로를 함께 검증하는 것입니다. 대상 앱과 제외 앱을 각각 테스트하고 결과를 기록하면 연결 문제가 생겨도 서버 교체보다 빠르게 원인을 찾을 수 있습니다.