OpenWrt TUN 투명 프록시란?
가정마다 스마트폰·노트북·TV·게임 콘솔·IoT 기기가 늘어나면, 기기마다 Clash 앱을 설치·설정하는 방식은 유지보수 부담이 큽니다. OpenWrt 라우터에 Clash(Mihomo) 코어를 올리고 TUN 투명 프록시를 켜면, LAN에 연결된 장치는 별도 프록시 설정 없이도 트래픽이 라우터의 규칙을 따릅니다.
PC용 시스템 프록시는 HTTP/HTTPS 위주이고, TV·콘솔은 프록시 설정 UI가 없거나 UDP를 놓치는 경우가 많습니다. TUN 모드는 가상 네트워크 인터페이스(utun/Mihomo)를 만들어 TCP·UDP를 코어로 넘기므로, 「브라우저만 되고 앱·게임은 안 된다」는 문제를 라우터 단에서 한 번에 줄일 수 있습니다.
하드웨어·펌웨어 사전 준비
OpenClash·Mihomo는 메모리와 플래시를 꽤 씁니다. 아래를 최소 기준으로 삼으세요.
| 항목 | 권장 사양 | 비고 |
|---|---|---|
| RAM | 512MB 이상 (256MB는 경량 구독만) | 노드·규칙이 많으면 OOM 위험 |
| 플래시 | 128MB 이상 여유 | GeoIP·GeoSite DB 저장 공간 |
| CPU | 듀얼 코어 880MHz+ | AES 가속(ARM/x86) 있으면 복호화 부하↓ |
| 펌웨어 | OpenWrt 22.03+ / 23.05+ | 커널 5.x, kmod-tun 필수 |
대표 호환 기기: x86 미니 PC(램 여유), Raspberry Pi 4, GL.iNet·FriendlyElec 일부 모델, Redmi AX6000 등 커뮤니티 포팅 기종. 공식 OpenWrt 지원 목록과 커뮤니티 빌드 문서를 먼저 확인하세요.
- 공장 펌웨어에서 OpenWrt로 플래시(기종별 가이드 준수).
- LuCI 또는 SSH로 접속,
opkg update로 패키지 목록 갱신. - 구독 URL(YAML)과 노드 프로토콜(Trojan, VLESS, Hysteria2 등)을 미리 준비.
- 선택: USB 저장소를
/etc/openclash등에 마운트해 플래시 수명 보호.
OpenClash 또는 Mihomo 설치
OpenWrt에서 가장 흔한 GUI는 OpenClash입니다. LuCI 메뉴로 구독·규칙·TUN을 관리할 수 있어 입문자에게 적합합니다. Mihomo 단독 패키지는 CLI·경량 배포에 유리하며, OpenClash 0.46+는 Mihomo 커널 선택을 지원합니다.
OpenClash 설치(LuCI)
- LuCI → 시스템 → 소프트웨어에서
luci-app-openclash검색·설치(또는 공식/서드파티 피드 추가). - 설치 후 LuCI 상단에 서비스 → OpenClash 메뉴가 생깁니다.
- 플러그인 설정 → 커널에서 Mihomo(Clash Meta) 커널을 다운로드합니다.
- 구독 설정에 YAML URL을 추가하고 「업데이트」로 노드를 가져옵니다.
- 「설정 파일」에서 생성된
config.yaml미리보기로 proxy-groups·rules가 정상인지 확인합니다.
# SSH에서 kmod-tun 확인 (없으면 설치)
opkg install kmod-tun
lsmod | grep tun
TUN 모드 및 DNS 설정
OpenClash에서 투명 프록시의 핵심은 실행 모드 → TUN(또는 「Mihomo TUN」)입니다. Redir-Host(TPROXY)는 레거시 호환용이며, UDP·게임·음성 앱까지 일관되게 처리하려면 TUN을 권장합니다.
- OpenClash → 플러그인 설정 → 실행 모드: TUN 선택.
- DNS 설정: 「DNS hijack」 또는 「53 포트 가로채기」 활성화.
- enhanced-mode:
fake-ip(기본·빠름) 또는redir-host(호환성) 선택. - IPv6: ISP가 IPv6를 쓰면 「IPv6 수신」·「IPv6 TUN」 옵션을 켜거나, 누수 방지를 위해 WAN IPv6를 끄는 전략 중 하나를 택합니다.
- 설정 저장 후 OpenClash 시작, 로그에 TUN 인터페이스 생성 메시지 확인.
Mihomo 설정 파일에서 직접 다룰 때의 TUN·DNS 예시는 다음과 같습니다.
tun:
enable: true
stack: system
auto-route: true
auto-detect-interface: true
strict-route: true
dns-hijack:
- any:53
dns:
enable: true
listen: 0.0.0.0:7874
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
fallback-filter:
geoip: true
geoip-code: KR
OpenWrt DHCP/DNS(/etc/config/dhcp)에서 LAN 클라이언트의 DNS를 라우터 자체(예: 192.168.1.1)로 지정해야 hijack이 적용됩니다. 「DHCP 옵션 6」이 OpenClash DNS 리스너를 가리키는지 확인하세요.
분류 규칙과 정책 그룹
「전역 프록시」만 켜면 국내 CDN·은행·스트리밍까지 느려지거나 차단될 수 있습니다. GEOIP + DOMAIN 분류로 국내는 DIRECT, 해외·차단 도메인만 프록시 그룹으로 보내는 것이 일반적입니다.
proxy-groups:
- name: "🚀 AUTO"
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies:
- "HongKong-01"
- "Japan-01"
- "Singapore-01"
- name: "🎯 DIRECT"
type: select
proxies:
- DIRECT
rules:
- GEOIP,KR,🎯 DIRECT
- GEOSITE,cn,🎯 DIRECT
- GEOSITE,geolocation-!cn,🚀 AUTO
- MATCH,🚀 AUTO
OpenClash는 「规则集(규칙集)」 UI로 Loyalsoldier 등 커뮤니티 GeoSite·GeoIP DB를 자동 갱신할 수 있습니다. 한국 사용자는 GEOIP,KR DIRECT 규칙을 상단에 두고, 해외 스트리밍·AI 서비스 도메인은 별도 그룹(예: 🎬 STREAM)으로 분리하면 트러블슈팅이 쉽습니다.
- LAN·RFC1918:
192.168.0.0/16,10.0.0.0/8→ DIRECT (NAS·프린터 접근 유지) - PT/다운로드: 대용량 트래픽은 DIRECT 또는 전용 저속 노드 그룹
- 게임 UDP: 게임 전용 url-test 그룹 + TUN — 자세한 내용은 게임 가속 TUN 가이드 참고
기기별 연결 및 검증
OpenClash가 「실행 중」이고 TUN이 올라온 뒤, LAN 기기에서 아래를 순서대로 확인하세요.
- 게이트웨이·DNS: Wi-Fi 상세 정보에서 IP 게이트웨이 = OpenWrt, DNS = 라우터 LAN IP.
- IP 확인: 브라우저에서 「what is my ip」 검색 — 기대한 프록시 egress 국가인지 확인.
- DNS 누수:
dnsleaktest.com등으로 ISP DNS 노출 여부 확인. - IPv6 누수: IPv6 테스트 사이트에서 WAN IPv6로 직통되지 않는지 확인(필요 시 WAN IPv6 비활성).
- UDP: 음성 채팅·온라인 게임·FaceTime 등 UDP 앱으로 실사용 테스트.
| 증상 | 가능한 원인 | 조치 |
|---|---|---|
| 일부 앱만 안 됨 | Private DNS / DoH / VPN 앱 | 기기 DNS 설정·앱 우회 해제 |
| 국내 사이트까지 느림 | GLOBAL 모드 또는 GEOIP 규칙 누락 | GEOIP,KR DIRECT 우선 배치 |
| 간헐적 끊김 | RAM 부족·url-test 빈번 전환 | 노드 수 축소·tolerance 상향·RAM 증설 |
| TV 앱 스토어 오류 | 지역 DNS·fake-ip 충돌 | 해당 도메인 redir-host 또는 DIRECT 규칙 추가 |
자주 묻는 질문
TUN과 Redir-Host 중 OpenWrt에서는 무엇을 써야 하나요?
신규 구축이라면 TUN을 권장합니다. UDP·strict-route·auto-detect-interface 조합이 LAN 전체 투명 프록시에 더 잘 맞습니다. Redir-Host는 구형 스크립트·특정 칩셋 호환용으로만 남겨 두세요.
라우터 성능이 부족하면 어떻게 하나요?
x86 미니 PC + OpenWrt/ImmortalWrt로 이전하거나, 「메인 AP + 경량 OpenWrt 게이트웨이」 이중 구조를 쓰세요. 구독 노드 수·규칙集 크기를 줄이고, AES-NI 또는 ARM crypto offload가 있는 CPU를 고르는 것도 효과적입니다.
Clash for Windows만 쓰던 사용자도 OpenWrt가 필요한가요?
PC만 쓴다면 데스크톱 클라이언트로 충분합니다. TV·콘솔·태블릿·게스트 기기까지 별도 앱 없이 같은 규칙을 공유하려면 OpenWrt TUN이 유리합니다. PC용 초기 설정은 Clash 전체 사용 가이드를 함께 보세요.
상용 「올인원 VPN 라우터」는 규칙·노드·프로토콜 커스터마이즈가 제한되고, Clash 생태계(YAML, Meta 기능, 커뮤니티 규칙集)와 호환되지 않는 경우가 많습니다. Clash(Mihomo) + OpenWrt 조합은 TUN 투명 프록시, GEOIP/DOMAIN 정밀 분류, url-test·fallback 정책, 다양한 프로토콜을 한 설정으로 LAN 전체에 적용할 수 있어, 「공유기 한 대로 전 가정 자동 우회」 시나리오에 맞춤 튜닝이 가능합니다. 오픈소스 커뮤니티의 OpenClash·ImmortalWrt 등도 지속적으로 Mihomo TUN을 지원합니다.