TUN 모드
TUN(네트워크 터널) 모드는 커널 레벨에서 가상 네트워크 어댑터를 생성하고 드라이버 계층에서 모든 TCP/UDP 트래픽을 포착하여 진정한 글로벌 투명 프록시를 제공합니다. 앱 측에서 프록시 지원하지 않아도 사용할 수 있습니다.
- 게임 클라이언트(Steam, Epic, UPlay)가 시스템 프록시를 무시하고 높은 지연 및 연결 실패가 발생합니다.
git clone、npm install、pip install같은 CLI 도구에서 프록시를 사용하고 싶습니다.- Electron 앱(VS Code, Discord)이 내부 통신으로 시스템 프록시를 우회합니다.
- UDP 트래픽(음성 통화, DNS-over-UDP, 게임 UDP)도 투명하게 프록시하고 싶습니다.
TUN 모드 활성화 절차
TUN 설정 예
# TUN mode configuration
tun:
enable: true
stack: mixed # mixed = gVisor(UDP) + system(TCP), best compatibility
auto-route: true # auto-add routing rules for TUN interface
auto-redirect: true # auto-redirect TCP connections (Linux)
auto-detect-interface: true
dns-hijack:
- any:53 # intercept all DNS queries to prevent leaks
strict-route: true # stricter routing, prevents traffic bypass
mixed 호환성이 가장 높습니다 (TCP는 시스템, UDP는 gVisor), 순수한 system 고성능이지만 UDP 호환이 약하고,gvisor 는 UDP 대응이 가장 넓은 대신 CPU 부하가 약간 높습니다.
GEOIP,CN,DIRECT 등의 직결 규칙을 반드시 포함하십시오.
YAML 규칙 설정
Clash는 구성 파일에서 rules 로 통신 대상을 제어합니다. 국내는 DIRECT, 해외는 PROXY, 광고 도메인은 차단 등의 분기가 가능합니다. 규칙은 위에서 순서대로 평가되며 첫 번째 일치하는 규칙이 적용됩니다.
규칙 유형 빠른 참조
| 규칙 유형 | 매치 조건 | 예 |
|---|---|---|
DOMAIN |
완전 일치 도메인 | DOMAIN,google.com,PROXY |
DOMAIN-SUFFIX |
도메인 접미사(하위 도메인 포함) | DOMAIN-SUFFIX,github.com,PROXY |
DOMAIN-KEYWORD |
키워드가 포함된 도메인 | DOMAIN-KEYWORD,google,PROXY |
IP-CIDR |
IP 주소 범위 | IP-CIDR,192.168.0.0/16,DIRECT |
GEOIP |
IP 지리 정보(국가/지역) | GEOIP,CN,DIRECT |
RULE-SET |
외부 규칙 세트 파일 | RULE-SET,reject,REJECT |
MATCH |
최종 캐치 올(후미 필수) | MATCH,PROXY |
완전한 라우팅 구성 예
# proxy groups
proxy-groups:
- name: PROXY
type: select
proxies:
- Auto-Speed-Test
- HK-01
- US-01
- name: Auto-Speed-Test
type: url-test
url: https://www.gstatic.com/generate_204
interval: 300
proxies:
- HK-01
- US-01
# rule-sets from community-maintained lists
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
# rules — matched top to bottom, first match wins
rules:
- RULE-SET,reject,REJECT # block ads/trackers
- RULE-SET,direct,DIRECT # CN domains → direct
- RULE-SET,proxy,PROXY # known proxy domains
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY # everything else → proxy
DNS 오염 대책 설정
DNS 오염이 발생하면 해외 도메인이 잘못된 IP로 해결되어 연결 실패 및 트래픽 도용의 원인이 됩니다. Clash의 DNS 모듈은 DoH/DoT 암호화에 대응하고 국내외 도메인을 별도의 DNS로 해결함으로써 속도와 안전성을 양립할 수 있습니다.
UDP 53의 평문 통신은 변조되기 쉽고, 해외 도메인이 블록 IP나 오IP로 유도될 우려가 있습니다.
DNS-over-HTTPS 또는 DNS-over-TLS는 쿼리를 TLS로 보호합니다. 변조 및 오염의 위험을 크게 낮출 수 있습니다.
권장 DNS 설정(국내외에서 분리해결)
dns:
enable: true
ipv6: false
listen: 0.0.0.0:53
enhanced-mode: fake-ip # fake-ip prevents DNS leaks, recommended
fake-ip-range: 198.18.0.1/16
# Nameservers for domains NOT matched by nameserver-policy
nameserver:
- https://dns.google/dns-query # Google DoH
- https://cloudflare-dns.com/dns-query # Cloudflare DoH
- tls://1.1.1.1:853 # Cloudflare DoT
# Fallback: used when nameserver returns potentially polluted result
fallback:
- https://dns.google/dns-query
- https://doh.pub/dns-query # Tencent DoH (fast in CN)
# Fallback filter: if GEOIP is CN → use nameserver; else use fallback
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
# Policy: route specific domains to specific servers
nameserver-policy:
"geosite:cn":
- https://doh.pub/dns-query # fast domestic resolver for CN domains
- 114.114.114.114
"geosite:geolocation-!cn":
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
각 도메인에 가상 IP를 할당하고 연결 시 실제 IP를 해결하는 방식입니다. DNS 누출을 방지하기 쉽고, 해결 속도도 빠릅니다.
연결하기 전에 실제 IP를 얻는 방식으로 실제 IP가 필요한 앱과 호환되는 반면 DNS 누출 위험은 약간 남아 있습니다.
구독 관리 및 자동 업데이트
구독 URL은 프록시 서비스가 배포하는 노드 정보가 포함된 YAML 링크입니다.proxy-providers 을 사용하면 여러 구독을 구성 파일에서 직접 찾아보고 업데이트 간격도 자동화할 수 있습니다.
방법 1: 클라이언트에 구독 URL을 직접 가져오기
https:// 그리고 시작하면 YAML이 반환됩니다.
방법 2: proxy-providers(여러 구독 통합)
여러 공급자를 사용하는 고급 사용자나 구독과 맞춤 규칙을 분리하려는 경우에 적합합니다.
# Reference multiple subscription sources
proxy-providers:
AirportA:
type: http
url: "https://your-airport-a.com/clash/subscribe?token=xxx"
interval: 86400 # refresh every 24 hours
path: ./providers/airport_a.yaml
health-check:
enable: true
interval: 600
url: https://www.gstatic.com/generate_204
AirportB:
type: http
url: "https://your-airport-b.com/clash/subscribe?token=yyy"
interval: 86400
path: ./providers/airport_b.yaml
health-check:
enable: true
interval: 600
url: https://www.gstatic.com/generate_204
# Use providers in proxy groups
proxy-groups:
- name: PROXY
type: select
use:
- AirportA # include all nodes from AirportA
- AirportB # include all nodes from AirportB
- name: Auto-Best
type: url-test
use:
- AirportA
- AirportB
url: https://www.gstatic.com/generate_204
interval: 300
흔한 구독 문제
캡처 후 "노드 없음"또는 비어 있음
구독 갱신 시 네트워크 오류 발생
로컬 YAML과 온라인 구독을 함께 사용하고 싶습니다.
proxy-providers 에서 참조하고 로컬 노드는 proxies 에 수동으로 추가합니다.proxy-groups 에서 use(provider)와 proxies(수동)을 병기하면 통합 운용할 수 있습니다.
지연 테스트 및 최적화
Clash의 프록시 그룹은 자동 라우팅을 지원합니다.url-test 최소 지연 노드를 자동 선택,fallback 장애시 자동 전환,load-balance 는 여러 노드에 분산하여 처리합니다.
url-test
가장 흔한
테스트 URL에 정기적으로 액세스하여 가장 지연이 낮은 노드로 자동 전환합니다. 게임이나 스트리밍 등 지연에 민감한 용도에 최적입니다.
fallback
통상은 선두 노드를 사용해, 이용 불가시에 다음 노드로 전환합니다. 우선 노드를 고정하면서 중복하고 싶은 경우에 적합합니다.
load-balance
여러 노드에 트래픽을 분산시켜 종합 대역폭을 향상시킵니다. 여러 다운로드를 동시에 실행하는 장면에 적합합니다.
지연 테스트용 프록시 그룹 설정 예
proxy-groups:
# Auto select lowest-latency node
- name: Auto-Best
type: url-test
url: https://www.gstatic.com/generate_204
interval: 300 # test every 5 minutes
tolerance: 50 # switch only if new node is 50ms faster (prevents thrashing)
lazy: true # only test when traffic is present
proxies:
- HK-01
- HK-02
- US-01
- SG-01
# Failover: use HK-01 first, switch if unavailable
- name: Failover
type: fallback
url: https://www.gstatic.com/generate_204
interval: 180
proxies:
- HK-01 # primary
- US-01 # backup 1
- SG-01 # backup 2
# Load balance across multiple nodes
- name: LoadBalance
type: load-balance
strategy: consistent-hashing # same domain always uses same node
url: https://www.gstatic.com/generate_204
interval: 300
proxies:
- HK-01
- US-01
- SG-01
# Manual selection group (top-level entry point)
- name: PROXY
type: select
proxies:
- Auto-Best
- Failover
- LoadBalance
- HK-01
- US-01
https://www.gstatic.com/generate_204(Google 204) 또는 https://cp.cloudflare.com/generate_204(Cloudflare 204)를 추천합니다. 응답이 빠르고 안정적이며 내용의 영향을 받기 어려운 URL입니다.