Clash 혼합 포트와 LAN 연결 허용 설정 가이드: 같은 네트워크의 기기에서 프록시 함께 사용하기

mixed-port와 allow-lan의 역할부터 휴대폰·태블릿·TV의 PC LAN 주소 설정, 방화벽 허용까지 한 번에 알아봅니다.

1. 사용 사례: LAN 기기에서 PC의 프록시 포트에 연결하기

휴대폰, 태블릿, TV에 프록시 클라이언트를 설치하기 어렵다면 같은 LAN에 연결된 PC를 HTTP 프록시로 사용할 수 있습니다. PC에서 Clash 또는 mihomo 코어를 사용하는 클라이언트를 실행한 뒤, 다른 기기의 Wi-Fi 설정에 PC 주소와 혼합 포트를 입력하면 됩니다. 트래픽이 PC에 도착한 후에는 PC에서 실행 중인 설정, 규칙, 정책 그룹에 따라 직접 연결할지 프록시를 사용할지가 결정됩니다.

이 설정으로 PC가 자동으로 라우터가 되는 것은 아닙니다. ‘LAN 연결 허용’을 켜면 다른 기기에서 프록시 리스닝 포트에 접속할 수 있을 뿐, 휴대폰의 게이트웨이가 바뀌거나 모든 앱이 자동으로 프록시를 사용하는 것은 아닙니다. 기기 전체의 트래픽을 처리하거나 UDP를 전달해야 하는 경우, 또는 시스템 프록시를 따르지 않는 앱을 사용할 경우에는 이 옵션만 반복해서 켜고 끄지 말고 기기용 클라이언트, 게이트웨이 구성 또는 TUN 사용을 검토하세요.

  • 적합한 용도: 가정용 네트워크에서 휴대폰 브라우저와 태블릿으로 웹을 이용하거나, 수동 HTTP 프록시를 지원하는 TV 앱을 사용하는 경우
  • 필수 조건: PC와 대상 기기 간 통신이 가능해야 하며, PC가 켜져 있고 프록시 코어가 정상 실행 중이어야 합니다.
  • 그대로 적용하기 어려운 환경: 호텔이나 게스트 Wi-Fi, 기기 간 통신이 차단된 공용 네트워크, 게임 트래픽 전체를 한곳으로 전달해야 하는 경우

2. 설정 항목 구분: mixed-port, allow-lan, bind-address

설정 항목기능이 문서의 예시
mixed-port하나의 포트에서 HTTP와 SOCKS 프록시 요청을 모두 받습니다7890
allow-lanLAN 기기에서 프록시 리스닝 포트에 연결할 수 있도록 허용합니다true
bind-addressLAN 연결을 허용할 때 리스닝 주소를 지정합니다192.168.1.10
mode규칙 모드, 전역 모드 또는 직접 연결 방식으로 트래픽을 처리합니다rule

mixed-port의 ‘혼합’은 프록시 프로토콜을 받는 포트라는 뜻이지, 여러 노드의 회선을 합친다는 의미가 아닙니다. 휴대폰 Wi-Fi 설정에서 HTTP 프록시를 지정할 때도 이 포트를 사용하면 됩니다. HTTPS 웹사이트는 보통 HTTP CONNECT로 터널을 연결하므로 별도의 ‘HTTPS 포트’를 지정할 필요가 없습니다.

allow-lan: true를 설정했다면 리스닝 주소도 함께 확인해야 합니다. 로컬 기기에서만 접속할 수 있는 127.0.0.1은 휴대폰의 연결 주소로 사용할 수 없습니다. 휴대폰에서 127.0.0.1은 휴대폰 자신을 가리킵니다. bind-address: "*"는 일반적으로 모든 인터페이스에서 연결을 받도록 설정하지만, 노출 범위가 더 넓어집니다. 가정용 네트워크에서만 공유하려면 PC의 현재 LAN IPv4 주소에 바인딩하고 방화벽으로 접속 출처를 제한하세요.

관리 인터페이스인 external-controller와 혼합 포트는 서로 다른 기능입니다. 휴대폰에서 프록시를 사용할 때 컨트롤러에 연결할 필요는 없으며, 관리 포트를 네트워크 전체에 공개해서도 안 됩니다. Wi-Fi의 프록시 포트 입력란에 대시보드 주소나 일반적으로 사용하는 관리 포트 9090을 입력하지 마세요.

3. PC 설정: 주소 확인 후 리스닝 포트 열기

1. 현재 사용 중인 LAN IPv4 주소 찾기

Windows에서는 터미널을 열고 ipconfig를 실행한 다음, 현재 연결된 ‘무선 LAN 어댑터 WLAN’ 또는 이더넷 어댑터를 확인하세요. IPv4 주소, 서브넷 마스크, 기본 게이트웨이를 기록하고 연결되지 않은 네트워크 어댑터, 가상 머신 어댑터, TUN 가상 어댑터는 제외합니다. macOS에서는 ‘시스템 설정’ → ‘네트워크’ → 현재 연결 → ‘세부사항’ → ‘TCP/IP’에서 확인할 수 있습니다.

예를 들어 PC 주소가 192.168.1.10이고 휴대폰 주소가 192.168.1.25이며 양쪽의 서브넷 마스크가 255.255.255.0이라면 일반적으로 같은 서브넷에 속합니다. 다만 라우터의 게스트 네트워크 격리 설정으로 연결이 차단될 수 있습니다. PC는 유선, 휴대폰은 Wi-Fi로 연결해도 공유할 수 있습니다. 두 기기가 같은 무선 주파수 대역을 사용하는지가 아니라 라우터에서 서로 통신할 수 있는지가 중요합니다.

2. 혼합 포트와 LAN 연결 허용 설정

클라이언트 설정에서 ‘혼합 포트’ 또는 ‘Mixed Port’를 찾아 현재 포트 번호를 기록한 다음, ‘LAN 연결 허용’ 또는 ‘Allow LAN’을 켭니다. 클라이언트마다 메뉴 이름은 다를 수 있으며, 코어 설정이나 오버라이드 설정에 해당 옵션이 있는 경우도 있습니다. 구독 파일에 표시된 값만 확인하지 말고 실제 실행 설정과 리스닝 상태를 기준으로 판단하세요.

아래는 기존 설정의 최상위 항목에 합쳐 사용할 수 있는 네트워크 설정 예시이며, 완전한 구독 파일이 아닙니다. 기존 proxies, proxy-groups, rules는 유지하세요. 이 예시로 파일 전체를 덮어쓰거나 같은 이름의 최상위 항목을 중복으로 선언하지 마세요.

mixed-port: 7890
allow-lan: true
bind-address: "192.168.1.10"
mode: rule

설정을 저장하고 적용하세요. 클라이언트에서 코어를 다시 시작해야 한다고 표시되면 재시작합니다. GUI 클라이언트가 실행 설정을 생성하는 경우에는 영구 오버라이드 기능을 사용해 구독을 업데이트할 때 변경 사항이 사라지지 않도록 하세요. 특정 주소에 바인딩한 뒤 PC가 다른 네트워크에 연결되거나 DHCP 주소가 바뀌면 리스닝에 실패할 수 있으므로 설정을 함께 변경해야 합니다.

3. 포트가 실제로 리스닝 중인지 확인

Windows PowerShell에서 다음 명령을 실행하세요. LocalPort가 7890이고 LocalAddress가 지정한 LAN 주소 또는 해당 주소를 포함하는 리스닝 주소로 표시되어야 합니다. 127.0.0.1만 표시된다면 LAN 기기에서는 여전히 연결할 수 없습니다.

Get-NetTCPConnection -State Listen -LocalPort 7890 |
  Select-Object LocalAddress, LocalPort, OwningProcess

결과가 없으면 설정 적용 실패, 포트 충돌 또는 코어가 실행되지 않는 문제부터 확인하세요. 다른 프로그램이 해당 포트를 사용 중일 수도 있으므로 포트 번호만 보고 Clash가 실행 중이라고 판단할 수 없습니다. LAN 주소에 바인딩한 상태에서 PC의 시스템 프록시가 여전히 127.0.0.1:7890을 가리킨다면 호환성도 확인하세요. 루프백과 LAN 연결을 모두 받아야 한다면 모든 인터페이스에서 리스닝하도록 설정하고 방화벽에서 접속 출처를 엄격히 제한할 수 있습니다.

4. 방화벽 허용: 포트와 주소, 신뢰할 수 있는 네트워크만 지정

리스닝에 성공해도 다른 기기에서 연결할 수 있다는 뜻은 아닙니다. PC 방화벽이 인바운드 연결을 차단할 수 있습니다. 가정용 네트워크는 신뢰할 수 있는 개인 네트워크로 설정할 수 있지만, 프록시를 공유하려고 공용 Wi-Fi를 함부로 개인 네트워크로 바꾸거나 PC 방화벽 전체를 끄지는 마세요.

Windows: 로컬 서브넷만 허용하는 TCP 인바운드 규칙 추가

현재 네트워크가 개인 네트워크로 설정되어 있는지 확인한 다음, 관리자 권한으로 PowerShell을 실행하세요. 아래 규칙은 192.168.1.0/24에서 이 PC의 192.168.1.10에 있는 TCP 7890 포트로 접속하는 것만 허용합니다. 이 문서의 HTTP 프록시 테스트에 적용할 수 있습니다.

New-NetFirewallRule `
  -DisplayName "Clash LAN TCP 7890" `
  -Direction Inbound `
  -Action Allow `
  -Protocol TCP `
  -LocalPort 7890 `
  -LocalAddress 192.168.1.10 `
  -RemoteAddress 192.168.1.0/24 `
  -Profile Private

공유를 중단할 때는 이 규칙을 삭제하세요.

Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

PC에 이미 적용 범위가 넓은 프로그램 허용 규칙이 있다면 기존 규칙으로 접속 범위가 넓어지지 않았는지도 확인하세요. 위의 제한된 규칙을 추가해도 다른 광범위한 허용 규칙이 자동으로 취소되지는 않습니다. TCP 연결을 허용했다고 해서 휴대폰 게임이나 다른 앱의 UDP 트래픽까지 지원되는 것은 아닙니다.

macOS와 Linux: 실제 프록시 제공 프로세스 확인

  • macOS: ‘시스템 설정’ → ‘네트워크’ → ‘방화벽’ → ‘옵션’에서 클라이언트 또는 코어 프로세스의 인바운드 연결 허용 여부를 확인하세요. ‘모든 들어오는 연결 차단’이 켜져 있다면 먼저 어떤 영향을 주는지 확인하고, 클라이언트 설정만 반복해서 켜고 끄지 마세요.
  • Linux: UFW를 사용 중이고 활성화되어 있다면 실제 서브넷에 한해 규칙을 추가하세요. 다른 방화벽 도구도 필요한 범위만 허용하는 원칙을 따르고, 내용을 파악하지 못한 규칙을 여러 개 겹쳐 설정하지 마세요.
sudo ufw allow proto tcp from 192.168.1.0/24 to 192.168.1.10 port 7890

5. 휴대폰·태블릿·TV에서 프록시 설정

iPhone 및 iPad: 현재 Wi-Fi에 HTTP 프록시 설정

  1. ‘설정’ → ‘Wi-Fi’로 이동한 다음, 연결된 네트워크 오른쪽의 정보 버튼을 탭합니다.
  2. ‘프록시 구성’을 찾아 ‘수동’을 선택합니다.
  3. ‘서버’에는 192.168.1.10, ‘포트’에는 7890을 입력합니다. 서버 입력란에는 http://를 붙이지 말고 포트 번호도 함께 입력하지 마세요.
  4. 이 문서의 기본 설정에서는 프록시 인증을 사용하지 않으므로 ‘인증’을 끄세요. 저장한 뒤 브라우저를 다시 열어 테스트합니다.

이 설정은 현재 Wi-Fi에만 적용되며 셀룰러 네트워크나 다른 Wi-Fi에는 자동으로 적용되지 않습니다. PC가 꺼지면 이 프록시 설정을 따르는 앱에서 네트워크에 연결하지 못할 수 있습니다. 공유가 끝나면 ‘프록시 구성’을 ‘끔’으로 되돌리세요.

Android: 연결된 네트워크의 프록시 옵션 수정

일반적인 경로는 ‘설정’ → ‘네트워크 및 인터넷’ → ‘인터넷’ → 현재 Wi-Fi → 수정 → ‘고급 옵션’ → ‘프록시’ → ‘수동’입니다. 제조사별 시스템에서는 ‘WLAN’ → 현재 네트워크 세부정보에 메뉴가 있을 수 있습니다. 호스트 이름에 192.168.1.10, 포트에 7890을 입력하세요. 별도의 요구 사항이 없다면 우회 목록은 기본값으로 유지합니다.

프록시를 설정하면서 IP 설정을 고정으로 바꾸지 마세요. IP 주소 할당 방식과 프록시 설정은 서로 다른 항목입니다. 게이트웨이나 DNS를 임의로 변경하면 문제가 더 생길 수 있습니다. Android 앱이 Wi-Fi 프록시를 따르는지는 앱의 네트워크 구현에 따라 다르므로 브라우저에서 접속된다고 해서 모든 앱이 같은 방식으로 연결되는 것은 아닙니다.

TV: 수동 HTTP 프록시 설정을 지원하는지 먼저 확인

일부 Android TV 및 Google TV 기기에서는 ‘설정’ → ‘네트워크 및 인터넷’ → 현재 네트워크 → ‘프록시 설정’에서 ‘수동’을 선택하고 같은 주소와 포트를 입력할 수 있습니다. 이 메뉴가 없거나 대상 앱이 시스템 프록시를 무시하면 해당 앱에는 이 방법을 바로 적용할 수 없습니다. PC 주소를 TV의 DNS 입력란에 넣지 마세요. 두 설정의 기능은 다릅니다.

6. 연결 확인: 포트, 요청, 규칙 순서로 점검

먼저 다른 PC에서 테스트하면 네트워크 연결 문제와 휴대폰 앱 호환성 문제를 구분하기 쉽습니다. Windows PowerShell의 포트 테스트는 TCP 연결 여부만 확인하며, 프록시 노드가 정상인지까지 확인하는 것은 아닙니다.

Test-NetConnection 192.168.1.10 -Port 7890

TcpTestSucceeded: True는 TCP 연결에 성공했다는 뜻입니다. 다음으로 프록시를 명시해 요청을 보내세요. Windows에서는 이전 버전 PowerShell의 동명 별칭이 인수를 잘못 해석하는 일을 피하도록 curl.exe를 사용합니다.

curl.exe --proxy http://192.168.1.10:7890 --connect-timeout 5 --max-time 15 -I https://example.com/

macOS 또는 Linux에서는 curl.exe를 curl로 바꾸면 됩니다. 대상 사이트의 응답 헤더가 반환되면 PC 클라이언트의 연결 기록을 확인해 대상 도메인, 일치한 규칙, 실제 연결 경로를 점검하세요. HTTP CONNECT 성공 메시지는 터널이 연결되었다는 뜻일 뿐이며, 이후 TLS 연결이나 대상 사이트의 응답을 확인하는 과정을 대신하지 않습니다.

증상우선 확인할 항목판단 기준
연결이 즉시 거부됨코어, 리스닝 주소, 포트 번호대개 해당 포트에서 리스닝하지 않거나 기기에서 연결을 거부한 상태입니다
기다린 뒤 연결 시간 초과방화벽, 게스트 네트워크 격리, PC 절전 모드요청이 차단되었거나 대상 기기에 연결할 수 없는 상태일 수 있습니다
HTTP 407 응답프록시 인증 설정포트에는 연결되었지만 프록시 인증에 실패했습니다
연결은 되지만 대상 사이트에 접속할 수 없음노드 상태, DNS, 규칙, 로그LAN 연결은 정상입니다. 다음으로 프록시 연결의 나머지 과정을 확인하세요
브라우저는 정상이나 다른 앱은 실패앱이 HTTP 프록시를 따르는지 여부이 문제만으로 추가 포트를 더 열어야 한다고 판단할 수는 없습니다

모든 요청이 직접 연결된다면 먼저 직접 연결 모드인지 확인한 뒤 규칙 순서와 정책 그룹 선택을 점검하세요. LAN 연결을 허용해도 규칙 모드가 자동으로 전역 프록시로 바뀌지는 않습니다. 도메인 조회도 요청 경로에 따라 판단해야 합니다. HTTP CONNECT를 사용하면 대상 도메인 처리를 프록시에 맡길 수 있지만, 앱이 별도로 로컬 DNS 조회를 요청할 수도 있습니다. 따라서 수동 프록시 설정만으로 모든 DNS 요청이 PC를 거친다고 볼 수는 없습니다.

7. 보안 범위와 장기 사용 시 점검 사항

가정용 내부 네트워크에서도 접속 범위를 제한해야 합니다. 모든 인터페이스에서 리스닝하면 PC의 다른 네트워크 어댑터에도 같은 포트가 노출될 수 있습니다. VPN이나 가상 네트워크에 연결한 뒤에는 접속 출처 제한을 다시 확인하세요. 이 구성에는 라우터의 외부 포트 포워딩이 필요하지 않습니다. 7890이나 관리 인터페이스를 인터넷에 노출하지 마세요.

  • PC 주소 고정: PC가 다시 연결될 때 주소가 바뀌어 휴대폰이 이전 주소를 계속 사용하지 않도록 라우터에서 DHCP 주소 예약을 설정하는 것이 좋습니다.
  • 필요한 경우에만 인증 사용: Clash 계열 코어는 authentication을 사용해 HTTP/SOCKS 인증을 설정할 수 있지만, 기기마다 프록시 인증 지원 여부가 다릅니다. 인증을 켜면 사용자 정보도 각 기기에 입력하고 HTTP 407 등의 응답으로 동작을 확인하세요. 인증은 방화벽을 대신하지 않습니다.
  • 컨트롤러 접근 제한: 프록시 공유에 원격 관리 기능은 필요하지 않습니다. 관리 인터페이스는 필요한 기기에서만 접근할 수 있도록 유지하고 인증과 방화벽 규칙을 별도로 관리하세요.
  • 업데이트 후 재확인: 구독 업데이트, 클라이언트 업그레이드 또는 네트워크 변경 후 혼합 포트, LAN 연결 허용, 바인딩 주소, 실제 실행 설정이 일치하는지 확인하세요.
  • 사용을 중단할 때 설정 복원: 먼저 휴대폰이나 TV의 수동 프록시를 끈 다음 PC의 LAN 공유와 관련 방화벽 규칙을 비활성화하세요. 기기가 더 이상 존재하지 않는 프록시 주소에 계속 연결하는 일을 막을 수 있습니다.