먼저 UWP 루프백 제한인지 확인하기
브라우저에서는 Clash를 통해 정상적으로 인터넷에 연결되지만 Microsoft Store, Xbox, 일부 메일 또는 스트리밍 앱에서 계속 연결 오류가 발생한다면, 흔한 원인은 노드 장애가 아니라 Windows의 AppContainer 네트워크 격리입니다. UWP 앱은 일반적으로 AppContainer 샌드박스에서 실행되므로 로컬 루프백 주소인 127.0.0.1 또는 localhost에 기본적으로 자유롭게 연결할 수 없습니다.
Clash, Clash Meta(현재 이름은 mihomo) 및 관련 그래픽 클라이언트는 일반적으로 로컬에서 프록시 포트를 수신 대기합니다. 예를 들어 혼합 포트 mixed-port: 7890은 127.0.0.1:7890에 해당합니다. 시스템 프록시를 켜면 일반 데스크톱 프로그램은 이 주소에 연결할 수 있지만, 제한된 스토어 앱은 연결하지 못할 수 있습니다. 그 결과 “웹페이지는 정상인데 스토어 앱은 오프라인”인 상황이 발생합니다.
루프백 문제에서 흔히 나타나는 증상
- Edge, Firefox 또는 일반 데스크톱 소프트웨어는 프록시를 통해 외부 사이트에 접속할 수 있습니다.
- Microsoft Store가 오랫동안 로딩 상태에 머물거나 네트워크에 연결할 수 없다는 메시지를 표시합니다.
- Xbox, 피드백 허브, 구버전 메일 등 패키지 앱에서 연결에 실패합니다.
- Clash의 시스템 프록시를 끄면 앱이 직접 연결되지만, 다시 켜면 연결이 실패합니다.
- Clash 로그에 해당 앱의 연결 기록이 나타나지 않습니다.
먼저 로컬 프록시 포트 확인하기
클라이언트의 「설정」→「포트 설정」 또는 「설정」→「Mihomo 설정」을 열어 현재 사용하는 포트가 HTTP, SOCKS 또는 혼합 포트인지 확인하세요. 흔히 7890을 사용하지만 실제 포트는 7897, 7899 또는 사용자가 지정한 값일 수도 있습니다. Windows 시스템 프록시의 주소는 클라이언트가 수신 대기 중인 값과 일치해야 합니다.
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
mixed-port는 하나의 포트에서 HTTP와 SOCKS 연결을 동시에 수신한다는 뜻입니다. 여기서 allow-lan은 로컬 네트워크 장치의 프록시 접근 허용 여부를 제어하며, 로컬 UWP 루프백 권한과는 별개의 설정입니다. 이 값을 true로 바꿔도 루프백 예외를 대신할 수 없습니다.
방법 1: 클라이언트 내장 UWP 루프백 도구 사용하기
그래픽 클라이언트의 내장 도구는 일반 사용자에게 가장 적합한 방법입니다. 보통 설치된 AppContainer 앱 목록을 표시하고, 앱을 선택하면 Windows 시스템 인터페이스를 호출해 루프백 예외를 등록합니다. 클라이언트마다 메뉴 이름은 조금씩 다르지만 핵심 절차는 같습니다.
주요 메뉴 경로
- Clash Verge Rev 2.x: 「설정」→「시스템 설정」으로 이동한 뒤 「UWP 루프백」 또는 「Loopback」 메뉴를 찾습니다.
- 클래식 인터페이스를 유지하는 클라이언트: 「일반」 또는 「General」로 이동한 뒤 「UWP Loopback」 옆의 시작 버튼을 클릭합니다.
- 일부 mihomo 클라이언트: 「설정」→「네트워크」로 이동해 「UWP 루프백 제한 해제」를 찾습니다.
현재 클라이언트에 해당 메뉴가 없다고 해서 mihomo 코어에 프록시 기능이 없는 것은 아닙니다. 루프백 예외는 Windows 권한 설정에 해당하므로 일반적으로 그래픽 인터페이스나 시스템 명령으로 처리하며, 프록시 코어 설정 파일의 필드는 아닙니다.
구체적인 설정 절차
- 먼저 Clash 클라이언트를 실행한 상태로 두고 시스템 프록시가 켜져 있는지 확인합니다.
- 클라이언트의 UWP 루프백 도구를 열고 앱 목록이 모두 로드될 때까지 기다립니다.
- 프록시를 사용해야 하는 앱(예: Microsoft Store 또는 Xbox)을 찾습니다.
- 대상 앱을 선택합니다. 한 번에 모든 항목을 선택할 필요는 없습니다.
- 「저장」, 「적용」 또는 「제한 해제」를 클릭합니다. 시스템에서 권한 확인 창이 나타나면 실행을 허용합니다.
- 대상 앱을 완전히 종료한 후 다시 실행합니다. 창을 최소화하는 것만으로는 네트워크 프로세스가 새로 생성되지 않는 경우가 많습니다.
어떤 앱을 선택하는 것이 좋을까?
모두 선택하는 것보다 필요한 앱만 허용하는 편이 문제를 추적하기 쉽습니다. 먼저 문제가 발생한 앱만 선택하고 저장한 직후 확인하세요. Microsoft Store는 정상화되었지만 다른 앱이 계속 실패한다면 두 번째 패키지에 예외를 추가합니다. 이렇게 하면 어떤 변경이 효과를 냈는지 명확히 알 수 있고 나중에 되돌리기도 쉽습니다.
| 대상 | 권장 작업 | 확인할 항목 |
|---|---|---|
| Microsoft Store | 해당 스토어 패키지 선택 | 홈 콘텐츠와 앱 세부 정보가 로드되는지 확인 |
| Xbox | 주 프로그램과 인증 구성 요소를 각각 확인 | 로그인, 스토어 및 다운로드 대기열 |
| 피드백 허브 | 피드백 허브 패키지만 선택 | 계정 상태와 콘텐츠 목록 |
| 타사 스토어 앱 | 표시 이름과 패키지 제품군 이름으로 찾기 | 다시 시작한 후 Clash 로그 확인 |
방법 2: CheckNetIsolation으로 정확하게 예외 추가하기
CheckNetIsolation은 Windows에 기본 포함된 명령줄 도구로, AppContainer 루프백 예외를 확인하고 추가하거나 삭제할 수 있습니다. 클라이언트에 내장 메뉴가 없거나 그래픽 목록 로드에 실패했거나 변경 내용을 명확히 기록해야 할 때 유용합니다.
명령에서 중요한 매개변수는 Package Family Name이며, 한국어로는 보통 “패키지 제품군 이름”이라고 하고 PFN으로 줄여 부릅니다. 시작 메뉴에 표시되는 앱 제목이나 설치 폴더 이름이 아닙니다. 패키지 제품군 이름을 잘못 입력하면 명령이 대상 앱에 적용되지 않을 수 있습니다.
1단계: 앱의 패키지 제품군 이름 조회하기
시작 메뉴를 마우스 오른쪽 버튼으로 클릭하고 「터미널(관리자)」 또는 「Windows PowerShell(관리자)」를 엽니다. Microsoft Store를 조회하려면 다음 명령을 실행합니다.
Get-AppxPackage -Name Microsoft.WindowsStore |
Select-Object Name, PackageFamilyName
일반적인 출력 형식은 다음과 같으며, 실제 접미사는 게시자 식별자에 따라 달라집니다.
Name PackageFamilyName
---- -----------------
Microsoft.WindowsStore Microsoft.WindowsStore_8wekyb3d8bbwe
내부 이름을 모르는 경우 제목 키워드로 모든 패키지를 필터링할 수 있습니다.
Get-AppxPackage |
Where-Object {
$_.Name -like "*Store*" -or
$_.PackageFamilyName -like "*Store*"
} |
Select-Object Name, PackageFamilyName
2단계: 루프백 예외 추가하기
패키지 제품군 이름을 확인한 후 관리자 터미널에서 다음 명령을 실행합니다.
CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.WindowsStore_8wekyb3d8bbwe
LoopbackExempt는 루프백 예외를 관리한다는 뜻이며, -a는 추가를 의미합니다. -n 뒤에는 패키지 제품군 이름을 입력합니다. 실행이 끝나면 Microsoft Store를 닫고 작업 관리자에서 관련 프로세스가 종료되었는지 확인한 뒤 다시 실행합니다.
3단계: 현재 예외 목록 확인하기
CheckNetIsolation.exe LoopbackExempt -s
목록에 대상 패키지 이름 또는 보안 식별자가 표시되면 예외가 등록된 것입니다. 명령이 성공했는데도 앱이 연결되지 않는다면 시스템 프록시 포트, Clash 로그 및 규칙 일치 결과를 계속 확인해야 합니다.
필요할 때 예외 삭제하기
CheckNetIsolation.exe LoopbackExempt -d -n=Microsoft.WindowsStore_8wekyb3d8bbwe
-d는 삭제를 의미합니다. 예외를 취소한 후 앱을 다시 시작하면 됩니다. 시스템 업데이트나 앱 재설치 후에는 패키지 등록 정보가 바뀔 수 있으므로 문제가 재발하면 이전 명령을 그대로 재사용하지 말고 PackageFamilyName을 다시 조회해야 합니다.
앱 트래픽이 실제로 Clash로 유입되는지 확인하기
앱이 다시 로드된다고 해서 트래픽이 예상대로 프록시를 통과한다고 단정할 수는 없습니다. 일부 요청은 직접 연결될 수 있고 캐시된 콘텐츠 때문에 페이지가 정상처럼 보일 수도 있습니다. Clash 연결 로그, 규칙 일치 결과 및 외부 IP를 함께 확인하는 것이 더 확실합니다.
실시간 연결 확인하기
- Clash 모드를 「규칙」 모드로 유지합니다.
- 클라이언트의 「연결」 또는 「Connections」 페이지를 엽니다.
- 필터 조건을 모두 지우고 현재 연결 수를 기록합니다.
- 대상 UWP 앱을 완전히 종료한 후 다시 실행하고 콘텐츠를 새로 고칩니다.
- 새 도메인, 대상 IP, 프로세스 또는 정책 그룹 기록이 나타나는지 확인합니다.
예를 들어 Microsoft Store를 연 후 연결 페이지에 Microsoft 서비스 관련 요청이 나타나고 일치한 규칙과 최종 정책이 표시되어야 합니다. 운영체제 버전, 지역 및 계정 상태에 따라 사용하는 도메인이 달라질 수 있으므로 특정 도메인 하나만으로 판단해서는 안 됩니다.
일시적으로 전역 모드에서 교차 확인하기
규칙 모드에서도 계속 실패한다면 잠시 「전역」 모드로 전환하고 사용할 수 있는 노드를 선택해 보세요. 전역 모드에서 앱이 정상화된다면 루프백 연결은 이미 구축된 것이므로 이후 문제는 규칙 매칭, DNS 또는 노드 연결성에 있을 가능성이 큽니다. 테스트가 끝나면 모든 트래픽이 장기간 같은 정책을 사용하지 않도록 「규칙」 모드로 되돌리세요.
세 가지 결과 비교하기
| 테스트 결과 | 가능성이 높은 원인 | 다음 단계 |
|---|---|---|
| 로그에 새 연결이 전혀 없음 | 루프백 예외가 적용되지 않았거나 앱을 다시 시작하지 않음 | 예외 목록을 다시 조회하고 앱 프로세스를 종료 |
| 연결은 있지만 모두 DIRECT에 일치 | 규칙에서 대상 트래픽을 직접 연결로 지정 | 규칙 순서와 정책 그룹 선택 확인 |
| 프록시 연결은 있지만 시간 초과 표시 | 노드를 사용할 수 없거나 대상 서비스가 연결을 거부 | 노드를 바꾸고 같은 대상을 테스트 |
| 전역 모드는 정상이고 규칙 모드는 실패 | 규칙 또는 DNS 설정 문제 | 일치한 규칙을 찾고 도메인 확인 결과 점검 |
계속 인터넷에 연결되지 않을 때 확인할 다섯 가지
1. 시스템 프록시 포트와 mixed-port가 일치하지 않음
mihomo가 127.0.0.1:7890에서 수신 대기한다고 가정해도 Windows 시스템 프록시가 이전 포트인 7897을 계속 가리키면, 앱에 루프백 권한이 있어도 연결을 만들 수 없습니다. Windows 11의 「설정」→「네트워크 및 인터넷」→「프록시」로 이동해 수동 프록시를 클라이언트가 올바르게 관리하고 있는지 확인하세요.
일반적으로 Windows 프록시를 수동으로 입력하면서 클라이언트의 시스템 프록시 스위치도 동시에 켜는 것은 권장하지 않습니다. 두 설정은 재부팅하거나 포트를 바꿀 때 동기화되지 않을 수 있습니다. 현재 클라이언트가 통합 관리하도록 하고, 포트를 변경한 뒤에는 시스템 프록시를 한 번 껐다가 다시 켜는 것이 좋습니다.
2. 클라이언트가 코어를 정상적으로 시작하지 못함
클라이언트 홈 화면이나 로그에서 mihomo 코어가 실행 중인지 확인하세요. 로그에 포트 충돌이 나타나면 해당 포트를 사용하는 프로세스를 먼저 종료하거나 mixed-port를 7890이 아닌 비어 있는 포트로 변경한 뒤 시스템 프록시도 함께 새로 고칩니다.
netstat -ano | findstr :7890
명령 출력의 마지막 열은 프로세스 PID입니다. 작업 관리자의 「세부 정보」 페이지에서 PID로 프로세스를 찾을 수 있습니다. 정체를 모르는 시스템 프로세스를 바로 종료하지 말고, 다른 프록시 클라이언트나 이전에 종료되지 않은 코어 인스턴스에 속하는지 먼저 확인하세요.
3. 규칙이 Microsoft 서비스를 사용할 수 없는 정책으로 분류함
루프백 예외는 “앱이 로컬 프록시에 연결할 수 있는지”만 해결하며, 앱이 사용할 노드를 대신 선택하지는 않습니다. 「연결」 페이지에서 요청이 어느 정책 그룹에 일치했는지 확인하세요. 정책 그룹이 사용 불가 노드, 거부 정책 또는 잘못된 직접 연결 경로를 사용하면 계속 로딩에 실패할 수 있습니다.
테스트할 때는 해당 정책 그룹에서 지연 시간이 안정적인 노드를 직접 선택해 보세요. 지연 시간 테스트에 성공했다는 것은 테스트 주소에 접근할 수 있다는 뜻일 뿐, 모든 Microsoft 서비스에 접근할 수 있다는 의미는 아닙니다. 실제 연결 상태도 함께 확인해야 합니다.
4. DNS 조회 결과가 비정상임
로그에 DNS 시간 초과, 도메인 조회 실패 또는 대상 주소 없음이 계속 나타난다면 mihomo 설정의 dns.enable, 상위 DNS 및 작동 모드를 확인하세요. TUN 모드를 사용하는 경우에는 클라이언트의 서비스 모드 또는 관리자 권한이 정상적으로 설치되었는지도 확인해야 합니다. 그렇지 않으면 DNS 가로채기가 적용되지 않을 수 있습니다.
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 1.1.1.1
- 8.8.8.8
이 설정은 구조를 보여 주는 예시일 뿐이며, 현재 구독 설정을 그대로 덮어쓰는 데 사용할 수 없습니다. 구독에는 이미 규칙, 보조 DNS 및 Fake-IP 필터 목록이 설정되어 있을 수 있습니다. 수정하기 전에 기존 설정을 보존하고, 우선 클라이언트에서 제공하는 오버라이드 기능을 사용하세요.
5. 앱 프로세스가 실제로 다시 시작되지 않음
창을 닫아도 스토어 앱이 백그라운드에서 계속 실행 중일 수 있습니다. 작업 관리자의 「프로세스」 또는 「세부 정보」 페이지에서 해당 작업을 종료하고 5초 후 다시 시작하세요. Windows 계정에서 로그아웃한 뒤 다시 로그인해 AppContainer 프로세스가 권한을 새로 읽도록 하는 방법도 있습니다.
자주 묻는 질문
브라우저는 정상인데 Microsoft Store만 오프라인으로 표시되는 이유는 무엇인가요?
일반 데스크톱 브라우저는 127.0.0.1의 Clash 프록시에 연결할 수 있지만, 일부 AppContainer 앱은 기본적으로 루프백 제한을 받습니다. 먼저 Microsoft Store에 루프백 예외를 추가한 다음 앱을 다시 시작하세요.
루프백 제한을 해제한 후 컴퓨터를 다시 시작해야 하나요?
대부분의 경우 필요하지 않습니다. 대상 앱 프로세스를 완전히 종료한 뒤 다시 시작하면 됩니다. 앱이 이전 네트워크 상태를 계속 사용한다면 계정에서 로그아웃하거나 Windows를 다시 시작한 후 재시도하세요.
UWP 앱을 한 번에 모두 선택해도 되나요?
기술적으로 일부 도구에서는 모두 선택할 수 있지만, 문제를 해결할 때는 실제로 프록시가 필요한 앱만 처리하는 것이 좋습니다. 필요한 항목만 추가하면 효과를 확인하기 쉽고, 나중에 CheckNetIsolation.exe LoopbackExempt -s로 목록을 점검하기도 편합니다.
Clash 클라이언트를 바꾸면 다시 설정해야 하나요?
루프백 예외는 Windows에 저장되므로 일반적으로 클라이언트를 바꾼다고 바로 사라지지 않습니다. 다만 새 클라이언트의 수신 대기 포트, 시스템 프록시 및 TUN 설정이 다를 수 있으므로 Windows가 현재 실행 중인 프록시 포트를 가리키는지 확인해야 합니다.
CheckNetIsolation이 성공을 반환했는데도 앱이 인터넷에 연결되지 않으면 어떻게 해야 하나요?
앱이 완전히 다시 시작되었는지, 시스템 프록시 포트가 일치하는지, Clash 연결 로그에 요청이 나타나는지, 요청에 적용된 규칙과 정책이 무엇인지 순서대로 확인하세요. 전역 모드는 정상인데 규칙 모드가 실패한다면 규칙과 DNS를 중점적으로 점검해야 합니다.
처리 순서 요약
- 일반 데스크톱 프로그램이 Clash를 통해 인터넷에 연결되는지 확인합니다.
- 로컬 수신 대기 포트와 Windows 시스템 프록시가 일치하는지 확인합니다.
- 클라이언트 내장 도구로 대상 UWP 앱에 루프백 예외를 추가합니다.
- 그래픽 메뉴가 없다면 PowerShell로 패키지 제품군 이름을 조회한 후
CheckNetIsolation을 실행합니다. - 대상 앱을 완전히 종료하고 다시 시작합니다.
- Clash 연결 페이지에서 요청, 일치한 규칙 및 최종 정책을 확인합니다.
- 그래도 실패하면 노드, DNS, TUN 서비스 및 포트 충돌을 점검합니다.
이 문제를 해결하는 핵심은 두 가지를 분리해서 보는 것입니다. 루프백 예외는 앱이 로컬 프록시에 연결할 수 있는지를 결정하고, Clash 설정은 프록시에 연결된 이후 트래픽을 어떻게 조회·분류·전달할지를 결정합니다. 먼저 요청이 로그에 들어오는지 확인한 다음 규칙과 노드를 점검하면 훨씬 빠르게 원인을 찾을 수 있습니다.