왜 PC Clash를 휴대폰 LAN 프록시로 쓰나

노트북이나 데스크톱에 Clash·Mihomo 코어와 GUI 클라이언트를 이미 쓰고 있다면, 같은 무선 공유기 안의 휴대폰만 따로 VPN 앱을 설치하지 않고 HTTP(S) 프록시 한 줄로 PC의 프록시 포트를 빌려 쓰는 방식이 가장 단순한 경우가 많습니다. 특히 브라우저 위주로 쓰거나, 일부 앱만 프록시를 타게 하고 싶을 때는 iOS·Android의 수동 프록시 설정과 잘 맞습니다. 다만 이 패턴은 “PC가 켜져 있고 Clash가 실행 중이며, 같은 Layer 2/3 네트워크에 있다”는 전제가 있고, 127.0.0.1만 듣는 기본값 그대로라면 휴대폰은 아무리 올바른 포트를 넣어도 절대 붙지 않습니다. 핵심은 수신 주소(바인딩)를 LAN에 열 것, Windows 방화벽이 인바운드를 막지 않을 것, 휴대폰에 넣는 IP가 PC의 실제 LAN IPv4일 것의 세 가지입니다.

이후 절에서는 Clash Verge Rev 등 그래픽 클라이언트에서 흔히 보이는 표현(예: 시스템 프록시, 로컬 네트워크 허용, Mixed Port)을 기준으로 설명하지만, 원리는 동일합니다. 설치·프로필 개요는 Clash Verge Rev 설치·사용 가이드를, 포트·규칙의 전체 그림은 YAML 설정 심화 글과 맞춰 읽으면 흐름이 잡힙니다.

전제: 같은 Wi-Fi, 동일 서브넷, AP 격리 없음

먼저 휴대폰과 PC가 같은 SSID에 붙어 있어도, 공유기의 게스트 Wi-Fi클라이언트 격리(AP isolation)가 켜져 있으면 서로 IP로 통신할 수 없습니다. 이때 증상은 “프록시 설정은 맞는데 타임아웃”에 가깝습니다. 공유기 관리 화면에서 게스트 네트워크를 쓰고 있다면 일반 LAN으로 옮기거나, 격리 옵션을 끄고 다시 시도해야 합니다. 또한 PC가 유선이고 휴대폰이 무선이어도 같은 사설 대역(예: 192.168.0.0/24)이면 문제없지만, 이중 NAT·별도 공유기에 각각 붙어 있으면 라우팅이 어긋납니다.

Windows에서 PC의 IPv4를 확인할 때는 설정 앱의 네트워크 속성, 또는 명령 프롬프트에서 ipconfig활성 어댑터의 IPv4 주소를 봅니다. Wi-Fi가 여러 개 있거나 이더넷·Wi-Fi가 동시에 켜져 있으면, 실제로 인터넷에 나가는 인터페이스와 같은 주소를 휴대폰에 적어야 합니다. VPN이나 가상 어댑터가 기본 경로를 가로채는 환경이라면, 그때의 LAN 주소가 바뀌었는지도 함께 확인하세요.

수신 주소·포트: 127.0.0.1이 아니라 모든 인터페이스

Clash 계열은 보안상 기본적으로 루프백(127.0.0.1)에만 바인딩하는 경우가 많습니다. 이 상태에서는 같은 기기 안의 브라우저만 접속할 수 있고, LAN의 다른 장치는 PC의 공인이 아니라 사설 IP:포트로 접근해야 하므로, 코어가 0.0.0.0 또는 명시적 LAN IP에서 듣도록 바꿔야 합니다. 설정 파일에서는 bind-address* 또는 0.0.0.0로 두는 방식이 일반적이며, Mixed Port·HTTP·SOCKS 포트가 어떤 주소에 열려 있는지 한 번에 확인하는 것이 좋습니다.

그래픽 클라이언트에는 “로컬 네트워크에 허용”, “Allow LAN”, “LAN 연결 허용”처럼 표기된 토글이 있습니다. 이것이 꺼져 있으면 내부적으로 여전히 루프백에만 바인딩되거나 방화벽 규칙과 별개로 외부에서의 접속을 거부하는 레이어가 있을 수 있으니, 휴대폰에서 쓸 때는 켜는 것이 기본입니다. 반대로 공용 핫스팟·카페 Wi-Fi에서는 LAN에 노출되면 같은 망의 타인에게 포트가 보일 수 있으므로, 사용 후에는 끄거나 Clash를 종료하는 습관이 필요합니다.

휴대폰에 넣을 포트 번호는 보통 Mixed Port(HTTP와 SOCKS를 함께 받는 포트) 또는 설정에 표시된 HTTP 포트입니다. SOCKS만 열려 있는 번호를 HTTP 프록시 칸에 넣으면 동작하지 않으니, 클라이언트 상태 표시줄이나 설정 화면에서 “HTTP”와 같은 레이블이 붙은 값을 사용하세요.

Windows Defender 방화벽: 인바운드 규칙이 핵심

수신 주소를 LAN으로 열어도, Windows 방화벽이 해당 포트에 대한 인바운드 연결을 막으면 휴대폰에서는 “연결할 수 없음”으로 끝납니다. Clash 실행 파일이나 코어 바이너리에 대해 개인 네트워크 프로필에서 인바운드를 허용하는 것이 가장 단순합니다. “Windows Defender 방화벽을 통해 앱 허용”에서 해당 앱을 찾아 개인 네트워크를 체크하거나, 고급 설정에서 TCP 인바운드 규칙을 Mixed Port 번호에 맞춰 추가할 수 있습니다.

백신·보안 제품이 WFP 필터를 추가로 싣고 있으면 Defender에서 허용해도 차단되는 경우가 있습니다. 이때는 해당 제품의 방화벽 탭에서 Clash 관련 프로세스를 예외로 넣거나, 문제 재현 시에만 보안 소프트웨어를 잠시 끄고 비교 테스트하면 원인 분리가 빨라집니다. 회사 PC는 그룹 정책으로 인바운드가 막혀 있을 수 있어, 개인 장비에서만 가능한 설정일 수 있다는 점도 유의하세요.

휴대폰 설정: 서버 = PC의 LAN IP, 포트 = Mixed/HTTP

Android에서는 Wi-Fi 네트워크 상세 → 프록시 → 수동으로 들어가 호스트명에 PC의 IPv4, 포트에 앞서 확인한 HTTP 프록시 포트를 넣습니다. iOS/iPadOS는 해당 Wi-Fi의 정보 → HTTP 프록시 → 수동에서 동일합니다. 저장 후에는 브라우저로 임의의 사이트를 열어 보고, PC 쪽 Clash의 연결 로그에 휴대폰에서 온 요청이 잡히는지 확인하면 성공 여부를 빠르게 알 수 있습니다.

HTTPS 사이트는 브라우저가 CONNECT 터널을 프록시로 보내므로, HTTP 프록시 포트가 맞고 규칙·DNS가 정상이면 대부분 동일하게 동작합니다. 일부 앱은 시스템 프록시를 무시하고 직접 연결하므로 “브라우저만 되고 앱은 안 된다”는 현상은 Clash 문제라기보다 앱 특성인 경우가 많습니다. 전역적으로 모바일 트래픽을 끌어가려면 VPN/TUN 계열이 필요하고, 본 글의 LAN HTTP 프록시 방식과는 목적이 다릅니다.

연결이 안 될 때: 좁혀 가는 순서

첫째, 휴대폰에서 PC IP로 ping이 되는지 확인합니다. ping이 안 되면 프록시 이전에 레이어 3 문제(다른 서브넷, 격리, 잘못된 IP)입니다. 둘째, PC에서 netstat -ano | findstr :포트로 Clash가 해당 포트에서 LISTENING인지, 주소가 0.0.0.0 또는 PC LAN IP인지 봅니다. 셋째, 방화벽 프로필이 “공용”으로 잡혀 있으면 허용 규칙이 달라질 수 있으니, 현재 네트워크를 개인으로 바꾸거나 공용 프로필에서도 허용되도록 규칙을 조정합니다.

넷째, 다른 VPN이나 TUN 모드가 켜져 있으면 라우팅이 꼬여 PC 쪽에서 응답이 이상해질 수 있습니다. Windows에서 TUN 관련 문제를 다룬 글과 마찬가지로, “한 번에 한 가지 터널” 원칙으로 겹침을 줄이면 진단이 쉬워집니다. 다섯째, 포트가 다른 프로그램과 충돌하면 Mixed Port를 바꾼 뒤 휴대폰·방화벽 규칙도 같이 맞춥니다.

주의

LAN 프록시를 켠 채로 공용 Wi-Fi에 접속하면 같은 무선 망 사용자에게 노출될 수 있습니다. 필요할 때만 “LAN 허용”을 켜고, 사용 후에는 끄거나 PC를 잠금 상태로 두지 마세요.

정리

같은 Wi-Fi에서 휴대폰이 PC의 Clash를 쓰게 하려면, 요약하면 수신을 LAN에 열고, Windows 방화벽이 그 포트를 받아들이게 하고, 휴대폰 프록시 서버에 PC의 사설 IPv4와 올바른 HTTP 포트를 넣는 것입니다. 증상이 나오면 ping·경로·방화벽 프로필·포트 리슨 상태 순으로 좁히면 대부분 원인이 분리됩니다. 그래픽 클라이언트를 쓰면 바인딩과 시스템 프록시를 한 화면에서 다루기 쉬워 반복 설정에 유리합니다.

최신 빌드와 플랫폼별 패키지는 공식 배포 페이지에서 받는 것이 checksum·업데이트 정책 측면에서 안전합니다. → Clash를 무료로 내려받아 Windows 환경에서 LAN 프록시와 방화벽을 한 번에 맞춰 보세요.