특정 유형의 VPN 연결을 사용할 때 일부 Windows 8 최신 앱(Metro 앱)이 인터넷에 접속하지 못하는 현상을 겪어본 적이 있을 것입니다. 흥미로운 점은 모든 Metro 앱에서 문제가 발생하는 것은 아니라는 사실입니다. 즉, 일부 앱(주로 기본 제공 Metro 앱)은 정상적으로 작동하지만 나머지는 서버에 연결조차 되지 않습니다. 반면 기존의 클래식 Windows 데스크톱 애플리케이션은 아무 문제 없이 인터넷을 사용합니다.
흥미로운 것은 컴퓨터 앞단에 VPN 연결을 대신 설정해 주는 하드웨어 라우터를 두면 이 문제가 발생하지 않는다는 점입니다. 즉, 이 문제는 Windows 8이 직접 VPN 터널을 구성할 때에만 나타납니다.
꽤 오래된 문제지만 지금까지도 마이크로소프트의 공식적인 해결책은 존재하지 않습니다(적어도 필자는 찾지 못했습니다). 이 글에서는 문제가 발생하는 원인과 이를 해결하는 방법을 살펴보겠습니다.
문제의 원인: 루프백 인터페이스 접근 제한
Windows 8의 최신 앱은 기존 클래식 앱과 여러 면에서 다릅니다. 이 문맥에서 주목해야 할 점은 최신 앱이 격리된 환경에서 실행되며, 기본적으로 컴퓨터의 루프백(loopback) 인터페이스에 대한 접근이 비활성화되어 있다는 것입니다. 그런데 VPN에서 사용하는 모든 터널 인터페이스(PPTP, L2TP, PPPoE)가 바로 이 루프백 인터페이스에 해당하기 때문에, 대부분의 Metro 앱은 터널 인터페이스로 네트워크 트래픽을 전송할 수 없고, 결과적으로 인터넷에 접속할 수 없게 됩니다. Privoxy 같은 간단한 광고 차단 도구부터 본격적인 프록시 서버까지, 로컬 프록시 서버를 사용할 때도 동일한 현상이 발생합니다.
Metro 앱에 완전한 네트워크 접근 권한을 부여하려면 APPX 매니페스트에 privateNetworkClientServer 권한을 추가해야 합니다. Visual Studio에서 개발하는 동안에는 이 접근 권한이 활성화되지만, 앱이 Windows Store에 게시된 후에는 개발자가 매니페스트 파일에서 이 기능을 수동으로 활성화해야 합니다.
Windows에서 터널 인터페이스가 루프백으로 취급되는 이상, 개발자에게 앱 수정을 요청하거나 우회적인 해결책을 사용하는 방법 외에 대안이 없습니다.
Fiddler를 이용한 우회 해결 방법
여기서는 웹 앱 디버깅과 컴퓨터·인터넷 서버 간 HTTP 트래픽 검사를 위해 만들어진 무료 HTTP/HTTPS 프록시 서버 Fiddler를 활용합니다. 참고로 이 도구를 사용하면 Windows Store에서 Metro 앱의 APPX 설치 파일 다운로드 직접 링크를 얻을 수도 있습니다.
- 공식 웹페이지(https://www.telerik.com/download/fiddler)에서 Fiddler Web Debugger를 다운로드합니다. Windows 8 이상에서는 .Net 4용 Fiddler가 필요합니다(컴퓨터에 .NET v4 Framework가 설치되어 있다고 가정합니다).
- 기본 설정으로 Fiddler를 설치합니다.
- 기본 상태에서는 최신 앱을 Fiddler로 디버깅할 수 없습니다. Fiddler는 로컬 프록시 서버로 동작하는데, Metro 앱은 기본적으로 로컬 프록시 인터페이스를 통해 트래픽을 보낼 수 없기 때문입니다. 이 제한(루프백 제한)은 Fiddler 확장 도구인 Windows 8 AppContainer Loopback Utility(enableloopbackutility.exe)를 사용해 특정 Metro 앱의 AppContainer에서 해제할 수 있습니다. 해당 확장을 다운로드하여 설치하세요.
- 유틸리티 설치 후 Fiddler를 실행하고 Tools 메뉴에서 Win8 Loopback Exemptions를 선택합니다(도구 모음의 첫 번째 Windows 8 버튼을 클릭해도 동일합니다).

- 다음 단계를 진행하기 전에 VPN이 연결되어 있는지(또는 로컬 프록시 서버가 시작되어 있는지) 반드시 확인하세요.
- 트래픽을 Fiddler로 우회시키고 루프백 접근 제한을 해제할 Windows 8 Metro 앱을 선택합니다. 모든 앱을 선택하려면 Exempt All을 클릭한 뒤 설정을 저장(Save Changes)합니다.

- Fiddler를 최소화합니다(절대 닫지 마세요!). 이후 Metro 앱의 네트워크 접속이 정상적으로 되는지 확인합니다.
참고: 이 창에는 보안 및 안정성상의 이유로 Windows가 Metro 앱이 로컬 컴퓨터로 네트워크 트래픽을 보내는 것을 차단한다는 안내가 표시됩니다. AppContainer Loopback Exemption Utility는 디버깅과 테스트를 목적으로 이 제한을 해제하는 도구입니다.
중요: 새로운 최신 앱을 설치할 때마다 해당 앱을 루프백 예외(Loopback Exemption) 목록에 수동으로 추가해야 합니다.
마무리
Fiddler는 배포와 관리 측면의 불편함 때문에 기업 환경에서의 실무 운영용으로는 적합하지 않습니다. 하지만 VPN 환경에서 Metro 앱을 정상적으로 사용할 수 있게 해주는 우회 해결책으로서 충분히 유용합니다.
지금까지 Fiddler를 활용해 Metro 앱이 어떠한 VPN 연결이나 로컬 프록시 서버를 통해서도 인터넷에 접근할 수 있도록 만드는 방법을 알아보았습니다.