mixed-port와 allow-lan은 각각 무엇을 제어하나요?
LAN 프록시 공유의 기본 구조는 간단합니다. PC에서 Clash, Clash Meta 또는 mihomo 클라이언트를 실행해 프록시 포트를 열고, 휴대폰·태블릿·TV에서 해당 PC의 LAN IPv4 주소를 프록시 서버로 입력합니다. 다른 기기에서 보낸 HTTP 또는 SOCKS 요청은 먼저 PC에 도착한 뒤, PC의 코어가 현재 규칙과 프록시 그룹에 따라 처리합니다.
mixed-port는 HTTP 프록시와 SOCKS5 프록시 연결을 하나의 포트에서 동시에 받는 혼합 프록시 포트입니다. 예를 들어 7890으로 설정하면 수동 HTTP 프록시를 지원하는 TV가 이 포트에 연결할 수 있고, SOCKS5를 지원하는 앱도 같은 포트를 사용할 수 있습니다. port와 socks-port를 각각 설정하는 방식보다 가정용 네트워크에서 간단히 공유하기에 적합합니다.
allow-lan은 로컬 PC가 아닌 기기에서 들어오는 LAN 연결을 코어가 허용할지 결정합니다. false로 설정하면 PC의 브라우저가 127.0.0.1:7890으로 프록시를 사용할 수 있어도, 휴대폰에서 PC의 192.168.1.20:7890으로 연결하는 것은 실패합니다. 공유하려면 수신 주소, 방화벽, Wi-Fi 네트워크 격리 상태를 함께 확인해야 하며, 스위치 하나만 바꿔서는 충분하지 않습니다.
| 설정 항목 | 예시 값 | 실제 역할 |
|---|---|---|
mixed-port |
7890 |
하나의 포트에서 HTTP 및 SOCKS5 프록시 연결 수신 |
allow-lan |
true |
LAN 기기가 이 PC의 프록시 수신 포트에 연결하도록 허용 |
bind-address |
'*' |
프록시 포트를 사용 가능한 네트워크 인터페이스에서 수신하도록 설정하고 루프백 주소에만 바인딩하지 않음 |
authentication |
lanuser:사용자 지정 비밀번호 |
프록시 포트에 연결하는 기기에 사용자 이름과 비밀번호를 요구 |
Clash, Clash Meta 또는 mihomo의 수신 포트 설정
YAML 설정 직접 편집
설정 덮어쓰기를 지원하는 클라이언트라면 현재 설정이나 전역 덮어쓰기 파일에 다음 내용을 추가할 수 있습니다. 그래픽 클라이언트마다 메뉴 이름은 조금씩 다르지만, 일반적인 경로는 「설정」→「환경설정」→「LAN 연결 허용」 또는 「프로필」→「덮어쓰기」→「전역 덮어쓰기」입니다. 변경 후에는 설정을 다시 불러오거나 코어를 재시작해야 하며, 그렇지 않으면 기존 수신 상태가 유지됩니다.
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
클라이언트가 이미 mixed-port를 자동으로 관리한다면 그래픽 인터페이스의 포트 설정에서 먼저 변경하세요. 기본 설정, 덮어쓰기 파일, 클라이언트 환경설정에 서로 다른 값이 기록되는 일을 피할 수 있습니다. 문제를 확인할 때는 구독 파일의 필드만 보지 말고 클라이언트 로그에 실제로 표시된 수신 포트를 기준으로 판단하세요.
공유 포트에 인증 추가
mihomo는 authentication을 사용해 HTTP 및 SOCKS 프록시에 인증을 설정할 수 있습니다. 가정 내에 방문객의 기기가 있거나 PC가 완전히 통제되지 않는 네트워크에 연결되어 있다면 별도의 인증 정보를 설정하세요. 사용자 이름과 비밀번호는 직접 생성해야 하며, 구독 사이트·이메일·시스템 계정의 비밀번호를 재사용해서는 안 됩니다.
mixed-port: 7890
allow-lan: true
bind-address: '*'
authentication:
- "lanuser:예시용 강력한 비밀번호로 직접 바꾸세요"
모든 TV 시스템의 수동 프록시 화면에서 사용자 이름과 비밀번호를 입력할 수 있는 것은 아닙니다. 단말이 프록시 인증을 지원하지 않는다면 방화벽의 인바운드 범위를 지정된 IP로 제한하세요. 예를 들어 휴대폰 192.168.1.35만 TCP 7890에 접근하도록 설정하거나, 라우터에서 신뢰할 수 있는 기기에 고정 DHCP 주소를 할당할 수 있습니다.
PC의 LAN 주소 확인 및 수신 상태 점검
Windows에서 IPv4 주소 확인
Windows 11에서 「설정」→「네트워크 및 인터넷」→「Wi-Fi」→「현재 네트워크 속성」을 열고 “IPv4 주소”를 찾습니다. PowerShell에서 ipconfig를 실행해도 됩니다. 현재 사용하는 무선 LAN 어댑터를 선택하고 WSL, Hyper-V, Tailscale 또는 가상 머신이 만든 주소를 잘못 사용하지 않도록 주의하세요.
ipconfig
무선 LAN 어댑터 WLAN:
IPv4 주소 . . . . . . . . . . . : 192.168.1.20
서브넷 마스크 . . . . . . . . . . . : 255.255.255.0
기본 게이트웨이 . . . . . . . . . . . : 192.168.1.1
이 예시에서 다른 기기에 입력할 프록시 서버는 192.168.1.20이고 포트는 7890입니다. 127.0.0.1은 항상 기기 자신을 의미하므로, 휴대폰에 입력하면 휴대폰의 7890 포트에 연결을 시도하게 됩니다.
macOS 및 Linux에서 주소 확인
- macOS: 「시스템 설정」→「네트워크」→「Wi-Fi」→「세부사항」→「TCP/IP」를 열고 IPv4 주소를 확인합니다.
- Linux 데스크톱: 「설정」→「네트워크」→「현재 연결」→「세부 정보」를 열거나
ip -4 address를 실행합니다. - 주소는 보통
192.168.0.0/16,10.0.0.0/8또는172.16.0.0/12사설 네트워크 대역에 속하지만, 현재 네트워크에서 실제로 할당된 값을 기준으로 해야 합니다.
주소를 확인한 뒤 포트가 수신 중인지 점검할 수 있습니다. Windows PowerShell에서는 Get-NetTCPConnection -LocalPort 7890, Linux에서는 ss -lntp | grep 7890, macOS에서는 lsof -nP -iTCP:7890 -sTCP:LISTEN을 사용합니다. 출력에 127.0.0.1:7890만 나타나면 로컬 PC에서만 수신 중이라는 뜻입니다. 0.0.0.0:7890 또는 PC의 LAN 주소가 나타나야 LAN 연결을 받을 수 있습니다.
Windows, macOS 및 Linux 방화벽에서 포트 허용
Windows Defender 방화벽
먼저 「설정」→「네트워크 및 인터넷」→「Wi-Fi」→「현재 네트워크」에서 네트워크 프로필을 “개인 네트워크”로 설정합니다. 이어서 「Windows 보안」→「방화벽 및 네트워크 보호」→「고급 설정」→「인바운드 규칙」→「새 규칙」을 열고 “포트”를 선택합니다. 프로토콜은 TCP, 특정 로컬 포트는 7890, 작업은 “연결 허용”으로 지정하고 프로필은 “개인”만 선택하세요.
관리자 권한 PowerShell에서 로컬 서브넷의 접근만 허용하는 규칙을 만들 수도 있습니다.
New-NetFirewallRule `
-DisplayName "Clash mixed-port LAN" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 7890 `
-RemoteAddress LocalSubnet `
-Profile Private
HTTP 프록시와 SOCKS5의 일반적인 연결은 TCP를 사용합니다. 클라이언트·앱·코어가 모두 SOCKS5 UDP 전달을 명시적으로 사용하는 경우에만 필요에 따라 UDP 7890을 추가로 허용하세요. 휴대폰 Wi-Fi 화면에서 설정한 HTTP 프록시는 우선 TCP에 의존하므로 “포트 테스트 실패”를 곧바로 UDP 문제로 단정하지 마세요.
macOS 및 Linux
macOS 방화벽은 앱 단위로 인바운드 연결을 관리합니다. 경로는 「시스템 설정」→「네트워크」→「방화벽」→「옵션」이며, 현재 Clash 클라이언트 또는 코어 프로세스가 인바운드 연결을 허용받았는지 확인하세요. 클라이언트 업데이트로 코어 파일 경로가 바뀌면 허용 기록을 다시 점검해야 합니다.
UFW를 사용하는 Linux 호스트에서는 현재 네트워크 대역으로 소스를 제한할 수 있습니다. LAN이 192.168.1.0/24라고 가정하면 다음과 같습니다.
sudo ufw allow from 192.168.1.0/24 to any port 7890 proto tcp
sudo ufw status numbered
휴대폰·태블릿·TV에서 프록시 입력하기
iPhone 및 iPad
- 「설정」→「Wi-Fi」로 이동한 뒤 현재 Wi-Fi 오른쪽의 정보 버튼을 탭합니다.
- 화면 아래로 스크롤해 「프록시 구성」을 열고 “수동”을 선택합니다.
- 서버에는 PC의 LAN 주소를 입력합니다. 예:
192.168.1.20. - 포트에는
7890을 입력합니다. 인증을 설정했다면 “인증”을 켜고 사용자 이름과 비밀번호를 입력하세요. - 저장한 뒤 브라우저를 다시 열고 Clash 클라이언트의 연결 목록에서 새 연결을 확인합니다.
이 설정은 현재 Wi-Fi에만 적용됩니다. 다른 무선 네트워크나 모바일 데이터로 전환하면 이 PC의 프록시를 계속 사용하지 않습니다. 일부 앱은 시스템 HTTP 프록시를 무시하며, UDP 기반 프로토콜도 Wi-Fi 수동 HTTP 프록시가 완전히 처리하지 못할 수 있습니다. 이는 단말 프록시 방식의 한계입니다.
Android 및 TV 기기
순정 Android의 일반적인 경로는 「설정」→「네트워크 및 인터넷」→「인터넷」→「현재 Wi-Fi」→「수정」→「고급 옵션」→「프록시」→“수동”입니다. 제조사에 따라 「WLAN」→「연결된 네트워크」→「프록시 설정」에 있을 수도 있습니다. 호스트 이름에는 PC 주소를, 프록시 포트에는 7890을 입력하고 우회 목록에는 LAN 도메인이나 내부 주소를 남겨둘 수 있습니다.
Android TV, Google TV 및 일부 TV 박스에서는 보통 「설정」→「네트워크 및 인터넷」→「현재 Wi-Fi」→「프록시 설정」에서 찾을 수 있습니다. 일부 TV는 HTTP 프록시만 제공하고 SOCKS5나 사용자 이름·비밀번호는 지원하지 않습니다. 이런 기기에서는 mixed-port의 HTTP 기능을 사용할 수 있지만, 앱이 시스템 프록시를 따르는지는 앱 자체에 달려 있습니다.
| 단말 방식 | 적합한 상황 | 제한 사항 |
|---|---|---|
| Wi-Fi 수동 HTTP 프록시 | 브라우저, 앱 스토어 및 시스템 프록시를 따르는 앱 | UDP 처리를 보장할 수 없고 시스템 프록시를 우회하는 앱도 있음 |
| 앱 내 SOCKS5 | SOCKS5를 별도로 입력할 수 있는 다운로드 도구 또는 플레이어 | 현재 앱에만 적용 |
| PC를 게이트웨이로 설정 | 프록시를 설정할 수 없고 더 많은 프로토콜을 전달해야 하는 단말 | IP 포워딩, 라우팅 및 NAT가 추가로 필요하며 allow-lan 활성화와는 다름 |
TUN 모드가 다른 기기와 자동으로 공유되지 않는 이유
TUN 모드는 Clash를 실행하는 PC에 가상 네트워크 인터페이스를 만들고 시스템 라우팅을 통해 PC 자체의 트래픽을 가로챕니다. 이는 “PC 앱이 시스템 프록시를 읽지 않는” 문제를 해결할 뿐, PC를 LAN의 기본 게이트웨이로 자동 설정하지는 않습니다. 휴대폰이 여전히 가정용 라우터를 기본 게이트웨이로 사용한다면 PC에서 TUN을 켜도 트래픽은 PC를 거치지 않습니다.
LAN 수동 프록시와 TUN은 함께 사용할 수 있습니다. PC 자체의 트래픽은 TUN으로 들어가고, 휴대폰은 192.168.1.20:7890에 연결합니다. 두 트래픽 모두 최종적으로 같은 mihomo 코어가 처리하지만 진입점은 다릅니다. 연결 화면에서 LAN 기기의 소스 주소는 보통 휴대폰이나 TV의 LAN IP로 표시되므로, 공유 요청이 실제로 코어에 도착했는지 판단할 수 있습니다.
프록시 설정을 지원하지 않는 게임기·TV 앱·IoT 기기가 PC를 통해 투명하게 통신하도록 하려면 PC를 게이트웨이로 구성하고 IPv4 포워딩을 활성화한 뒤 NAT, 정책 라우팅 및 DNS 포워딩을 설정해야 합니다. Windows 모바일 핫스팟, Linux nftables, 소프트 라우터의 바이패스 게이트웨이는 별도의 네트워크 구성입니다. allow-lan: true만 추가한다고 다른 기기의 기본 경로가 바뀌지는 않습니다.
연결 실패 시 단계별 점검 목록
1단계: 기기가 서로 통신 가능한 같은 네트워크에 있는지 확인
- PC와 휴대폰의 주소를 확인합니다. 예를 들어 PC는
192.168.1.20, 휴대폰은192.168.1.35이고 서브넷 마스크는 둘 다255.255.255.0이어야 합니다. - 라우터의 “AP 격리”, “클라이언트 격리” 또는 “게스트 네트워크 기기 격리”를 해제합니다. 게스트 Wi-Fi는 보통 주 네트워크의 기기에 접근하지 못하도록 차단합니다.
- PC가 유선 LAN, Wi-Fi 및 가상 네트워크 어댑터에 동시에 연결되어 있다면 휴대폰과 같은 네트워크 대역에 속한 물리 인터페이스의 주소를 사용하세요.
- DHCP가 주소를 다시 할당하면 휴대폰에 저장된 이전 프록시 주소가 더 이상 작동하지 않습니다. 라우터에서 PC의 DHCP 주소를 예약할 수 있습니다.
2단계: 코어가 올바른 인터페이스에서 수신 중인지 확인
- 구독 원본 파일만 보지 말고
allow-lan의 실행 중 상태를 확인하세요. - 실제 mixed-port가
7890인지 확인하고, 클라이언트가 이를7897이나7893같은 다른 포트로 자동 변경하지 않았는지 점검하세요. - 설정을 다시 불러온 뒤 로그를 확인해 포트가 다른 프로그램에서 사용 중이지 않은지 확인합니다.
- 수신 주소가 여전히
127.0.0.1이라면 클라이언트에 YAML 설정을 덮어쓰는 별도의 “바인딩 주소” 또는 “LAN 연결” 스위치가 있는지 확인하세요.
3단계: 방화벽 및 프록시 프로토콜 확인
- 프록시 인증을 잠시 비활성화해 비교 테스트를 진행하세요. 성공하면 인증을 다시 활성화하고 단말이 인증 정보 입력을 지원하는지 확인합니다.
- Windows 방화벽 규칙은 현재 네트워크 프로필과 일치해야 합니다. 규칙이 “개인”만 선택하도록 되어 있는데 현재 연결이 “공용”으로 인식되면 인바운드 연결은 계속 차단됩니다.
- 단말의 수동 프록시 유형을 HTTP로 선택해도 mixed-port에 연결할 수 있습니다. 컨트롤 포트
9090을 프록시 포트로 잘못 입력하지 마세요. - Clash 연결 목록을 확인하세요. 소스 IP가 전혀 보이지 않으면 문제는 보통 LAN 또는 방화벽에 있습니다. 연결은 보이지만 요청이 실패한다면 규칙, DNS, 노드 및 프록시 그룹을 다시 점검하세요.
4단계: 전체 실패인지 특정 앱만 실패인지 판단
브라우저에서는 웹페이지가 열리지만 특정 동영상 앱, 게임 또는 화면 전송 기능이 실패한다면 프록시 포트와 LAN 경로는 대체로 정상입니다. 이때는 allow-lan을 반복해서 수정하기보다 해당 앱이 QUIC, UDP, LAN 검색 프로토콜 또는 인증서 고정을 사용하는지 확인하세요. 수동 HTTP 프록시는 mDNS 브로드캐스트를 프록시하지 않으며, LAN 화면 전송에 필요한 기기 검색을 대신하지도 않습니다.
모든 웹사이트가 실패하지만 Clash 연결 목록에 요청이 표시된다면 적용된 규칙과 프록시 그룹을 확인하세요. 요청이 REJECT에 걸리거나, 노드를 사용할 수 없거나, 구독이 만료되었거나, 규칙 프로바이더 로딩에 실패해도 “프록시에 연결되었지만 페이지가 열리지 않는” 현상이 나타납니다. 로그 레벨을 일시적으로 info로 변경하고 대상 도메인, 적용된 규칙 및 출구 정책을 기록한 뒤 결과에 맞게 조치하세요.
안정적인 공유를 위한 설정 권장 사항
- Clash를 실행하는 PC에 DHCP 주소 예약을 설정하세요. 예를 들어
192.168.1.20을 고정 할당하면 라우터를 재시작한 뒤에도 단말의 프록시 주소가 바뀌지 않습니다. - 실제로 사용하는 mixed-port만 열고, 방화벽의 소스 범위를
LocalSubnet또는 명확한 기기 IP로 제한하세요. - PC가 절전 모드로 전환되지 않고 네트워크에 연결된 상태를 유지하도록 하세요. PC가 절전 모드에 들어가거나 Wi-Fi를 전환하거나 클라이언트가 종료되거나 코어가 재시작되면 공유 기기의 프록시 연결은 즉시 끊깁니다.
- 설정을 변경한 뒤 먼저 휴대폰 한 대로 확인하고, 이후 TV와 태블릿을 한 대씩 추가하세요. 여러 단말의 차이를 동시에 점검하는 일을 피할 수 있습니다.
- 연결 목록에서 소스 주소와 적용된 규칙을 확인하세요. 정상이라면 휴대폰이 요청을 보낸 후 몇 초 안에 해당 LAN IP, 대상 도메인 및 출구 정책이 표시됩니다.
관리하기 쉬운 가정용 공유 구성에는 보통 네 가지 정보만 명확하면 됩니다. PC의 LAN 주소, mixed-port 포트 번호, 접근을 허용할 기기 범위, 현재 방화벽 규칙입니다. 먼저 이 네 가지를 일치시킨 다음 앱이 시스템 프록시를 따르는지, UDP에 별도 구성이 필요한지 같은 상위 문제를 다루면 점검 경로가 짧아집니다.