Clash 혼합 포트와 LAN 대역 프록시 공유 설정: allow-lan 구성과 기기 연결 실전 가이드

mixed-portallow-lan 두 필드의 역할을 정리하고, 같은 네트워크의 스마트폰·TV박스가 한 대의 서버 프록시를 공유하는 방법과 바인드 주소, 방화벽 포트 개방, 보안 주의사항까지 안내합니다.

왜 한 대의 프록시를 공유해야 할까

많은 사용자가 Linux 서버나 라우터에서 Clash를 먼저 실행해 본 뒤, 스마트폰·태블릿·TV박스·게임 콘솔마다 클라이언트를 새로 설치하는 게 번거롭고 구독 트래픽도 아깝다는 걸 깨닫습니다. 이런 기기들은 대개 시스템이 폐쇄적이거나 쓸 수 있는 프록시 클라이언트가 없고, YAML 설정 파일 임포트 자체를 지원하지 않는 경우도 많습니다. 더 실용적인 방법은 이미 정상 작동 중인 한 대의 기기를 같은 네트워크의 '프록시 출구'로 삼는 것입니다. 나머지 기기들은 시스템 네트워크 설정에 IP와 포트만 입력하면 동일한 노드와 규칙을 그대로 이어받아 쓸 수 있으니, 기기마다 구독을 따로 설정할 필요가 없습니다. 여기서 핵심은 두 가지 설정 필드뿐입니다. mixed-port는 어떤 포트를 열지 결정하고, allow-lan은 이 포트를 로컬호스트에만 열지 외부에도 열지를 결정합니다.

mixed-port 필드는 정확히 무슨 역할을 할까

초기 버전의 Clash는 port로 HTTP 프록시 포트를, socks-port로 SOCKS5 프록시 포트를 각각 열어야 했고 둘은 서로 연동되지 않았습니다. mixed-port는 이후 도입된 혼합 포트로, 하나의 포트에서 HTTP(S) 프록시 요청과 SOCKS5 프록시 요청을 동시에 받아 클라이언트가 보낸 프로토콜에 맞춰 자동으로 처리합니다. 별도로 구분할 필요가 없는 셋입니다. 현재 주로 쓰이는 Clash Meta(mihomo) 코어는 기본값으로 mixed-port를 사용하며, 설정 파일에 남아 있는 port/socks-port는 구형 툴체인과의 호환성을 위한 것입니다.

mixed-port: 7890
allow-lan: false
bind-address: "*"
mode: rule
log-level: info

위 내용은 가장 기본적인 골격입니다. 기본값에서 allow-lanfalse이며, Clash는 로컬 루프백 주소(127.0.0.1)만 리스닝합니다. 즉 포트가 열려 있어도 같은 네트워크의 다른 기기는 접속할 수 없다는 뜻인데, 이는 버그가 아니라 보안을 고려한 기본 설정입니다.

allow-lan과 bind-address: LAN 접근을 여는 스위치

allow-lan은 Clash가 로컬 이외의 주소에서 오는 연결 요청을 받을지 결정합니다. 값을 true로 바꾸면 Clash는 127.0.0.1에만 머물지 않고 LAN 네트워크 카드의 주소도 함께 리스닝합니다. bind-address는 여기서 한 단계 더 나아가 어떤 네트워크 인터페이스 주소를 리스닝할지 지정합니다. 기본값 "*"는 유선 랜, Wi-Fi, 가상 네트워크 카드를 포함한 기기의 모든 사용 가능한 네트워크 인터페이스를 리스닝한다는 의미입니다. 특정 인터페이스만 지정하고 싶다면 192.168.1.20처럼 구체적인 LAN IP를 입력하면 되는데, 이렇게 하면 해당 기기가 다른 네트워크(가상머신 내부망, VPN 인터페이스 등)에 연결되어 있어도 프록시 포트는 지정한 인터페이스에만 노출됩니다.

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

이 두 줄을 수정하고 저장한 뒤에는 Clash 코어를 재시작하거나 클라이언트에서 설정을 다시 불러와야 변경 사항이 적용됩니다. 데스크톱 클라이언트는 대개 설정 상세 화면에 'LAN 연결 허용' 스위치가 따로 있는데, 이를 켜는 것은 allow-lantrue로 설정하는 것과 동일하며 내부적으로는 여전히 같은 YAML 파일에 기록됩니다.

LAN 기기 연결 실전 가이드

먼저 Clash가 실행 중인 기기의 실제 LAN 주소를 확인합니다. 127.0.0.1이나 공인 IP가 아닙니다.

ip addr show | grep "inet "
# 또는
hostname -I

출력된 LAN 주소가 192.168.1.20, 리스닝 포트가 7890이라고 가정하고, 이제 각 기기별로 연결을 설정해 봅니다.

스마트폰(Android/iOS)

  1. Clash가 실행 중인 기기와 같은 Wi-Fi에 연결합니다.
  2. 시스템 'Wi-Fi 설정' → 현재 네트워크 상세 정보 → 프록시 설정으로 들어가 '수동'을 선택합니다.
  3. 서버 주소에 192.168.1.20, 포트에 7890을 입력합니다.
  4. 저장 후 브라우저로 사이트에 접속해 프록시가 정상 작동하는지 확인합니다. 규칙 모드에서는 Clash 패널의 연결 로그로 확인하는 것도 유용합니다.

TV박스 / 스마트 TV

대부분의 TV 시스템 네트워크 설정에도 비슷한 수동 프록시 옵션이 있으며, 보통 '설정 → 네트워크 → 고급 설정 → 프록시' 경로에 있습니다. 일부 제조사 커스텀 시스템은 프록시 설정 항목을 제공하지 않는데, 이런 기기는 라우터에서 전체 트래픽을 우회시키거나 설정 파일 임포트를 지원하는 별도 클라이언트를 TV박스에 설치하는 방식으로 대응할 수 있습니다.

Linux / Windows / macOS 기기

데스크톱 시스템은 시스템 네트워크 설정의 프록시 항목에 LAN IP와 포트를 바로 입력하면 됩니다. 브라우저에서 프록시를 별도로 설정한 경우 주소를 동일하게 맞춰 두어야 시스템 프록시와 브라우저 프록시가 다른 포트를 가리켜 연결이 뒤엉키는 상황을 피할 수 있습니다.

방화벽 포트 개방과 연결 상태 점검

설정을 바꿔도 연결이 안 된다면 열에 아홉은 방화벽이 포트를 막고 있는 것이지 Clash 설정 자체의 문제가 아닙니다. 먼저 Clash가 실행 중인 기기에서 해당 포트를 열어 줍니다.

# ufw(Debian/Ubuntu 계열)
sudo ufw allow 7890/tcp

# firewalld(Fedora/RHEL 계열)
sudo firewall-cmd --add-port=7890/tcp --permanent
sudo firewall-cmd --reload

포트를 연 뒤 다른 기기에서 nctelnet으로 포트 접근 여부를 간단히 확인합니다.

nc -zv 192.168.1.20 7890

연결 성공 메시지가 뜬다면 네트워크 계층은 정상 통신 중이라는 뜻입니다. 이 상태에서도 스마트폰에서 인터넷이 안 된다면 프록시 모드(전역/규칙)와 노드 상태를 다시 확인하세요. 반대로 접속 시도가 타임아웃되면 방화벽 규칙이 적용되지 않았거나 bind-address가 잘못된 인터페이스에 바인딩된 경우가 많으니, 일단 bind-address"*"로 임시 변경해 범위 문제인지 배제해 보세요.

주의

라우터의 포트 포워딩 기능은 이 글의 내용과 무관합니다. LAN 공유를 위해 7890 포트를 공인 인터넷으로 포워딩하지 마세요. LAN 공유는 같은 내부 네트워크끼리만 통신하면 충분하며, 포트가 외부 인터넷에 노출되면 공인 IP를 아는 누구나 여러분의 프록시 출구에 접근을 시도할 수 있습니다.

보안 경계와 접근 제어 권장 사항

allow-lan을 켜면 같은 네트워크의 모든 기기가 기본적으로 이 포트에 접속할 수 있게 되며, 게스트 Wi-Fi 이용자, 무단 접속 기기, 심지어 침해당한 IoT 기기까지 포함됩니다. 네트워크 환경을 완전히 신뢰할 수 없다면 다음과 같은 안전장치를 추가로 적용하는 것을 권장합니다.

  • 설정 파일에 authentication 필드를 추가해 프록시 연결에 사용자 이름과 비밀번호를 지정하면, 인증되지 않은 연결은 거부됩니다.
  • bind-address를 포괄적인 "*" 대신 특정 인터페이스의 구체적인 IP로 정밀하게 바인딩해 노출 범위를 줄이세요.
  • 라우터 단계에서 신뢰할 수 있는 기기를 위한 독립 VLAN이나 게스트 네트워크 격리를 적용해, 게스트 네트워크의 기기가 프록시 포트를 탐색하지 못하도록 하세요.
  • 장기간 공유가 필요 없을 때는 계속 켜 두지 말고 사용이 끝나면 바로 allow-lanfalse로 되돌리세요.
mixed-port: 7890
allow-lan: true
bind-address: 192.168.1.20
authentication:
  - "labuser:a-strong-password"

authentication을 추가한 뒤에는 연결하는 기기의 시스템 프록시 설정에도 해당 사용자 이름과 비밀번호를 입력해야 하는 경우가 많습니다. 입력 위치는 시스템마다 다르며, 잘못 입력하면 조용히 실패하는 게 아니라 연결이 즉시 거부되니 연결이 안 될 때는 이 부분을 먼저 확인하세요.

자주 겪는 연결 문제 해결

LAN 프록시 공유가 실패하는 경우는 대체로 아래 몇 가지 패턴을 벗어나지 않으니 순서대로 점검해 보세요.

  • Wi-Fi는 연결되는데 프록시가 작동하지 않음: 시스템 프록시 설정의 서버 주소에 숫자를 잘못 입력했는지 확인하세요. LAN IP는 라우터 재시작 후 바뀔 수 있으므로 Clash가 실행 중인 기기에는 라우터에서 고정 IP나 DHCP 예약을 설정해 두는 것이 좋습니다.
  • 같은 네트워크인데 한 기기는 되고 다른 기기는 안 됨: 대부분 그 기기가 게스트 네트워크나 다른 대역의 Wi-Fi에 연결되어 있어 Clash가 실행 중인 기기와 같은 서브넷이 아닌 경우입니다. 이러면 당연히 포트에 접근할 수 없습니다.
  • 평소엔 잘 되다가 라우터 재시작 후 안 됨: 역시 IP 변경 때문이며, LAN 주소를 고정하면 한 번에 해결됩니다.
  • 설정을 바꿔도 반응이 없음: 변경한 내용이 Clash가 실제로 불러오는 설정 파일에 저장됐는지 확인하세요. 템플릿이나 백업 파일을 수정한 게 아닌지 점검하고, 저장 후에는 코어를 재시작하거나 클라이언트에서 설정을 다시 불러와야 적용됩니다.

이 항목들을 하나씩 점검하고 앞서 소개한 포트 확인 명령까지 함께 활용하면 LAN 프록시 공유의 연결 문제를 대부분 정확히 짚어낼 수 있습니다.

Clash 클라이언트 받기

LAN 공유를 고려하기 전에 먼저 한 대의 기기에서 Clash를 정상 작동시켜야 합니다. 다운로드 페이지에서 Linux, Windows, macOS, Android, iOS용 클라이언트를 모두 제공합니다.

다운로드 페이지로 이동 사용 가이드 보기
Clash 다운로드