튜토리얼 2026-04-24 · 약 17분

Microsoft Store와 UWP가 Clash를 타지 않을 때: 루프백 예외와 TUN으로 고치기

Clash에서 시스템 프록시규칙 모드를 켰는데도 Microsoft Store 다운로드가 멈추거나, 특정 UWP 앱만 해외 API에 닿지 못하는 경우가 있습니다. 데스크톱용 크롬·Edge는 잘 따라오는데 스토어만 이상하다면, 원인은 종종 노드 품질이 아니라 Windows 앱 격리localhost 루프백(loopback) 정책입니다. 이 글은 CheckNetIsolation으로 패키지 예외를 주는 방법과, 한계를 넘을 때 TUN 모드로 스택 전체를 Clash에 태우는 실무 순서를 정리합니다.

증상: “프록시 켰는데 스토어만 직접 연결 같다”

대표적인 패턴은 다음과 같습니다. 작업 표시줄 트레이에서 Clash가 “시스템 프록시 적용됨”을 보여 주는데도 Microsoft Store의 앱 설치·업데이트가 0x80072... 계열 오류로 멈추거나, 진행률이 아주 느립니다. Xbox 앱·일부 뉴스·날씨·스트리밍 UWP는 로그인만 실패하고 동일 Wi-Fi의 브라우저는 정상입니다. 반대로 Win32 설치형 앱(일반 .exe)은 문제없이 프록시를 타는데, Microsoft 계정 동기화나 스토어 계열만 빠지는 경우도 흔합니다.

이때 성급히 “구독이 나쁘다”고 결론내리기 전에, Clash 로그에서 해당 앱의 연결이 아예 찍히지 않는지부터 봅니다. 연결 자체가 없다면 트래픽이 Clash 리스너까지 오지 않은 것이고, UWP 격리·루프백 쪽을 의심하는 편이 빠릅니다. 로그에는 뜨는데 정책이 DIRECT로만 잡힌다면 규칙 순서·도메인 목록을 점검하세요.

  • 브라우저 OK, 스토어 NG: WinINet/WinHTTP를 쓰는 경로 차이 + 앱 컨테이너 제한이 겹친 전형.
  • localhost MIXED 포트: UWP는 기본적으로 루프백이 막혀 로컬 프록시 포트에 붙지 못하는 경우가 많음.
  • TUN 켜면 갑자기 정상: 커널 경로 가로채기로 격리 레이어를 우회한 신호.

왜 UWP는 시스템 프록시와 어긋나기 쉬운가

Microsoft Store와 대부분의 UWP는 앱 패키지 안에서 실행되며, 보안 모델상 네트워크 격리(network isolation)가 적용됩니다. 그중 실무에서 Clash와 부딪히는 부분은 “같은 PC의 다른 프로세스가 연 127.0.0.1 포트로 나가지 못한다”는 루프백 제한입니다. Clash가 127.0.0.1:포트 형태의 로컬 HTTP/SOCKS 프록시를 쓰는 구성이면, 격리된 UWP는 그 소켓을 신뢰된 대상으로 보지 않아 연결을 시도조차 안 하거나 실패할 수 있습니다.

반면 TUN(가상 어댑터)은 트래픽을 사용자 모드 프록시 설정에 덜 의존하는 경로로 끌고 가므로, 동일한 규칙 세트라도 스토어·UWP에서 체감이 달라지는 경우가 많습니다. 즉 “시스템 프록시 = 모든 앱 동일”이 아니라, 런타임이 어디까지 격리되어 있는지에 따라 Clash가 보이는 위치가 달라집니다.

정리

Win32 브라우저가 잘 되는 것만으로 “Windows 전체가 프록시를 쓴다”고 단정하지 마세요. 앱 컨테이너는 별도의 출입증이 필요합니다.

시작 전: 클라이언트·포트·모드 확인

아래 작업 전에 Clash(또는 Clash Verge·Mihomo GUI 등)에서 mixed-port 또는 HTTP/SOCKS 포트가 실제로 열려 있는지, 시스템 프록시가 그 포트를 가리키는지 확인하세요. 처음 Windows에 Clash를 올리는 경우 《Clash for Windows 설치·구독 가이드》로 기본선을 맞춘 뒤 이 문서를 적용하는 것이 좋습니다. WSL2만 안 되고 UWP는 별개라면 《WSL2·Clash》와 혼동하지 않도록 증상을 분리하세요.

규칙 파일에서 Microsoft·CDN 도메인이 실수로 DIRECT로 고정돼 있지 않은지, MATCH 앞단에 좁은 예외가 없는지도 함께 봅니다. 스토어 전용 호스트는 지역·버전에 따라 바뀌므로, 로그에 찍힌 실제 SNI·호스트를 기준으로 조정하는 편이 안전합니다.

방법 1: CheckNetIsolation으로 루프백 예외(Loopback Exempt)

가장 직접적인 해결은 Microsoft가 제공하는 CheckNetIsolation 유틸리티로, 특정 UWP 패키지에 대해 LoopbackExempt를 허용하는 것입니다. 관리자 권한이 필요합니다. “개발자용 우회”가 아니라 공식적으로 노출된 진단·개발 도구 계열이며, 기업 환경에서는 정책에 맞게 사용해야 합니다.

1) Package Family Name 확인

관리자 PowerShell에서 예를 들어 다음과 같이 조회합니다. 앱 이름에 맞게 와일드카드를 바꿉니다.

# List family names (run PowerShell as Administrator)
Get-AppxPackage *WindowsStore* | Select-Object Name, PackageFamilyName
Get-AppxPackage *Xbox* | Select-Object Name, PackageFamilyName

출력의 PackageFamilyName-n 인자에 들어갈 문자열입니다. 빌드에 따라 접미사가 달라질 수 있으니 복사해 쓰세요.

2) 예외 추가

관리자 명령 프롬프트(cmd) 또는 PowerShell에서 실행합니다. 아래는 Store에 흔한 예시이며, 본인 PC에서 확인한 Family Name으로 반드시 교체하세요.

# Add loopback exemption (Administrator) — replace Family Name
CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"

여러 UWP를 쓰면 패키지마다 한 줄씩 추가합니다. 이미 등록된 목록은 CheckNetIsolation LoopbackExempt -c로 확인할 수 있습니다. 더 이상 필요 없으면 -d로 삭제하는 옵션도 있습니다(도움말: CheckNetIsolation LoopbackExempt -?).

보안 메모

루프백 예외는 해당 앱이 로컬 서비스·디버그 포트에 접근할 수 있게 넓히므로, 필요한 패키지에만 최소한으로 적용하고 주기적으로 목록을 정리하세요.

방법 2: TUN 모드로 전체 스택을 Clash에 태우기

패키지마다 예외를 넣기 번거롭거나, 어떤 UWP가 문제인지 특정하기 어렵다면 TUN이 실무 대안입니다. 가상 네트워크 어댑터를 통해 시스템 라우팅 레벨에서 트래픽이 Clash 코어로 들어오므로, 루프백 제한을 피하는 경우가 많습니다. Meta(Mihomo) 계열에서는 TUN 스택 옵션·스택별 호환(Windows에서 gVisor/wintun 등)이 GUI마다 다르니, 사용 중인 클라이언트 문서를 따릅니다.

TUN을 켠 뒤에도 스토어가 이상하면 다음을 순서대로 봅니다. (1) 방화벽이 새 어댑터를 차단하지 않는지 (2) DNS가 Clash 쪽과 맞는지—《DNS·fake-ip 점검》 참고 (3) 규칙에서 Microsoft CDN이 의도치 않게 국내 직행·차단되지 않는지. 게임 안티치트와 TUN이 충돌한다면 해당 타이틀 실행 시에만 TUN을 끄는 등 용도를 나누는 것도 현실적인 타협입니다.

접근 장점 주의
Loopback 예외 변경 범위가 패키지 단위로 좁음 관리자·Family Name 유지 부담
TUN UWP 전반에 일관되게 적용되기 쉬움 드라이버·DNS·다른 VPN과 상호작용

규칙·DNS와의 정합

루프백이나 TUN을 고쳐도 스토어가 실패하면, Clash 규칙에서 storeedgefd.dsx.mp.microsoft.com 같은 호스트가 어떤 정책 그룹으로 가는지 로그로 확인하세요. 지나치게 공격적인 광고 차단·지역 리스트가 Microsoft 배포 도메인을 건드리면 “다운로드 대기”만 도는 증상이 납니다. 원격 규칙 세트를 쓰더라도 스토어·Xbox 계열이 어디로 떨어지는지 한 번은 직접 검증하는 것이 안전합니다.

fake-ip 모드에서는 앱이 기대하는 DNS 응답과 Clash의 가짜 IP가 어긋나 이상 증상이 나올 수 있습니다. 이때는 redir-host 계열이나 DNS 폴백 설정을 점검하고, 변경은 한 번에 한 가지씩만 적용해 원인을 분리하세요.

Clash 종료 후 인터넷이 이상할 때

시스템 프록시 플래그가 남아 전체 앱이 “연결됐는데 페이지만 안 열리는” 상태가 되면, UWP 문제와 별개로 프록시 잔존 이슈일 수 있습니다. 《Clash 종료 후 시스템 프록시 복구》에서 Windows 쪽 설정을 초기화한 뒤, 이 문서의 루프백·TUN 단계를 다시 적용하세요.

FAQ

Edge는 되는데 Store만 안 된다

Edge는 Win32 경로와 격리 정책이 다릅니다. Store 패키지에 LoopbackExempt를 추가하거나 TUN으로 경로를 통일해 보세요.

Family Name이 예시와 다르다

빌드·언어팩에 따라 접미사가 바뀝니다. Get-AppxPackage 출력을 그대로 복사해 -n="..."에 넣으면 됩니다.

TUN만 켜면 Store만 고치고 싶다

TUN은 전역 캡처에 가깝습니다. 앱 단위로 최소 변경을 원하면 Loopback 예외가 더 맞습니다. 또는 규칙으로 다른 트래픽은 DIRECT에 가깝게 두고 스토어 관련 도메인만 프록시 그룹으로 보내는 하이브리드도 가능합니다.

실무 체크리스트

  1. Clash 로그에 스토어 연결이 찍히는지 확인(안 찍히면 루프백·경로 문제 우선).
  2. Get-AppxPackage로 Family Name 확인 후 CheckNetIsolation LoopbackExempt -a -n="..." 적용.
  3. 여전히 실패하면 TUN 활성화·스택 옵션·방화벽 허용을 점검.
  4. 규칙·DNS·fake-ip가 Microsoft CDN과 충돌하지 않는지 로그로 검증.
  5. 문제 재현 시 프록시 잔존 여부를 《종료 후 복구》 가이드로 분리 진단.

지속적으로 관리 가능한 클라이언트에서

UWP 이슈는 “한 번 예외 넣고 끝”보다, OS 업데이트 후 패키지 버전이 바뀌면 Family Name이 달라지는지 목록을 다시 보는 유지 관리가 붙습니다. Clash 측에서는 로그와 규칙이 읽히는 구성을 유지할수록 원인 분리가 빨라집니다.

Clash를 무료로 내려받고 Windows 환경을 정돈해 보세요

스토어·UWP 경로 정리

루프백 예외 또는 TUN으로 Microsoft Store와 UWP가 Clash 정책과 맞물리게 하세요.

Clash 다운로드