Windows UWP 앱이 프록시를 타지 않을 때: 루프백 제한 해제 방법
시스템 프록시를 켜면 브라우저는 모두 정상인데 Microsoft Store, 메일, 날씨 같은 스토어 앱만 인터넷에 연결되지 않거나 직접 연결로 빠집니다. 이는 Clash 설정이 잘못된 것이 아니라 Windows가 UWP 앱에 적용하는 루프백 제한이 요청을 가로막기 때문입니다. 이 글에서는 제한의 원리를 설명하고, 그래픽 화면에서 체크하는 방식과 명령줄 방식 두 가지 예외 설정법, 그리고 TUN 모드로 전체를 일괄 처리하는 대안을 소개합니다.
증상: 스토어 앱만 정상이 아닐 때
전형적인 상황은 이렇습니다. Clash에서 시스템 프록시를 켰고 브라우저의 해외 사이트 접속은 원활한데, Windows 기본 스토어 앱들이 일제히 먹통이 되는 경우입니다. 흔한 증상은 다음과 같습니다.
- Microsoft Store를 열면 로딩만 계속되거나 네트워크 연결 없음 안내가 뜨고, 앱 다운로드 진행률이 0에서 멈춤
- 메일 및 캘린더, 날씨, 스티커 메모, Xbox 등 시스템 앱이 새로 고침에 실패하거나 오프라인으로 표시됨
- 스토어에서 설치한 서드파티 UWP 앱에서 계정 로그인이나 콘텐츠 로딩이 되지 않음
- 같은 PC에서 Chrome, Edge 같은 일반 데스크톱 프로그램은 프록시가 완벽히 동작함
원인은 구독도 규칙도 아닙니다. 일반 데스크톱 프로그램(Win32)은 시스템 프록시 설정을 그대로 읽어 트래픽을 로컬 포트인 127.0.0.1:7890으로 보냅니다. 반면 스토어 앱은 AppContainer 샌드박스 안에서 실행되고, 시스템은 기본적으로 이들이 어떤 루프백 주소에도 접속하지 못하게 막기 때문에 요청이 Clash에 닿기 전에 차단됩니다.
원리: AppContainer와 루프백 제한
Windows 8부터 스토어 앱(UWP, 초기에는 Metro로 불림)은 AppContainer 격리 환경에서 실행되며, 네트워크 측면에는 Network Isolation 정책이 따라붙습니다. 기본적으로 앱이 로컬 루프백 주소(127.0.0.1, ::1)로 연결을 시작할 수 없습니다. 악성 스토어 앱이 로컬에서 실행 중인 서비스를 탐색하거나 공격하는 것을 막기 위한 설계입니다.
Clash의 시스템 프록시는 본질적으로 프로그램이 트래픽을 로컬 혼합 포트(기본 7890)에 넘기도록 하는 방식입니다. Win32 프로그램은 Network Isolation의 제약을 받지 않아 그대로 통과하지만, UWP 앱은 127.0.0.1에 접속하는 단계에서 시스템이 바로 거부합니다. 결과는 두 가지입니다. 앱이 네트워크 오류를 내며 아예 연결되지 않거나, 프록시를 우회해 직접 연결되어 "인터넷은 되지만 프록시는 타지 않는" 상태가 됩니다.
해법은 LoopbackExempt, 즉 루프백 예외입니다. 지정한 앱을 허용 목록에 넣어 루프백 주소 접근을 허용하는 방식입니다. 예외 설정은 시스템 구성에 기록되어 재부팅 후에도 유지되며, 추가와 삭제 모두 관리자 권한이 필요합니다.
예외 설정이 곧 프록시 통과는 아닙니다
루프백 예외는 "로컬에 연결할 수 있는가"의 문제만 해결합니다. 예외 설정 후에도 앱은 시스템 프록시 설정을 거치거나 TUN 모드에 편입되어야 트래픽이 실제로 Clash로 들어옵니다. 둘은 대체 관계가 아니라 선후 관계입니다.
방법 1: 클라이언트 내장 예외 도구
그래픽 인터페이스 방식이 가장 간편해서 대부분의 사용자에게 적합합니다.
- Clash Verge Rev를 열고 설정 페이지에서 「UWP 루프백 예외」 항목을 찾습니다.
- 클릭하면 시스템이 앱 목록 창을 띄웁니다(Windows 기본 EnableLoopback 화면을 호출합니다). 예외 처리할 앱을 체크합니다.
- 저장하고 관리자 권한 확인 창을 승인하면 설정이 즉시 적용됩니다.
구버전 Clash for Windows는 설치 디렉터리에 EnableLoopback.exe를 포함하고 있으며, 더블 클릭하면 같은 체크 목록 화면이 열립니다. 체크는 필요한 것만 하세요. Microsoft Store, 메일 및 캘린더, Xbox, 날씨처럼 실제로 프록시가 필요한 앱만 선택하면 되고 전부 선택할 필요는 없습니다. 예외 범위는 좁을수록 좋습니다.
방법 2: CheckNetIsolation 명령줄
그래픽 도구에서 대상 앱을 찾을 수 없거나 더 정밀하게 제어하고 싶다면 Windows 기본 제공 CheckNetIsolation.exe를 사용합니다. 먼저 PowerShell을 관리자 권한으로 엽니다.
첫 번째 단계로 앱의 패키지 패밀리 이름(PackageFamilyName)을 확인합니다.
Get-AppxPackage -Name "*store*"
출력에서 PackageFamilyName 필드를 찾습니다. 예를 들어 Microsoft Store는 Microsoft.WindowsStore_8wekyb3d8bbwe입니다. 이후 필요에 따라 실행합니다.
| 작업 | 명령 |
|---|---|
| 예외 추가 | CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.WindowsStore_8wekyb3d8bbwe |
| 목록 보기 | CheckNetIsolation.exe LoopbackExempt -s |
| 개별 삭제 | CheckNetIsolation.exe LoopbackExempt -d -n=Microsoft.WindowsStore_8wekyb3d8bbwe |
| 전체 삭제 | CheckNetIsolation.exe LoopbackExempt -c |
매개변수 설명: -n은 패키지 패밀리 이름이나 AppContainer 이름을 받고, -p는 SID를 받습니다. 일상적인 작업에는 -n이면 충분합니다. -s를 실행하면 현재 예외 처리된 모든 앱을 나열하므로 확인에 편리합니다.
권한 요구 사항
추가, 삭제, 전체 삭제는 모두 관리자 권한 터미널에서 실행해야 하며, 그렇지 않으면 "요청한 작업에 권한 상승이 필요합니다"라는 안내가 뜹니다. 일반 창에서는 목록 보기만 실행할 수 있습니다.
방법 3: TUN 모드로 전체 트래픽 처리
앱마다 예외를 설정하기 번거롭다면 발상을 바꿀 수 있습니다. mihomo 코어의 TUN 모드는 가상 네트워크 어댑터를 만들어 네트워크 계층에서 기기 전체 트래픽을 직접 처리하며, 시스템 프록시 설정에 의존하지 않습니다. UWP 앱의 연결도 일반 프로그램과 마찬가지로 Clash로 라우팅되므로 루프백 제한이 더 이상 걸림돌이 되지 않습니다.
TUN 모드는 서비스 모드 설치와 관리자 권한 부여가 필요하며, 설정 항목은 클라이언트의 설정 페이지에 있습니다. PC에 UWP 앱이 많거나 새 앱이 프록시를 타지 않는 상황이 잦은 경우에 적합합니다. 다른 네트워크 문제를 진단할 때는 시스템 프록시와 TUN 중 하나만 고정해 사용하는 것이 좋습니다. 두 가지 처리 방식이 겹치면 원인 파악이 어려워집니다.
확인 방법과 자주 묻는 문제
예외 설정을 마친 뒤 Microsoft Store에서 아무 앱이나 검색해 페이지가 정상적으로 로드되면 성공입니다. 더 직접적인 확인 방법은 클라이언트의 연결(Connections) 패널을 열고 대상 앱을 사용해 보는 것입니다. 해당 도메인의 연결 기록이 나타나는지 관찰하세요. 기록이 있다면 트래픽이 실제로 Clash를 거친 것입니다.
예외 설정 후에도 앱이 연결되지 않을 때
순서대로 확인하세요. 시스템 프록시가 여전히 켜져 있는지, 혼합 포트가 변경되지 않았는지(기본 7890), 대상 앱을 완전히 종료한 뒤 다시 열었는지 살펴봅니다. 일부 앱은 네트워크 상태를 캐시합니다.
명령 실행 시 오류가 발생할 때
"권한 상승이 필요합니다" 안내가 뜨면 터미널이 관리자 권한이 아니라는 뜻입니다. 창을 닫고 PowerShell을 마우스 오른쪽 버튼으로 클릭해 관리자 권한으로 다시 실행한 뒤 명령을 입력하세요.
앱 업데이트 후 예외가 무효화될 때
예외는 패키지 패밀리 이름 기준으로 기록되며 보통 버전을 넘어 유지됩니다. 드물게 대규모 개편 후 패키지 이름이 바뀌는 앱은 새 PackageFamilyName으로 다시 추가해야 하며, -s로 목록을 대조하면 확인할 수 있습니다.
요약
스토어 앱이 프록시를 타지 않는 근본 원인은 Clash 오류가 아니라 Windows의 루프백 격리입니다. 앱이 적다면 그래픽 도구나 CheckNetIsolation으로 하나씩 예외 처리하고, 앱이 많다면 TUN 모드로 한 번에 해결하세요.