혼합 포트, PC 주소, 라우터 게이트웨이 구분하기
휴대폰과 TV에 각각 프록시 클라이언트를 설치하지 않아도 됩니다. PC에서 Clash 계열 클라이언트의 프록시 포트를 LAN에 열면 다른 기기가 요청을 PC로 보내고, PC의 코어가 현재 설정에 따라 직접 연결하거나 프록시를 사용합니다. PC가 켜져 있고 클라이언트 코어가 정상 작동하며 기기끼리 직접 통신할 수 있어야 합니다.
이 문서에서는 mihomo 코어를 사용하는 Clash 계열 데스크톱 클라이언트를 기준으로 설명합니다. 클라이언트에 따라 설정 이름이 ‘LAN 연결 허용’, ‘Allow LAN’ 등으로 다를 수 있고, 포트가 GUI 설정으로 덮어써질 수도 있습니다. 구독 파일만 확인하지 말고 현재 클라이언트에 실제 적용된 설정을 기준으로 진행하세요.
| 항목 | 예시 값 | 입력 위치 |
|---|---|---|
| PC의 LAN IPv4 주소 | 192.168.1.20 | 휴대폰 또는 TV의 프록시 서버 주소 |
| 혼합 포트 | 7890 | 휴대폰 또는 TV의 프록시 포트 |
| 라우터 게이트웨이 | 192.168.1.1 | 네트워크 설정에 유지하며, 이 문서의 프록시 서버 주소로 사용하지 않음 |
| 로컬 루프백 주소 | 127.0.0.1 | 같은 PC의 프로그램이 연결할 때만 사용 |
혼합 포트 7890: HTTP와 SOCKS5를 한 포트에서 처리
mixed-port를 사용하면 코어가 하나의 포트에서 HTTP 프록시와 SOCKS5 프록시 요청을 모두 받고, 연결 시작 부분의 프로토콜 데이터를 보고 종류를 구분합니다. 앱에서 두 프록시를 동시에 켤 필요는 없습니다. 앱이 지원하는 방식을 선택한 뒤 같은 포트 번호를 입력하면 됩니다.
- HTTP 프록시: 휴대폰의 시스템 Wi-Fi 프록시나 브라우저에서 사용하기 적합합니다. HTTPS 사이트에 접속할 때는 일반적으로 HTTP CONNECT로 터널을 만들며, 대상 사이트의 TLS 연결은 앱과 대상 서버 사이에 설정됩니다.
- SOCKS5 프록시: 별도의 프록시 설정을 지원하는 앱과 명령줄 도구에 적합합니다. 도메인을 로컬에서 조회할지 프록시 측에 맡길지는 앱 설정에 따라 다릅니다.
- 7890은 자주 쓰이는 기본값일 뿐입니다. 설정 화면에 혼합 포트가 7897로 표시된다면 7897을 사용하세요. HTTP 포트, SOCKS 포트, 혼합 포트를 혼동하면 안 됩니다.
혼합 포트는 코어 제어 인터페이스와 다릅니다. 설정의 external-controller는 코어를 관리하는 용도이므로 휴대폰의 프록시 포트 입력란에 넣으면 안 됩니다. 프록시를 공유하려고 제어 인터페이스를 LAN 전체에 개방하지 마세요.
혼합 포트를 켜도 모든 트래픽이 자동으로 전달되지는 않습니다
휴대폰에서 HTTP 프록시를 설정해도 해당 설정을 따르는 앱의 요청만 PC로 전달됩니다. 게임의 UDP 트래픽이나 일부 동영상 앱, 자체 네트워크 스택을 사용하는 프로그램은 계속 직접 연결될 수 있습니다. SOCKS5에는 UDP ASSOCIATE 기능이 있지만 클라이언트 앱, 코어, 방화벽이 모두 지원해야 합니다. 7890을 열었다고 모든 UDP가 전달되는 것은 아닙니다.
마찬가지로 PC에서 TUN 모드를 켜도 휴대폰 트래픽까지 자동으로 TUN을 거치는 것은 아닙니다. TUN은 PC의 라우팅 트래픽을 가상 네트워크 인터페이스로 전달합니다. 휴대폰에서 프록시를 명시적으로 사용하지 않으면 휴대폰은 여전히 자체 기본 경로로 인터넷에 연결됩니다.
PC 설정: 외부 접속을 허용하고 실제 포트 확인하기
- 먼저 PC에서 프록시가 작동하는지 확인하세요. 정상적인 구독이나 설정을 불러오고 규칙 모드와 사용할 정책을 선택합니다. 공유 설정에 앞서 PC 브라우저에서 대상 사이트가 열리는지 확인해 노드 문제를 LAN 문제로 오인하지 않도록 하세요.
- 혼합 포트를 확인하세요. 클라이언트의 ‘설정’에서 ‘포트’ 또는 ‘포트 설정’을 열고 ‘혼합 포트’의 실제 값을 기록합니다. 해당 항목이 보이지 않으면 현재 클라이언트 설정과 코어 로그를 확인하세요.
- LAN 연결을 허용하세요. ‘LAN 연결 허용’ 또는 ‘Allow LAN’ 옵션을 찾아 켭니다. 일부 클라이언트는 설정 적용이나 코어 재시작이 필요합니다. 전환 후 로그에 리스닝 오류가 있는지 확인하세요.
- 리스닝 주소를 확인하세요. ‘바인딩 주소’ 옵션이 있다면
127.0.0.1로 제한하지 마세요. 모든 주소에서 수신하도록 설정하면 접속 가능한 범위가 넓어지므로, 이후 방화벽으로 접속 출처를 제한해야 합니다.
YAML을 사용하는 경우 이 세 항목을 확인하세요
아래는 mihomo에서 지원하는 관련 최소 설정 예시입니다. 공유에 필요한 항목만 보여 주며, 전체 구독 설정이 아니므로 기존 노드, 프록시 그룹, 규칙을 덮어쓰지 마세요.
mixed-port: 7890
allow-lan: true
bind-address: '*'
allow-lan: true는 LAN 연결을 허용합니다. bind-address: '*'는 모든 주소에 바인딩한다는 뜻이며, IPv4와 IPv6에서 실제로 어떻게 수신되는지는 시스템에 따라 다릅니다. 특정 로컬 IPv4 주소에서만 수신하려면 PC의 해당 네트워크 어댑터 주소를 바인딩 주소로 지정할 수 있지만, 주소가 바뀌면 설정도 수정해야 합니다.
PC의 IP 주소를 확인하고 LAN에서 들어오는 연결 허용하기
Windows: 네트워크 어댑터와 개인 네트워크 설정 확인
Win + R을 누르고 cmd를 입력한 다음 ipconfig를 실행하세요. 현재 연결된 ‘무선 LAN 어댑터 WLAN’ 또는 ‘이더넷 어댑터’에서 IPv4 주소를 확인합니다. TUN 가상 어댑터, 가상 머신 어댑터, 연결이 끊긴 어댑터는 선택하지 마세요.
Windows 11에서는 ‘설정’ → ‘네트워크 및 인터넷’ → 현재 Wi-Fi 또는 이더넷 연결에서 네트워크 프로필을 확인할 수 있습니다. 신뢰할 수 있는 가정용 네트워크인지 확인한 경우에만 ‘개인 네트워크’로 설정하세요. 호텔이나 학교 같은 공용 네트워크를 제한을 피하려고 개인 네트워크로 바꾸지 마세요.
방화벽에서는 클라이언트의 외부 연결만 허용하는 것이 아니라 PC의 프록시 리스닝 포트로 들어오는 연결도 허용해야 합니다. ‘Windows 보안’ → ‘방화벽 및 네트워크 보호’ → ‘고급 설정’ → ‘인바운드 규칙’에서 포트 규칙을 만들 수 있습니다. TCP, 로컬 포트 7890, 연결 허용을 선택하고 ‘개인’만 체크하세요. 그런 다음 규칙 속성의 ‘범위’에서 원격 IP를 ‘로컬 서브넷’으로 제한합니다.
PowerShell 사용에 익숙하다면 관리자 터미널에서 같은 범위의 규칙을 만들 수도 있습니다. 아래 명령은 실제 혼합 포트가 7890인 경우에만 사용하세요.
New-NetFirewallRule -DisplayName "Clash LAN TCP 7890" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7890 -Profile Private -RemoteAddress LocalSubnet
일반적인 휴대폰 HTTP 프록시 테스트에는 TCP만 허용하면 됩니다. 필요 이상으로 포트 범위를 넓히지 마세요. 이후 SOCKS5 UDP를 실제로 사용하는 경우에만 리스닝 상태와 앱 요구 사항에 맞춰 UDP 규칙을 별도로 확인하세요.
macOS와 Linux: 주소를 확인한 뒤 앱 권한 점검하기
- macOS: ‘시스템 설정’ → ‘네트워크’ → 현재 연결 → ‘세부사항’ → ‘TCP/IP’에서 IP 주소를 확인하세요. ‘시스템 설정’ → ‘네트워크’ → ‘방화벽’ → ‘옵션’에서 클라이언트 또는 실제 코어 프로세스의 수신 연결 권한도 확인합니다. 표시되는 이름은 클라이언트 패키징 방식에 따라 다를 수 있습니다.
- Linux:
ip -4 addr로 물리 네트워크 어댑터 주소를 확인하고,ss -lntp로 7890의 리스닝 상태를 점검하세요. UFW, firewalld 또는 다른 방화벽을 사용한다면 신뢰할 수 있는 네트워크 대역에서 실제 포트에 접속하도록만 허용하세요. 방화벽 규칙을 통째로 비우지 마세요.
라우터에서 PC에 DHCP 주소 예약을 설정하는 것이 좋습니다. PC를 재시작해도 같은 주소를 할당받으므로 휴대폰과 TV의 프록시 서버 주소를 매번 바꿀 필요가 없습니다.
휴대폰과 TV 설정: 프록시 서버 주소에는 PC IP, 포트에는 7890 입력
iPhone 및 iPad
- ‘설정’ → ‘Wi-Fi’로 이동한 뒤 현재 연결된 Wi-Fi 오른쪽의 정보 버튼을 탭합니다.
- ‘프록시 구성’을 열고 ‘수동’을 선택합니다.
- ‘서버’에 PC의 LAN IP를 입력합니다. 예:
192.168.1.20. ‘포트’에는 실제 혼합 포트를 입력합니다. 예:7890. - 프록시 인증을 사용하지 않는다면 ‘인증’은 끈 상태로 두세요. 저장한 다음 Safari에서 웹사이트에 접속해 테스트합니다.
이 설정은 현재 Wi-Fi에만 적용되며 셀룰러 네트워크에는 자동으로 적용되지 않습니다. 테스트를 마친 뒤 PC가 있는 네트워크에서 벗어나거나 PC를 끄면 ‘프록시 구성’에서 ‘끔’을 선택하세요. 그렇지 않으면 시스템 프록시 설정을 따르는 앱이 인터넷에 연결되지 않을 수 있습니다.
Android 휴대폰
일반적인 기본 Android 경로는 ‘설정’ → ‘네트워크 및 인터넷’ → ‘인터넷’ → 현재 Wi-Fi → 수정 → ‘고급 옵션’ → ‘프록시’ → ‘수동’입니다. 제조사에 따라 수정 메뉴가 네트워크 상세 화면 아래쪽에 있을 수 있습니다. 프록시 호스트 이름에는 PC IP를, 포트에는 7890을 입력하고 IP 설정은 DHCP로 유지하세요.
호스트 이름에 http://를 붙이지 말고 주소와 포트를 한 입력란에 함께 넣지도 마세요. Android 시스템의 Wi-Fi 수동 프록시는 보통 HTTP 프록시이며 SOCKS5 프록시가 아닙니다. 시스템 프록시 설정을 따르지 않는 앱은 앱 자체에 프록시 설정이 있는지 확인하세요.
Android TV 및 기타 TV 시스템
TV의 ‘설정’ → ‘네트워크 및 인터넷’ → 현재 네트워크에서 ‘프록시 설정’을 찾아보세요. ‘수동’을 지원한다면 PC IP와 혼합 포트를 입력하면 됩니다. 메뉴는 시스템 버전에 따라 다릅니다. 일부 TV는 Wi-Fi를 다시 추가할 때만 고급 설정을 제공하고, 프록시 메뉴가 아예 없는 시스템도 있습니다.
설정 메뉴를 찾을 수 없더라도 기본 게이트웨이를 임의로 바꾸지 마세요. TV 앱 자체에서 HTTP 또는 SOCKS5 설정을 제공한다면 해당 기능을 사용할 수 있습니다. 앱과 시스템 모두 지원하지 않는다면 라우터나 게이트웨이 측의 별도 구성이 필요합니다. 이는 Allow LAN 옵션만 켜서 해결할 수 있는 문제가 아닙니다.
단계별 테스트: 연결 도달 여부부터 규칙과 노드까지 확인
특정 웹사이트가 열리지 않는다는 이유만으로 설정 실패라고 판단하지 마세요. 먼저 PC 자체의 프록시를 테스트하고, 다음으로 다른 기기에서 PC에 연결되는지 확인한 뒤 Clash 클라이언트의 ‘연결’과 ‘로그’를 살펴보세요. 아래 주소는 예시이므로 실제 PC의 LAN 주소로 바꿔 사용하세요.
curl로 HTTP와 SOCKS5 프록시 확인하기
PC에서 루프백 주소를 사용해 HTTP 프록시를 테스트하세요. Windows에서는 curl.exe를 명시적으로 사용해 구버전 PowerShell에서 같은 이름의 명령 별칭이 인수를 바꾸는 일을 방지합니다.
curl.exe -I --connect-timeout 5 --max-time 15 --proxy http://127.0.0.1:7890 https://example.com/
다음으로 curl을 사용할 수 있는 다른 LAN 기기에서 PC 주소를 대상으로 테스트하세요. macOS와 Linux에서는 curl을, Windows에서는 curl.exe를 사용하면 됩니다.
curl -I --connect-timeout 5 --max-time 15 --proxy http://192.168.1.20:7890 https://example.com/
curl -I --connect-timeout 5 --max-time 15 --proxy socks5h://192.168.1.20:7890 https://example.com/
socks5h는 대상 도메인의 조회를 프록시 측에 맡기며, 로컬에서 조회하는 socks5와 동작이 다릅니다. HTTP 테스트에서 CONNECT 성공이 표시되더라도 터널이 만들어졌다는 뜻일 뿐이므로 대상 사이트의 응답도 확인해야 합니다. 대상 사이트에서 403을 받았다면 로그를 함께 살펴 사이트가 접속을 거부한 것인지 프록시 연결 자체가 실패한 것인지 구분하세요.
| 증상 | 먼저 확인할 항목 | 다음 단계 |
|---|---|---|
| 로컬 루프백 주소에도 연결할 수 없음 | 코어 실행 여부, 포트 충돌 여부 | 시작 로그와 실제 리스닝 포트 확인 |
| PC에서는 되지만 휴대폰 요청 시간이 초과됨 | Allow LAN, 바인딩 주소, 방화벽, 기기 간 통신 차단 | 루프백 주소에만 바인딩되지 않았는지 확인하고 인바운드 규칙 점검 |
| 연결 거부 오류가 발생함 | 대상 IP 주소가 맞는지, 해당 포트가 리스닝 중인지 | PC 네트워크 어댑터 주소와 포트 재확인 |
| 클라이언트에 요청은 보이지만 접속에 실패함 | 적용된 규칙, 선택한 노드, 상위 DNS 조회 | ‘연결’에서 정책 경로를 확인한 뒤 오류 로그 확인 |
| 브라우저는 되지만 특정 앱은 안 됨 | 앱이 HTTP 프록시 설정을 따르는지 | 앱 내부 프록시 옵션 확인 및 UDP 사용 여부 점검 |
같은 Wi-Fi 이름으로 연결되어 있다고 해서 기기끼리 통신할 수 있는 것은 아닙니다. 게스트 네트워크, AP 격리, 서로 다른 VLAN은 기기 간 접속을 차단할 수 있습니다. 반대로 PC는 유선 LAN, 휴대폰은 Wi-Fi를 사용해도 그 자체로 문제가 되지는 않습니다. 두 기기가 속한 네트워크에서 통신을 허용하면 됩니다. Ping이 실패해도 ICMP가 방화벽에 차단되었을 수 있으므로 TCP 7890 연결까지 막혔다고 단정할 수 없습니다.
공유 범위와 인증, 사용 후 설정 복구
LAN 연결을 허용하면 다른 기기가 PC의 프록시 포트를 사용할 수 있습니다. 가정용 네트워크에서도 방화벽으로 접속 출처를 제한하세요. 라우터에서 7890을 공인 인터넷에 포트 포워딩하지 말고, 문제 해결을 위해 시스템 방화벽 전체를 끄지 마세요. PC에 다른 네트워크 인터페이스나 공인 IPv6 주소가 있다면 실제 리스닝 주소와 인바운드 규칙을 더욱 꼼꼼히 확인해야 합니다.
mihomo에서는 authentication으로 HTTP 및 SOCKS 프록시 인증을 설정할 수 있지만, 접속하는 기기에서도 사용자 이름과 비밀번호를 입력해 전송할 수 있어야 합니다. 일부 Android 시스템 Wi-Fi 프록시 화면에는 인증 정보를 입력하는 항목이 없고, TV의 지원 여부도 제각각이므로 사용 전에 기기별로 확인하세요. 인증은 암호화된 연결을 대신하지 않습니다. 일반 LAN을 통한 HTTP/SOCKS 연결을 VPN 터널처럼 취급해서는 안 됩니다.
- 공유 전: 신뢰할 수 있는 네트워크인지, PC IP가 고정되어 있는지, 포트가 정확한지, 방화벽이 필요한 출처만 허용하는지 확인하세요.
- 공유 중: 클라이언트의 ‘연결’ 화면에서 접속한 기기의 주소와 트래픽을 확인해 예상한 기기에서 요청이 들어오는지 살펴보세요. 공유 기기는 보통 PC의 규칙과 정책 그룹을 그대로 사용하며, 기기별로 별도의 구독이 자동 적용되지는 않습니다.
- 공유 후: 먼저 휴대폰과 TV의 수동 프록시 설정을 끈 다음 Allow LAN을 비활성화하세요. 임시로 만든 방화벽 규칙은 사용 중지하거나 삭제할 수 있습니다.
테스트 후 앞에서 만든 Windows 규칙을 삭제하려면 관리자 권한 PowerShell에서 아래 명령을 실행하세요. 지정한 이름으로 만든 규칙만 삭제됩니다.
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"
다음 순서대로 확인하세요. PC 자체 프록시 작동 → LAN 포트 연결 가능 여부 → 기기에서 프록시를 올바르게 사용 중인지 → 규칙과 노드 상태. 네 단계를 분리해 점검하면 전역 모드, TUN, 포트를 계속 바꾸는 것보다 원인을 쉽게 찾을 수 있습니다.