느림의 종류부터 가늠하기

같은 「느리다」라도 증상은 여러 갈래입니다. 페이지가 하얀 화면에서 오래 멈춘 뒤 갑자기 뜨는 형태는 DNS나 첫 TLS 왕복 쪽을 의심하고, 이미 열린 탭에서만 끊긴다면 특정 호스트가 다른 규칙 줄에 먼저 걸려 엉뚱한 경로로 나가는 경우가 많습니다. 동영상이 끊기면 UDP나 QUIC 정책, 대역 자체는 충분한데 웹만 답답하면 HTTP/3(QUIC)이 직결이나 다른 노드로 새는지도 살펴봐야 합니다. 아래 열 가지는 이런 갈래를 한 줄씩 배제해 가며 원인을 좁히기 위한 실무 순서에 가깝게 배열했습니다.

어떤 항목도 불법 우회나 타인의 네트워크 침해를 돕기 위한 것이 아닙니다. 회사 정책과 서비스 약관, 거주 지역 법령을 지키는 범위에서 개인 학습·합법적 용도로만 적용하세요. 설정을 바꿀 때는 YAML 백업과 작은 단위의 변경이 롤백에 유리합니다. 전체 문서 흐름은 문서 허브와 함께 보면 용어가 더 빨리 정리됩니다.

1. DNS와 fake-ip 조합을 먼저 점검한다

Clash 계열에서 체감 지연이 커지는 대표 원인 중 하나가 DNS 해석 경로입니다. redir-hostfake-ip는 각각 규칙 매칭 타이밍과 호스트 표기 방식이 달라, 프로필 곳곳의 enhanced-mode나 스니핑 옵션과 맞물립니다. fake-ip를 켠 상태에서 IP 기반 규칙만 과하게 쓰면, 브라우저가 보여 주는 IP와 실제 왕복 경로가 어긋나 첫 바이트까지의 시간(TTFB)만 길어지는 패턴이 나올 수 있습니다.

해결책은 항상 「fake-ip 끄기」가 아니라, 지금 쓰는 모드에 맞는 규칙 타입과 순서를 맞추는 쪽입니다. 예를 들어 특정 스트리밍 도메인을 IP-CIDR로만 잡아 두었다면, fake-ip 환경에서는 호스트 기준 규칙을 병행하는 편이 안전합니다. 클라이언트 로그에서 DNS 단계에서 시간이 새는지, 아니면 프록시 핸드셰이크에서 새는지 구분해 보세요. TUN과 DNS를 같이 다룬 글은 TUN 모드 가이드에서 이어집니다.

2. URL-TEST의 URL·간격·허용오차를 현실에 맞춘다

자동으로 빠른 노드를 고르는 URL-TEST 그룹은 편하지만, 측정에 쓰는 URL이 본인이 주로 쓰는 트래픽과 무관하면 잘못된 우승자가 뽑힙니다. 글로벌 CDN 앞단에서만 빠르게 응답하는 URL을 쓰면, 실제로는 자주 쓰는 리전에서 느린 노드가 선택되기도 합니다. interval이 너무 길면 장애나 혼잡 전환이 늦게 반영되고, 너무 짧으면 측정 트래픽이 오히려 체감을 해칩니다.

tolerance는 작은 지연 차이로 노드가 도미노처럼 바뀌는 것을 막는 완충인데, 너무 크면 느린 후보에 오래 머무릅니다. 운영자가 제공한 기본값을 그대로 두기보다, 자신의 회선 지터를 보며 한두 단계만 조정해 보는 것이 좋습니다. 수동 SELECT 그룹으로 잠시 고정해 두고 체감이 달라지는지 비교하면, 문제가 자동 선택 쪽인지 즉시 갈립니다.

3. 규칙 순서로 인한 「가려진 줄」을 의심한다

규칙은 위에서 아래로 훑다가 처음 참이 된 한 줄에서 끝납니다. 그 위에 넓은 GEOIP나 거대한 RULE-SET이 있으면, 아래에 써 둔 예외 줄은 실행되지 않습니다. 그 결과 특정 사이트만 느리거나 반대로 직결로 나가야 할 트래픽이 프록시를 타며 왕복이 길어집니다.

느린 호스트 하나를 골라 브라우저 개발자 도구에서 실제 호스트명을 확인한 뒤, 로그의 rule hit와 대조하세요. 기대한 정책이 아니라면 그보다 위쪽 줄 중 무엇이 먼저 참이 됐는지가 핵심입니다. 규칙 세트를 쪼개 관리하는 방법은 Rule Providers 가이드를 참고하면, 순서 논리를 유지한 채 파일만 나눌 수 있습니다.

4. 시스템 프록시만으로는 부족한 앱에는 TUN을 검토한다

일부 앱과 터미널 도구는 OS의 시스템 프록시 설정을 따르지 않습니다. 이 경우 Clash가 아무리 정상이어도 해당 트래픽은 직결이나 다른 VPN 경로로 새어 나가 체감이 들쭉날쭉해집니다. TUN 모드는 가상 인터페이스 쪽으로 트래픽을 넘겨 이런 예외를 줄이는 데 유리하지만, 권한·DNS·스택 옵션을 함께 맞춰야 합니다.

TUN은 만능이 아니라 도달 범위를 넓히는 스위치에 가깝습니다. 켠 뒤 오히려 느려졌다면 DNS 루프나 이중 NAT 환경을 의심하고, 일단 끈 상태에서 시스템 프록시만으로 재현되는지 비교하세요. 터미널 환경 변수와의 관계는 macOS 터미널 프록시 가이드에서도 다루고 있습니다.

5. 구독·프로바이더 캐시를 갱신하고 죽은 노드를 걷어낸다

구독 URL이 오래된 스냅샷을 내려받고 있으면, 지연 표는 좋아 보여도 실제 라우팅은 이미 바뀐 경우가 있습니다. 클라이언트의 수동 새로고침으로 최신 리스트를 받은 뒤, 응답이 없는 이름은 그룹에서 제외하세요. 자동 건강 검사 기능이 있다면 로그와 함께 켜 두되, 검사 URL이 지나치게 무거우면 측정 자체가 부하가 됩니다.

노드 이름이 바뀌었는데 GUI 즐겨찾기가 예전 이름을 가리키면, 조용히 실패하거나 엉뚱한 대체로 떨어집니다. 이런 때는 YAML의 proxies 목록과 화면 선택 상태가 동기화됐는지 한 번에 확인하는 것이 빠릅니다.

6. 루프백·이중 프록시·보안 소프트웨어 간섭을 본다

다른 프록시 도구나 필터링 제품이 동시에 떠 있으면, 패킷이 한 홉 더 돌거나 루프에 가까워집니다. 브라우저 확장 프로그램이 자체 VPN을 켜 두었는데 Clash도 켜 두는 식의 이중 구조는 지연만 키우는 경우가 많습니다. 회사 단말에서는 보안 에이전트가 로컬 프록시를 강제하기도 하니, 허용 목록과 충돌 여부를 점검하세요.

로컬 개발 서버에 접속할 때 의도치 않게 프록시를 태우면 응답이 기괴하게 느려집니다. DIRECT 예외를 좁게 쌓아 두었는지, localhost와 사설 대역이 위쪽에 있는지 확인하는 것만으로도 체감이 달라집니다.

7. IPv6 경로가 예상과 다를 때는 일시적으로 끄고 비교한다

IPv6가 활성화돼 있으면 일부 앱은 AAAA 레코드를 우선 시도합니다. 회선이나 상대 서버에 따라 IPv6 경로가 느리거나 막혀 있으면 타임아웃 후 IPv4로 넘어가며 첫 화면이 늦어집니다. OS나 라우터 설정에서 IPv6를 잠시 끄고 같은 사이트를 열어 보는 간단한 비교만으로도 원인 분기가 됩니다.

장기적으로는 IPv6를 끈 채로 두기보다, 어디에서 병목인지 파악한 뒤 회선 쪽을 정리하는 편이 낫습니다. Clash 쪽에서는 해당 트래픽이 어떤 정책으로 나가는지 로그로 확인하세요.

8. UDP·QUIC·게임 트래픽의 정책을 명시적으로 맞춘다

HTTP/3와 일부 실시간 통신은 UDP를 씁니다. 프록시 노드나 프로필이 UDP를 제한하면, 브라우저는 느린 폴백 경로를 타거나 재전송 루프에 빠집니다. 게임이나 화상 회의가 끊긴다면 UDP가 의도한 그룹으로 나가는지를 먼저 확인하세요.

무조건 전부 프록시로 보내기보다, 지연에 민감한 앱은 직결이 나은지 서비스 약관과 보안 요구를 고려해 선택해야 합니다. 프로토콜별 특성을 더 깊게 비교하려면 프로토콜 비교 글을 참고하면 전송 방식의 차이를 잡기 쉽습니다.

9. Wi-Fi 혼잡·MTU·케이블 단편을 의심한다

Clash 설정이 완벽해도 물리층이 병목이면 체감은 개선되지 않습니다. 공유기 근처에서 신호가 떨어진 상태, 밤 시간대 채널 포화, 오래된 펌웨어는 지연과 재전송을 키웁니다. 유선으로 잠시 붙여 같은 노드로 속도를 재보는 것만으로도 회선인지 프록시인지가 갈립니다.

특정 프로토콜에서만 느리다면 단편화와 MTU 이슈를 의심할 수 있습니다. 이때는 Clash보다 OS·라우터·상위 ISP 쪽 점검 순서가 앞섭니다. 측정은 항상 같은 시각대에 여러 번 반복해 우연한 혼잡을 걸러내세요.

10. 코어와 클라이언트 버전을 맞추고 불필요한 실험 옵션을 줄인다

Mihomo(Clash Meta) 계열은 릴리스마다 DNS·스니핑·TUN 관련 동작이 조금씩 달라집니다. 구버전과 최신 문서를 섞어 쓰면 문서에는 있는데 내 바이너리에는 없는 옵션이 생기고, 조용히 무시되거나 예기치 않은 기본값이 적용됩니다. 안정적인 조합을 쓰려면 업그레이드 가이드의 순서를 참고해 백업 후 올리세요.

인터넷에 떠도는 「체감 속도를 올린다」는 실험적 플래그는 환경마다 천차만별입니다. 한 번에 여러 개를 켜 두면 어떤 변경이 효과인지 알 수 없으니, 한 옵션씩 켜고 끄며 기록하는 습관이 가장 빠릅니다.

정리

열 가지를 한 줄로 압축하면 이렇습니다. DNS와 fake-ip의 관계를 이해하고, 자동 선택 그룹의 측정 조건을 현실에 맞추며, 규칙 순서로 가려지는 줄이 없는지 확인합니다. 그다음 TUN 필요성, 구독 신선도, 이중 프록시·IPv6·UDP 경로 같은 주변 변수를 순서대로 배제합니다. 마지막으로 물리 회선과 코어 버전을 점검해 재현 가능한 설정만 남깁니다.

비슷한 범주의 도구들 가운데서도 Clash 계열은 규칙과 로그가 읽기 쉬워, 느린 증상을 구조적으로 분해하기에 유리한 편입니다. GUI로 시작했다가도 YAML의 한두 블록만 열어 숫자와 순서를 바꿔 보는 경험이 쌓이면, 이후 고급 기능으로 넘어갈 때 시간을 크게 아낄 수 있습니다.

클라이언트를 다시 받거나 팀원에게 동일한 빌드를 나눌 때는, 출처가 분명한 배포 페이지를 기준으로 맞추는 것이 재현과 보안 모두에 이롭습니다.

Clash를 무료로 내려받고 위 최적화를 직접 적용해 보기