어떤 증상이면 “UDP·음성 × 프록시”를 의심할까요?
Clash나 mihomo 기반 클라이언트를 켠 상태에서만 온라인 멀티플레이가 자주 끊기거나, 디스코드 음성·게임 내 보이스 채팅에 지연이 몰리고 끊김이 반복된다면, TCP 웹 서핑과 달리 UDP 기반 세션이 프록시 경로와 맞지 않는 경우가 흔합니다. 웹사이트는 정상인데 음성만 끊기거나, 특정 게임만 매치메이킹이 길어지는 패턴도 같은 계열로 보면 됩니다.
이런 문제는 “노드 품질이 나쁘다”만으로 설명되지 않습니다. 시스템 프록시를 쓰는 앱과 TUN 모드로 전체 스택을 태우는 경우, 그리고 분류 규칙에서 게임·음성 관련 트래픽이 의도치 않게 프록시 그룹으로 들어가는 경우가 겹치면 증상이 커집니다. 먼저 “어떤 경로로 나가고 있는지”를 가늠한 뒤, DIRECT(직접 연결)로 빼야 할 대상을 정하는 순서가 안전합니다.
게임·음성에는 TUN이 항상 정답일까요?
시스템 프록시는 HTTP/HTTPS 위주로 시스템 설정을 따르는 앱에 잘 맞지만, 게임 실행 파일이나 음성 엔진이 시스템 프록시를 무시하고 직접 소켓을 열면 Clash 규칙 밖으로 나갈 수 있습니다. 반대로 TUN 모드는 가상 NIC 뒤에서 패킷을 가로채므로 “프록시를 모르는” 프로그램도 규칙 엔진에 올릴 수 있어, 겉보기에는 유리해 보입니다.
그러나 TUN은 모든 IP 트래픽에 가깝게 영향을 주기 때문에, 잘못된 GEOIP나 광범위한 MATCH 규칙이 앞서 있으면 UDP 음성까지 먼저 프록시로 실릴 수 있습니다. 그 결과 지연·패킷 손실이 늘고, 음성 코덱이 끊기는 식입니다. 실무에서는 (1) 시스템 프록시만으로 증상이 사라지는지, (2) TUN을 켰을 때만 악화되는지를 비교해 보고, (3) TUN을 쓸 경우 게임·RTC(실시간 통신)용 호스트를 규칙 상단에서 DIRECT로 고정하는 흐름이 많습니다. TUN의 원리·YAML 예시는 TUN 모드 가이드와 함께 읽으면 맥락이 잡힙니다.
단계별 점검 순서(요약 체크리스트)
- 증상 범위 확인: 웹만 문제인지, 게임·음성만 문제인지 나눕니다.
- 모드 비교: 시스템 프록시만 / TUN만 / 둘 다 끄고 비교합니다.
- DNS·fake-ip: 도메인이 가짜 IP로 잡혀 규칙이 어긋나지 않는지 봅니다.
- 규칙 순서: 게임 런처·음성·Anti-cheat 관련
DOMAIN·DOMAIN-SUFFIX를 상단에 둡니다. - UDP 지원: 사용 중인 아웃바운드 타입이 해당 트래픽의 UDP를 실제로 넘길 수 있는지 확인합니다.
- 충돌 제거: 다른 VPN·필터 드라이버·기업용 터널과 동시 사용을 피합니다.
아래에서는 각 단계를 조금 더 풀어서 설명합니다. 규칙 타입·전략 그룹의 일반적인 쓰임은 규칙 분류 심화 글에서 교차 확인할 수 있습니다.
DNS·fake-ip가 게임·음성에 주는 영향
TUN을 켠 구성에서는 DNS 가로채기와 fake-ip가 함께 쓰이는 경우가 많습니다. 이때 특정 도메인이 가짜 주소로 해석되면, 이후 IP-CIDR 규칙이 기대와 다르게 매칭되거나, 음성 서버가 실제 IP 기반으로 세션을 잡는 단계에서 엇갈릴 수 있습니다. 그래서 fake-ip-filter에 LAN·로컬 멀티캐스트·특정 게임 API 호스트를 넣는 패턴이 반복해서 등장합니다.
증상이 “접속은 되는데 음성만 불안정”이면, 우선 해당 앱이 사용하는 시그널링·STUN/TURN류 호스트가 DNS 단계에서 어떻게 해석되는지 점검해 보세요. 코어 로그(클라이언트가 제공하는 경우)에서 DNS 응답과 실제 연결 목적지가 어긋나는지 확인하면 원인을 좁히기 쉽습니다. 기능 개요는 문서 개요에서 함께 살펴볼 수 있습니다.
분류 규칙: 무엇을 DIRECT로 빼야 할까요?
공통 원칙은 “지연에 민감한 실시간 UDP”와 “국내 ISP에 가까울수록 빨라지는 P2P·음성”을 프록시 체인에서 빼는 것입니다. 구체 도메인은 타이틀·리전·패치 버전마다 달라지므로, 아래는 형태를 가리키는 예시일 뿐이며 실제 프로필에는 본인이 캡처한 호스트명을 반영해야 합니다.
- 게임 런처·패치 CDN: 대용량 다운로드가 불필요하게 해외 노드를 타면 느려질 수 있어, 공급자 정책에 맞게 국내/직접 경로를 택합니다.
- 보이스·소셜 클라이언트: 음성·RTC 관련 서브도메인은 지연에 민감하므로 상위 규칙에서 DIRECT 후보로 두는 경우가 많습니다.
- LAN·조대역 내 IP: 같은 공유기 안 PC와의 연결은
IP-CIDR로 로컬 대역을 DIRECT 처리합니다.
# Illustrative rule fragment — replace domains with your captures
rules:
- DOMAIN-SUFFIX,game-voice.example.com,DIRECT
- DOMAIN-SUFFIX,patch-cdn.example.net,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- GEOIP,CN,DIRECT
- MATCH,PROXY
MATCH가 맨 위에 있거나 지나치게 광범위한 GEOIP가 앞서 있으면, 세부 DIRECT 규칙이 도달하지 못합니다. 규칙은 위에서 아래로 평가되므로, 음성·게임용 예외는 반드시 앞쪽에 배치하세요. no-resolve를 붙일지 여부는 fake-ip 사용 여부와 짝을 맞춰야 하니, 변경 후에는 한 번씩 연결 테스트를 반복하는 편이 안전합니다.
UDP가 “잘못 탄” 징후와 아웃바운드 확인
모든 아웃바운드가 UDP를 동일하게 잘 전달하는 것은 아닙니다. 일부 프로토콜 스택은 TCP 위주로 최적화되어 있고, 음성·게임 UDP는 불필요한 이중 터널만 얹어 지연을 키우기도 합니다. 로그에서 해당 세션이 어느 프록시 그룹으로 분류되는지 확인하고, 테스트용으로 그 그룹을 DIRECT나 저지연 노드로 바꿔 비교해 보세요.
또 한 가지, 게임 안티치트·커널 드라이버가 가상 어댑터나 재작성된 경로를 불신하면 연결 자체가 불안정해질 수 있습니다. 이때는 TUN 대신 시스템 프록시 + 예외 프로세스(클라이언트가 지원할 때)나, 게임 실행 시에만 Clash를 끄는 등 운영 측면의 분리가 현실적인 해결책이 되기도 합니다. 회사 PC·교육망에서는 정책을 위반하지 않는 범위에서만 조정해야 합니다.
디스코드·게임 음성을 둘러싼 실무 팁
음성 클라이언트는 브라우저 탭과 데스크톱 앱이 서로 다른 경로를 탈 수 있습니다. 브라우저는 시스템 프록시를 따르는 반면, 네이티브 앱은 직접 연결을 고집하거나 그 반대일 수 있어, “한쪽만 끊김”이 자주 발생합니다. TUN을 켠 상태라면 두 경로 모두 규칙 표에 올라오므로, 앱별로 DIRECT를 줄지 아니면 특정 서브도메인만 DIRECT할지 선택해야 합니다.
가능하면 클라이언트 설정에서 UDP 대체(대체 경로)·오디오 서브시스템 옵션을 확인하고, 동시에 라우터나 Windows 방화벽에서 UPnP·포트 포워딩 요구사항이 막혀 있지 않은지도 봅니다. Clash는 방화벽을 대신 열어 주지 않으므로, NAT 타입 메시지가 뜨는 게임이라면 네트워크 경로 전체를 의심하는 것이 맞습니다.
다른 VPN·보안 소프트와의 충돌
TUN 모드는 라우팅 테이블과 가상 NIC를 건드립니다. 다른 상용 VPN, 기업용 ZTNA, 일부 백신의 트래픽 필터가 동시에 켜져 있으면 순환 라우팅이나 드라이버 충돌로 UDP가 먼저 깨지는 경우가 많습니다. 문제가 심하면 한 번에 하나의 “전체 터널”류 도구만 켜고 재현해 보세요. 특히 게임 보안 모듈이 깊게 들어간 타이틀은 이런 충돌에 더 민감합니다.
정리: 낮은 지연이 필요하면 DIRECT를 먼저 설계하세요
온라인 게임과 음성 채팅은 TCP 웹과 달리 UDP·짧은 RTT에 민감합니다. Clash의 강점은 세밀한 분류 규칙으로 트래픽을 나누는 데 있으므로, “전부 프록시”보다 실시간 트래픽은 DIRECT·국내 경로로 고정하고, 정말 필요한 호스트만 전략 그룹으로 보내는 구성이 체감 안정성에서 유리한 경우가 많습니다. TUN을 쓰든 시스템 프록시를 쓰든, 규칙 순서·DNS·아웃바운드 UDP 지원이 세트로 맞는지 다시 한 번 점검해 보시길 권합니다. 같은 계열 도구 가운데에서도 Clash·mihomo는 규칙 표현력과 자료 측면에서 균형이 잘 잡혀 있어, 이런 미세 조정에 적합한 편입니다.
→ Clash 공식 클라이언트 무료 다운로드 — 최신 빌드에서 TUN·규칙·구독을 한 화면에서 다뤄 보면, 문서만 읽을 때보다 훨씬 빠르게 본인 환경에 맞는 DIRECT/프록시 경계를 찾을 수 있습니다.