먼저 구분하기: 서비스 종료인가, 연결 실패인가
Android용 Clash가 화면을 끈 뒤 잠시 후 인터넷에 연결되지 않는다고 해서 꼭 백그라운드에서 앱이 종료된 것은 아닙니다. 시스템의 프로세스 종료, 다른 VPN의 연결 선점, 노드 장애, Wi-Fi에서 모바일 네트워크로의 전환도 웹페이지가 열리지 않는 원인이 될 수 있습니다. 먼저 클라이언트의 실행 상태를 확인한 다음 배터리 설정을 바꿀지 구성을 점검할지 판단하면 불필요한 시행착오를 줄일 수 있습니다.
이 글에서는 Android VpnService로 트래픽을 처리하는 클라이언트를 다룹니다. 기존 Clash for Android와 mihomo 코어를 사용해 Android VPN 인터페이스로 동작하는 클라이언트가 포함됩니다. 코어는 지원 프로토콜과 규칙 기능을 결정하지만, 백그라운드에서 계속 실행될 수 있는지는 주로 클라이언트의 Android 구현과 시스템 정책에 달려 있습니다. 코어를 바꾼다고 백그라운드 실행 제한이 자동으로 해제되는 것은 아닙니다.
| 확인된 증상 | 먼저 확인할 항목 |
|---|---|
| 클라이언트가 중지된 것으로 표시되고 시스템 VPN 상태도 사라짐 | 백그라운드 제한, 직접 중지, 다른 VPN의 연결 선점 |
| VPN은 연결되어 있지만 프록시를 사용하는 사이트만 열리지 않음 | 노드 연결 상태, 구독 유효 기간, 규칙 및 DNS |
| Wi-Fi 전환 후 잠시 연결이 끊김 | 네트워크 재연결 및 기존 연결 복구 여부. 배터리 최적화 문제로 단정하지 않기 |
| 재부팅 후 클라이언트가 실행되지 않음 | 부팅 시 자동 실행 지원 여부, 자동 시작 권한 및 최초 잠금 해제 |
테스트 전에 휴대전화 모델, Android 버전, 시스템 버전, 클라이언트 버전을 기록하세요. 시스템의 ‘설정’ → ‘휴대전화 정보’에서 앞의 두 항목을, 클라이언트의 ‘정보’ 화면에서 앱 버전을 확인할 수 있습니다. 기존 Clash for Android는 유지 관리가 중단되었습니다. 최신 Android에서 호환성 문제가 계속된다면 모든 시스템 권한을 무작정 완화하기보다 클라이언트 비교를 참고해 계속 관리되는 대안을 검토하세요.
VpnService 권한 요청은 무엇을 허용하나요?
프록시를 처음 시작하면 Android에서 ‘연결 요청’ 또는 ‘VPN 연결 설정’ 시스템 창이 표시되는 경우가 많습니다. 허용하면 클라이언트가 가상 네트워크 인터페이스를 만들고, 처리 대상으로 지정된 트래픽을 로컬 코어로 전달해 규칙에 따라 직접 연결하거나 프록시를 사용할 수 있습니다. 여기서 VPN은 시스템이 제공하는 트래픽 처리 인터페이스를 뜻하며, 클라이언트가 반드시 기존 방식의 기업 VPN 서버에 연결한다는 의미는 아닙니다.
- 먼저 유효한 구성을 가져오고 사용할 수 있는 노드를 선택한 다음 클라이언트의 시작 버튼을 누르세요.
- 시스템 권한 요청 창의 앱 이름이 현재 설치된 클라이언트와 일치하는지 확인한 뒤 연결을 허용하세요.
- 시스템 ‘설정’에서 ‘VPN’을 검색해 현재 연결된 앱을 확인하세요. 일부 시스템에서는 키 아이콘도 표시됩니다.
- 직접 연결될 것으로 예상되는 사이트와 프록시를 사용할 것으로 예상되는 사이트에 각각 접속하고, 클라이언트의 연결 기록에서 트래픽 분류 결과를 확인하세요.
VPN 앱 두 개를 동시에 사용할 수 없는 이유
같은 Android 사용자 계정이나 프로필에서는 일반적으로 활성 VPN 서비스를 하나만 사용할 수 있습니다. 다른 프록시 도구, 로컬 VPN 방식의 광고 차단 앱, 패킷 캡처 도구를 실행하면 기존 연결이 대체될 수 있습니다. 업무 프로필과 개인 프로필은 각각 별도의 관리 영역이므로 알림 표시줄의 아이콘만으로 전체 상태를 판단할 수는 없습니다. 문제를 확인할 때는 같은 프로필에서 다른 VPN 앱을 먼저 종료하고 Clash만 실행해 테스트하세요.
데스크톱 튜토리얼의 TUN 서비스 권한 설정을 휴대전화에 그대로 적용할 수는 없습니다. Android에서는 보통 root 없이 VpnService로 트래픽을 처리합니다. 별도의 ‘TUN’ 스위치, 앱별 트래픽 분리, LAN 우회 옵션이 있는지는 클라이언트 구현에 따라 다릅니다. 백그라운드 실행을 위해 데스크톱용 tun 구성을 그대로 복사하지 마세요.
공통 설정: 배터리, 알림, 백그라운드 실행
먼저 배터리 사용을 제한 없음으로 설정하세요
홈 화면에서 클라이언트 아이콘을 길게 누르고 ‘앱 정보’ → ‘배터리’ 또는 ‘앱 배터리 사용량’으로 이동해 ‘제한 없음’, ‘백그라운드 활동 허용’ 등의 옵션을 찾으세요. Pixel처럼 기본 Android에 가까운 기기에서는 ‘설정’ → ‘앱’ → ‘모든 앱 보기’ → 클라이언트 → ‘앱 배터리 사용량’ 경로가 일반적입니다. 메뉴 이름은 Android 버전에 따라 다를 수 있으니 백그라운드 실행을 허용하고 앱이 ‘제한됨’으로 설정되지 않도록 확인하세요.
일부 시스템에는 ‘특별 앱 액세스’ → ‘배터리 최적화’ 목록이 남아 있습니다. 목록에 들어가 ‘최적화되지 않은 앱’에서 ‘모든 앱’으로 전환한 뒤 클라이언트를 찾아 ‘최적화하지 않음’을 선택하세요. ‘제한 없음’과 ‘최적화하지 않음’은 Android 버전에 따라 별개의 메뉴일 수도, 둘 다 제공될 수도 있습니다. 기기에서 확인할 수 있는 항목만 설정하면 되며 없는 스위치를 찾아 헤맬 필요는 없습니다.
실행 알림을 유지해 서비스 상태를 확인하세요
Android 클라이언트는 VPN 작업을 계속 실행하기 위해 포그라운드 서비스를 사용하는 경우가 많으며, 실행 중 알림도 표시합니다. Android 13 이상에는 알림 런타임 권한이 추가되었습니다. 알림 권한을 거부해도 포그라운드 서비스 실행이 반드시 차단되는 것은 아니지만 알림이 표시되는 위치와 방식은 달라질 수 있습니다. 서비스가 중지되었는지 확인할 수 있도록 클라이언트 알림을 허용하고, 최소한 실행 상태 알림은 유지하는 것이 좋습니다.
- 알림 권한: ‘앱 정보’ → ‘알림’에서 필요한 실행 상태 알림을 허용하세요. 관련 없는 알림 항목까지 켤 필요는 없습니다.
- 백그라운드 데이터: 시스템의 데이터 절약 기능을 사용 중이라면 ‘모바일 데이터 및 Wi-Fi’에서 백그라운드 데이터 권한을 확인하고, 필요하면 무제한 데이터 사용을 허용하세요.
- 시스템 절전 모드: 먼저 일반 배터리 모드에서 테스트한 뒤 절전 모드에서 별도로 테스트하세요. 여러 제한이 동시에 적용되지 않도록 합니다.
- 강제 종료: 일상적인 앱 정리 방법으로 ‘앱 정보’ → ‘강제 종료’를 사용하지 마세요. 홈 화면으로 돌아가는 것과는 다릅니다.
최근 앱 화면에서 카드를 밀어 닫는 것과 ‘강제 종료’도 같은 동작이 아닙니다. 카드를 닫을 때 서비스도 종료되는지는 제조사 정책과 앱 구현에 따라 다르지만, 강제 종료는 앱을 확실히 중지합니다. Android 13 이상 일부 시스템에서는 실행 중인 앱을 ‘중지’하는 기능도 제공합니다. 사용자가 직접 중지한 앱은 배터리 최적화 제외 목록에 등록해도 즉시 다시 실행된다고 기대할 수 없습니다.
제조사별 배터리 최적화 제외 및 자동 시작 메뉴
아래 경로는 자주 볼 수 있는 예시이며 모든 기기에서 메뉴 이름이 같지는 않습니다. 시스템 업데이트, 지역별 버전, 기기 관리 정책에 따라 메뉴 위치가 달라질 수 있습니다. 찾을 수 없다면 시스템 설정에서 ‘자동 시작’, ‘백그라운드 배터리 사용량’, ‘절전 앱’을 검색하거나 클라이언트의 앱 정보 화면에서 이동하세요. 해당 클라이언트만 조정하고 시스템 배터리 관리를 통째로 끄지는 않는 것이 좋습니다.
| 시스템 | 일반적인 메뉴 경로 | 확인할 항목 |
|---|---|---|
| 샤오미 MIUI / HyperOS | ‘설정’ → ‘앱 설정’ → ‘앱 관리’ → 클라이언트. 일부 버전에서는 ‘권한 관리’에서 자동 시작 설정을 찾을 수 있습니다. | 배터리 정책을 ‘제한 없음’으로 설정하고 자동 시작 또는 백그라운드 자동 시작을 허용하세요. |
| 화웨이 EMUI / Android 앱을 지원하는 시스템 버전 | ‘설정’ → ‘앱 및 서비스’ → ‘앱 시작 관리’ | 앱의 자동 관리 기능을 끄고 필요에 따라 자동 시작, 연관 시작, 백그라운드 활동을 허용하세요. |
| OPPO ColorOS / OnePlus ColorOS | ‘설정’ → ‘배터리’ → ‘기타 설정’ → ‘앱 배터리 사용량 관리’. 자동 시작은 앱 관리에서 찾을 수 있습니다. | 백그라운드 활동을 허용하고 자동 시작 권한을 확인하세요. |
| vivo OriginOS | ‘설정’ → ‘배터리’ → ‘백그라운드 배터리 사용량 관리’. 자동 시작은 보통 ‘앱 및 권한’ → ‘권한 관리’에서 찾을 수 있습니다. | 백그라운드에서 배터리를 많이 사용하는 것을 허용하고 필요에 따라 자동 시작을 허용하세요. |
| 삼성 One UI | ‘설정’ → ‘배터리 및 디바이스 케어’ → ‘배터리’ → ‘백그라운드 사용 제한’. 최신 버전에서는 ‘배터리’에서 바로 이동할 수도 있습니다. | 절전 및 초절전 앱 목록에서 삭제하고 ‘절전하지 않는 앱’에 추가하세요. |
자동 시작과 최근 앱 잠금은 서로 다른 역할을 합니다
자동 시작 권한은 주로 부팅 후 또는 특정 이벤트가 발생한 뒤 앱이 실행될 수 있는지에 영향을 줍니다. 단, 클라이언트 자체에 해당 기능이 구현되어 있어야 합니다. 클라이언트에서 ‘부팅 시 시작’, ‘자동 연결’ 같은 옵션도 확인하세요. 시스템에서 자동 시작을 허용해도 앱에 없는 실행 기능이 새로 생기지는 않습니다. 재부팅 후에는 기기를 먼저 잠금 해제해야 할 수도 있습니다.
최근 앱 잠금은 주로 ‘모두 닫기’를 눌렀을 때 앱이 실수로 종료되는 일을 줄여 줍니다. 일부 시스템에서는 최근 앱 화면에서 카드를 길게 누르거나 카드 메뉴를 눌러 ‘잠금’을 선택할 수 있으며, 버전에 따라 카드를 아래로 당겨 잠그기도 합니다. 잠금 표시가 프로세스가 절대 종료되지 않는다는 뜻은 아니며, 사용자가 직접 중지하거나 시스템이 업데이트 후 재부팅하는 경우, 메모리가 극도로 부족한 경우까지 막아 주지는 않습니다. 해당 메뉴가 없다면 배터리 및 백그라운드 활동 설정을 먼저 확인하세요.
VPN 상시 연결과 연결 끊김 차단의 장단점
일부 클라이언트는 시스템의 ‘항상 켜짐 VPN’을 지원합니다. 시스템 ‘설정’에서 ‘VPN’을 검색하고 클라이언트 옆의 톱니바퀴를 눌러 ‘항상 켜짐 VPN’과 ‘VPN 없이 연결 차단’ 옵션이 있는지 확인하세요. 전자는 시스템이 VPN 서비스를 유지하거나 복구하도록 시도하고, 후자는 VPN을 사용할 수 없을 때 네트워크 연결을 차단합니다. 둘 다 일반적인 배터리 최적화 제외 설정과는 다릅니다.
- 재부팅 후 연결을 잊지 않으려면: 먼저 클라이언트가 이 기능을 지원하는지 확인하고 ‘항상 켜짐 VPN’을 켠 뒤 재부팅해 검증하세요.
- VPN이 끊기면 인터넷도 차단하려면: 차단 옵션을 검토할 수 있지만 노드 장애, 클라이언트 중지, 네트워크 전환 상황에서 어떻게 동작하는지 먼저 테스트하세요.
- 앱별로 VPN 우회를 설정하려면: 차단 정책 때문에 제외된 앱이 인터넷에 연결되지 않을 수 있으므로 특히 주의하세요. 모든 우회 방식이 정상 작동한다고 가정하면 안 됩니다.
시스템의 연결 차단과 Clash의 DIRECT 규칙은 서로 다른 개념입니다. VPN 인터페이스를 거친 뒤 코어가 직접 연결하도록 처리하는 트래픽과 VPN 처리 대상에서 제외된 앱의 트래픽은 서로 다른 경로를 사용합니다. 차단을 켠 뒤 업무용 앱, LAN 기기, 로그인 인증 페이지에 접속할 수 없다면 앱 제외 설정, 라우팅, 시스템 정책을 각각 확인하세요.
먼저 일반 연결을 확인하고, 그다음 상시 실행을 켠 뒤, 마지막으로 연결 끊김 차단을 테스트하는 순서를 권장합니다. 노드 자체가 작동하지 않는 상태에서 차단까지 켜면 휴대전화 전체가 인터넷에 연결되지 않는 것처럼 보여 시스템 문제로 오해할 수 있습니다. 특히 웹 인증이 필요한 공용 Wi-Fi를 사용할 때는 VPN 설정에서 차단을 끄는 경로를 미리 확인해 두세요.
화면을 끈 상태로 테스트해 설정을 확인하세요
설정 화면의 스위치만 확인하지 마세요. 설정을 변경한 뒤 같은 구성과 같은 노드로 반복 가능한 테스트를 진행하세요. 아래의 5분 및 30분은 권장 관찰 시간이지 일반적인 실측 결과가 아닙니다. 어떤 제한이 원인인지 판단할 수 있도록 한 번에 설정 하나만 변경하세요.
- 화면 켜짐 기준 테스트: 클라이언트를 시작하고 시스템 VPN이 연결되었는지 확인하세요. 직접 연결 대상과 프록시 대상에 각각 접속한 뒤 시간을 기록합니다.
- 화면 끄기 5분: 음악을 재생하거나 파일을 다운로드하지 말고 화면을 끄세요. 잠금을 해제한 뒤 시스템 VPN 상태와 클라이언트 실행 상태를 먼저 확인하고 대상 사이트에 다시 접속합니다.
- 화면 끄기 30분: 휴대전화를 사용하지 않고 둔 뒤 상태를 확인하세요. 화면을 켠 직후 첫 요청만 느리다면 네트워크 복구 지연과 서비스의 실제 종료를 구분하세요.
- 네트워크 전환: Wi-Fi에서 모바일 데이터로 전환한 뒤 다시 Wi-Fi로 돌아와 새 연결이 만들어지는지 확인하세요. 기존 다운로드나 세션이 끊겼다고 해서 백그라운드 프로세스가 종료된 것은 아닙니다.
- 재부팅 확인: 재부팅 후 기기를 처음 잠금 해제하고 예상대로 자동 연결되는지 확인하세요. ‘자동 시작 허용’ 표시만으로 성공 여부를 판단하지 마세요.
‘시간, 네트워크 유형, VPN 연결 여부, 클라이언트 실행 여부, 노드 사용 가능 여부’ 다섯 가지만 기록해도 문제를 파악하는 데 도움이 됩니다. 여건이 된다면 더 긴 유휴 상태 테스트도 진행하세요. Android의 유휴 제한이나 제조사 앱 정리는 처음 30분 안에 작동하지 않을 수 있으므로 짧은 테스트를 통과했다고 밤새 실행된다고 보장할 수는 없습니다.
서비스가 계속 실행 중이면 구성과 네트워크를 확인하세요
VPN이 계속 연결되어 있다면 로그에서 DNS 실패, 연결 시간 초과, 인증 실패 등을 먼저 확인하세요. 구독을 수동으로 갱신한 뒤 실제로 사용할 수 있는 노드가 생겼는지 확인합니다. 구독 갱신 성공은 구성을 가져왔다는 뜻일 뿐 모든 노드의 연결을 보장하지 않습니다. 규칙 모드에서는 대상이 프록시 그룹과 직접 연결 규칙 중 어디에 해당하는지도 확인하세요. 필요하면 입문 가이드에 따라 하나씩 점검하세요.
시간 초과가 발생해도 DNS를 바꾸고 모든 스니핑 옵션을 켜고 트래픽 처리 범위까지 한꺼번에 수정하지 마세요. 먼저 정상 작동이 확인된 노드로 바꾸고, 그다음 네트워크를 바꾼 뒤, 마지막으로 로그를 바탕으로 구성을 조정하세요. 비교 조건을 유지하면 통신사 네트워크 변화와 로컬 설정 문제를 구분하기 쉽습니다.
설정 후 점검 목록
- 시스템 업데이트 후: 배터리 정책, 자동 시작, 알림 설정이 유지되는지 확인한 뒤 화면을 끄고 짧게 테스트하세요.
- 클라이언트 교체 후: 새 앱에 VPN 권한을 다시 부여하고 최적화 제외 목록도 다시 설정하세요. 이전 앱의 권한은 자동으로 이전되지 않습니다.
- 배터리 사용 시간이 눈에 띄게 줄었다면: 시스템 배터리 사용량과 클라이언트 연결 기록을 확인해 잦은 재연결이나 지속적인 트래픽이 있는지 살펴보세요. 모든 배터리 소모를 ‘백그라운드 상시 실행’ 탓으로 돌리지 마세요.
- 문제를 제보할 때: 시스템 및 클라이언트 버전, 발생 시각, 재현 단계를 제공하세요. 로그를 공유하기 전에는 구독 주소, 액세스 토큰, 개인 접속 기록을 가리세요.
권장 순서는 VpnService 권한 부여, 클라이언트의 백그라운드 배터리 제한 해제, 기기에 따라 자동 시작 및 최근 앱 잠금 설정, 마지막으로 항상 켜짐 VPN과 연결 끊김 차단 검토입니다. 각 단계마다 실제 연결을 확인하세요. 이렇게 하면 시스템의 자동 연결 끊김을 줄이는 동시에 다음 문제가 발생했을 때 Android의 백그라운드 관리, 클라이언트 서비스, 구독 또는 네트워크 중 어디에 원인이 있는지도 명확히 파악할 수 있습니다.