Windows UWP 앱이 Clash 프록시에 연결되지 않을 때: 루프백 제한 해제 두 가지 방법
Windows UWP 앱은 기본적으로 루프백 주소 접근이 차단되어 스토어 앱이 시스템 프록시를 타지 못합니다. 시스템 내장 도구로 루프백 제한을 해제하는 두 가지 방법과 주의점을 정리합니다.
증상: 스토어 앱만 인터넷이 끊기고 데스크톱 프로그램은 정상
시스템 프록시를 켠 상태에서 브라우저와 각종 데스크톱 프로그램은 정상적으로 프록시를 타고, Clash 패널에도 연결 기록이 계속 잡히는데, Microsoft Store, 날씨, 메일, Xbox 같은 스토어 설치 앱들은 전부 "인터넷에 연결되어 있지 않습니다"라고 뜨거나 계속 로딩만 됩니다. 클라이언트 재시작, 노드 전환, 구독 재설정 모두 효과가 없습니다.
이건 구독이나 노드 문제가 아닙니다. 이 앱들은 공통적으로 UWP(범용 Windows 플랫폼) 앱이라는 특징을 가지고 있습니다. AppContainer 샌드박스 안에서 실행되며, Windows는 기본적으로 샌드박스 앱이 로컬 루프백 주소 127.0.0.1에 접근하는 것을 차단합니다. 그리고 Clash의 시스템 프록시 주소가 바로 127.0.0.1입니다.
원인: UWP의 루프백 격리 메커니즘
Clash에서 시스템 프록시를 켜면 시스템 설정에 기록되는 프록시 주소는 127.0.0.1:7890(기본 혼합 포트, 실제 값은 클라이언트 설정에 따라 다름)입니다. 데스크톱 Win32 프로그램은 이 주소를 읽고 로컬 포트에 바로 연결해 정상 동작하지만, UWP 앱은 같은 주소를 읽어도 시스템의 네트워크 격리 계층에서 연결이 즉시 차단되어 요청이 Clash 코어까지 도달하지 못합니다. 그 결과 "프록시는 켜져 있는데 인터넷이 안 되는" 상태가 됩니다.
이 제한은 시스템의 보안 설계입니다. 샌드박스 앱이 로컬 서비스를 탐색하고 접근하지 못하게 막아 악성 스토어 앱이 다른 로컬 프로그램을 공격하는 것을 방지합니다. 해제하려면 해당 앱을 루프백 예외 목록(Loopback Exemption)에 추가하면 되며, Windows에 기본 내장된 명령줄 도구 CheckNetIsolation.exe로 처리할 수 있어 별도 소프트웨어 설치가 필요 없습니다. 아래 두 방법 중 필요에 맞게 선택하면 됩니다.
방법 1: 패키지 이름으로 개별 앱만 정확히 예외 처리
특정 스토어 앱만 프록시를 타게 하려는 경우에 적합하며, 예외 범위가 가장 작고 격리 정책 변경도 최소화됩니다.
- 시작 메뉴를 우클릭해 "터미널(관리자)" 또는 "Windows PowerShell(관리자)"를 선택합니다. 예외 처리는 반드시 관리자 권한이 필요하며, 일반 권한으로 실행하면 거부됩니다.
- 대상 앱의 패키지 패밀리 이름(PackageFamilyName)을 조회합니다. 날씨 앱을 예로 들면 다음을 실행합니다:
Get-AppxPackage *bingweather* | Select-Object Name, PackageFamilyName
출력 결과의 PackageFamilyName 열에 Microsoft.BingWeather_8wekyb3d8bbwe와 같은 값이 표시됩니다. 별표 사이의 키워드를 대상 앱의 영문 이름으로 바꾸면 됩니다. 예: *windowsstore*, *windowscalculator*.
- 조회한 패키지 패밀리 이름을 예외 목록에 추가합니다:
CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.BingWeather_8wekyb3d8bbwe
매개변수 -a는 추가를 의미하며, -n= 뒤에 앞서 조회한 전체 패키지 패밀리 이름을 붙입니다.
- 해당 앱을 닫고 다시 열면 네트워크가 바로 복구됩니다. 설정은 즉시 적용되며 시스템 재시작이 필요하지 않습니다.
방법 2: 명령 한 줄로 모든 UWP 앱 일괄 예외 처리
스토어 앱이 많아서 패키지 이름을 하나씩 조회하기 번거롭다면 SID 기준으로 모든 앱 패키지를 한 번에 예외 처리할 수 있습니다. 마찬가지로 관리자 터미널에서 실행합니다:
CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-1
S-1-15-2-1은 Windows 내장 보안 식별자인 "ALL APPLICATION PACKAGES"(모든 애플리케이션 패키지)의 SID입니다. 이를 예외 목록에 추가하면 모든 UWP 앱이 루프백 주소에 접근할 수 있게 되어 시스템 프록시가 일괄 적용되며, 새로 설치되는 스토어 앱에도 동일하게 적용됩니다.
격리 범위에 주의
일괄 예외 처리는 모든 스토어 앱의 샌드박스 격리를 완화해 어떤 스토어 앱이든 로컬 서비스에 접근할 수 있게 만듭니다. 보안 격리가 중요한 환경이라면 방법 1로 돌아가 실제로 프록시가 필요한 앱만 개별적으로 예외 처리하는 것을 권장합니다.
확인 및 원상 복구
예외 목록은 언제든 조회하고 삭제할 수 있으며, 자주 쓰는 명령은 다음과 같습니다:
- 현재 모든 예외 항목 조회:
CheckNetIsolation.exe LoopbackExempt -s - 개별 앱 예외 삭제:
CheckNetIsolation.exe LoopbackExempt -d -n=패키지 패밀리 이름 - SID로 추가한 예외 삭제:
CheckNetIsolation.exe LoopbackExempt -d -p=S-1-15-2-1 - 모든 예외 항목 초기화:
CheckNetIsolation.exe LoopbackExempt -c
적용 여부 확인: 앞서 인터넷이 끊겼던 UWP 앱을 다시 열고, Clash 클라이언트의 연결 패널을 함께 확인합니다. 해당 앱 프로세스의 연결 기록이 나타나면 트래픽이 코어로 들어간 것입니다. 예외 설정은 시스템 구성에 기록되어 재시작 후에도 유지되며, Windows 대규모 업데이트 후에는 -s로 목록이 온전한지 한 번 재확인하는 것을 권장합니다.
예외 처리 후에도 안 될 때의 점검 방법과 TUN 대안
예외 처리를 마쳤는데도 앱이 여전히 인터넷에 연결되지 않는다면 다음 순서로 확인합니다:
- 명령을 관리자 터미널에서 실행했는지 확인합니다. 권한이 부족하면 권한 상승이 필요하다는 메시지가 표시됩니다.
- Clash의 혼합 포트 또는 HTTP 포트가 변경되지 않았는지, 시스템 프록시 설정의 포트와 일치하는지 확인합니다.
- Windows 방화벽이나 타사 보안 소프트웨어가 Clash 코어 프로그램의 로컬 리스닝을 차단하고 있는지 확인합니다.
- Clash 로그를 확인해 요청이 코어까지 도달했는지 확인합니다. 전혀 도달하지 않았다면 여전히 격리 계층에서 차단되고 있다는 뜻입니다.
또 다른 방법은 시스템 프록시 자체를 우회하는 것입니다. 바로 TUN 모드입니다. TUN은 네트워크 계층에 가상 네트워크 카드를 만들어 기기 전체의 트래픽을 처리하는데, UWP 앱의 트래픽도 가상 네트워크 카드를 거쳐 mihomo 코어로 바로 들어가기 때문에 127.0.0.1이라는 프록시 주소를 거치지 않아 루프백 제한이 자연스럽게 적용되지 않습니다. Clash Verge Rev, Clash Plus 등 mihomo 코어 기반 클라이언트는 모두 TUN 모드를 지원하며, 처음 켤 때는 서비스 모드 설치나 관리자 권한 실행이 필요합니다. 스토어 앱을 장기간 많이 사용하는 사용자라면 예외 목록을 관리하는 것보다 TUN 모드를 바로 쓰는 편이 훨씬 편리합니다.
TUN 모드의 추가 이점
TUN은 시스템 프록시 설정을 읽지 않는 명령줄 도구나 게임 클라이언트를 포함한 모든 트래픽을 처리하므로, 한 번 설정하면 UWP 외의 모든 상황까지 함께 해결됩니다.
andDOWNLINK READY
Clash 클라이언트 다운로드
Windows, macOS, Linux, Android, iOS를 모두 지원하는 Clash 클라이언트 다운로드 페이지입니다. mihomo 코어 버전과 그래픽 인터페이스 버전을 함께 제공합니다.