01 · DECISION MODEL
먼저 프로토콜 선택 프레임워크 세우기
프로토콜 이름은 속도 순위가 아닙니다
Clash Plus, Clash Verge Rev, FlClash 등의 클라이언트에서 노드 옆에 표시되는 SS, VMess, Trojan, VLESS, Hysteria2, TUIC은 우선 클라이언트와 서버가 데이터를 주고받을 때 사용하는 프로토콜 구조를 뜻합니다. 속도순으로 바로 나열할 수 있는 제품 목록이 아닙니다. 실제 연결 성능은 서버 처리 능력, 경로 왕복 시간, 패킷 손실률, 혼잡도, 전송 계층, 암호화 구현, 클라이언트 커널과 기기 성능의 영향을 함께 받습니다. 같은 프로토콜이라도 경로와 서버 부하에 따라 두 노드의 성능은 크게 달라질 수 있으며, 반대로 안정적인 네트워크에서는 서로 다른 프로토콜도 비슷한 웹 로딩 경험을 제공할 수 있습니다.
따라서 프로토콜 선택은 먼저 호환 가능 여부를 확인하고, 현재 네트워크에 적합한지 판단한 뒤, 마지막으로 속도를 비교해야 합니다. 호환성에는 클라이언트 커널의 프로토콜 지원 여부, 구독 변환 과정에서 필요한 필드가 보존되는지, 전송 계층 조합이 구현되어 있는지, 기기 운영체제가 UDP 또는 QUIC 세션을 정상적으로 수립할 수 있는지가 포함됩니다. 가져오는 과정에서 핵심 필드가 이미 사라졌다면 이후 속도 측정은 의미가 없습니다. 일반 사용자는 서비스 제공자가 검증한 완전한 설정을 우선 사용하는 편이 안정적입니다. 한 프로토콜의 이름만 바꾼다고 다른 프로토콜로 변환되는 것은 아닙니다.
영향 요인을 네 가지 계층으로 나누기
첫 번째 계층은 기본 네트워크입니다. 고정 회선은 지연과 패킷 손실이 비교적 안정적이어서 TCP 기반 방식이 매끄럽게 작동하기 쉽습니다. 모바일 데이터, 공용 Wi-Fi, 통신사 간 경로에서는 순간적인 패킷 손실과 네트워크 전환이 발생할 수 있습니다. 이때 UDP 기반이며 혼잡 제어 기능을 갖춘 Hysteria2나 TUIC이 더 잘 대응할 수 있지만, 네트워크가 안정적인 UDP 전송을 허용해야 합니다. 두 번째 계층은 서버와 경로입니다. 같은 프로토콜이라도 서버 CPU 포화, 출구 혼잡, 우회 라우팅이 발생하면 클라이언트에서 파라미터를 바꿔도 병목은 사라지지 않습니다.
세 번째 계층은 프로토콜과 전송 방식의 조합입니다. VMess와 VLESS는 TCP, WebSocket, gRPC 등을 함께 사용할 수 있으며, VLESS는 TLS, REALITY 같은 보안 계층과도 자주 조합됩니다. SS는 간결한 암호화 프록시 구조에 가깝고, Trojan은 TLS 의미 체계에 의존합니다. Hysteria2와 TUIC은 QUIC 또는 UDP 전송 방식에 기반합니다. 네 번째 계층은 클라이언트 구현입니다. mihomo는 최신 프로토콜과 규칙 기능을 더 폭넓게 지원하지만, 초기 원본 Clash의 설정 기능은 제한적입니다. 선택할 때는 이 네 계층을 함께 살펴보고 네트워크·경로·커널 문제를 모두 프로토콜 이름 탓으로 돌리지 않아야 합니다.
호환성 확인
커널, 구독 필드, 전송 계층, 인증 파라미터가 모두 보존되었는지 확인합니다.
네트워크 관찰
현재 경로가 안정적인 TCP 환경에 가까운지, 패킷 손실이 많은 모바일 네트워크인지 판단합니다.
실제 작업 테스트
웹사이트 첫 로딩, 지속 다운로드, 음성·영상, 대기 후 복구를 각각 확인합니다.
대체 경로 유지
UDP 제한, 네트워크 전환, 커널 차이에 대비해 사용할 수 있는 다른 프로토콜을 준비합니다.
테스트할 때 기록할 항목
클라이언트의 지연 시간 테스트는 일반적으로 한 번의 탐색 요청만 반영하므로 장시간 연결의 처리량과 안정성을 완전히 보여 주지 못합니다. 실용적인 테스트에는 네 가지 항목이 포함되어야 합니다. 여러 사이트의 첫 로딩 응답 속도, 일정 시간 다운로드한 뒤의 처리량 변동, 영상이나 회의 중 끊김 여부, 기기 잠금 후 다시 깨웠을 때의 복구 속도입니다. 매번 같은 네트워크와 서버에서 프로토콜만 바꾸거나, 같은 프로토콜로 Wi-Fi와 모바일 데이터를 비교하는 등 한 번에 하나의 변수만 바꾸세요. 노드·네트워크·클라이언트·프로토콜을 동시에 바꾸면 개선이 어느 계층에서 발생했는지 알 수 없습니다.
로그에서 실패 지점도 확인해야 합니다. 도메인 해석 오류, 연결 시간 초과, 인증 실패, TLS 핸드셰이크 오류, UDP 연결 불가 현상은 각각 다른 문제를 가리킵니다. 로그에 인증 실패가 표시된다면 전역 모드를 반복해서 바꿔도 해결되지 않습니다. DNS 해석 이상이라면 프로토콜을 바꿔도 효과가 없을 수 있습니다. 로그 페이지와 프록시·설정 페이지의 관계는 Clash Verge 인터페이스 기능 한눈에 보기에서 확인할 수 있습니다. 이런 계층별 점검 방식을 익히면 프로토콜 선택은 ‘어떤 이름을 시도할까’가 아니라 반복 가능하고 검증 가능한 기술적 판단이 됩니다.
02 · ESTABLISHED DESIGNS
SS·VMess·Trojan의 설계 차이
SS: 간결한 구조와 폭넓은 구현
Shadowsocks는 보통 SS로 줄여 부르며, 비교적 간결한 구조로 암호화 프록시 전송을 구현하는 데 초점을 둡니다. 클라이언트 설정은 주로 서버 주소, 포트, 암호화 방식, 인증 키로 구성되고, 프로토콜 자체가 복잡한 사용자 체계나 다양한 전송 계층 의미를 제공하지는 않습니다. 프로토콜 오버헤드가 적고 크로스 플랫폼 구현이 성숙했으며 설정이 간단하기 때문에 SS는 오랫동안 리소스가 제한된 기기에 적합했고, 데스크톱과 모바일에서 설정을 일관되게 유지하기도 쉬웠습니다.
SS의 실제 보안성과 성능은 암호화 방식과 구현에 크게 좌우됩니다. 현재 설정에는 서버가 명시적으로 제공하고 클라이언트 커널이 지원하는 AEAD 또는 최신 암호화 방식을 사용해야 하며, 오래된 튜토리얼만 보고 cipher를 임의로 바꾸면 안 됩니다. 암호화 방식은 양측 협상 전에 정해지는 설정이므로 클라이언트와 서버가 다르면 바로 연결에 실패합니다. 일부 구독에는 플러그인이나 확장 파라미터가 포함되는데, 이는 기본 SS 필드에 속하지 않습니다. 다른 커널로 가져올 때는 플러그인 이름과 파라미터가 보존되는지 확인해야 합니다. 노드를 가져올 수 있지만 연결 직후 끊긴다면 먼저 암호화 방식, 비밀번호, 플러그인, 포트를 대조하세요.
VMess: 인증 정보와 다양한 전송 조합
VMess는 클라이언트 식별 정보, 시간 기반 검증, 다양한 전송 조합을 포함하는 구조로 설계되었습니다. 일반적인 설정 필드에는 서버, 포트, UUID, alterId, cipher, 네트워크 유형, TLS 설정이 있습니다. 최신 설정에서는 alterId가 대개 0이지만 오래된 구독에는 0이 아닌 값이 남아 있을 수 있습니다. 사용 가능 여부는 서버와 커널 구현에 따라 달라지므로 서버 설정을 모른 채 임의로 삭제하거나 수정해서는 안 됩니다. VMess는 TCP, WebSocket, HTTP, gRPC 등의 전송 방식과 조합할 수 있으므로 VMess라는 표시만으로는 상위 프로토콜 유형만 알 수 있고 전체 연결 경로는 판단할 수 없습니다.
이러한 조합 가능성은 유연성을 제공하지만 설정 오류 지점도 늘립니다. WebSocket은 보통 path, Host, TLS server name을 함께 확인해야 하고, gRPC는 service name을 확인해야 합니다. TLS 환경에서는 서버 이름과 인증서 검증 관련 필드를 점검해야 합니다. 구독 변환기가 주소, 포트, UUID만 남기고 transport-opts를 누락하면 노드가 목록에는 나타나도 연결되지 않을 수 있습니다. VMess도 파라미터가 많다고 빨라지는 것은 아닙니다. 전송 계층의 추가 캡슐화는 오버헤드를 만들 수 있지만 특정 배포 환경에서는 호환성 측면의 이점이 있으므로 성능은 실제 경로를 기준으로 판단해야 합니다.
Trojan: TLS 세션 기반 인증 구조
Trojan은 TLS 연결을 기반으로 비밀번호를 사용해 인증합니다. 설정에는 보통 서버, 포트, 비밀번호, SNI, 인증서 검증 옵션, 선택적 전송 설정이 포함됩니다. 핵심은 ‘특정 웹 트래픽처럼 보인다’는 점이 아니라 클라이언트가 먼저 TLS 핸드셰이크를 올바르게 완료한 뒤 인증과 전달을 진행한다는 데 있습니다. 따라서 시스템 시간, SNI, 인증서 체인, 서버 도메인, TLS 구현이 연결에 영향을 줍니다. 로그에 certificate, handshake, server name 관련 오류가 표시되면 이 필드부터 확인해야 합니다.
Trojan은 프로토콜 구조가 비교적 명확해 안정적인 TCP 네트워크에서 평탄한 연결을 얻기 쉽습니다. TLS 핸드셰이크와 암호화에는 일정한 CPU 비용이 들지만, 최신 데스크톱과 대부분의 스마트폰에서는 보통 주요 병목이 아닙니다. 실제로는 장시간 연결 수, 서버의 TLS 처리 능력, 네트워크 재연결 빈도를 살펴봐야 합니다. 모바일 네트워크가 자주 전환되면 세션을 새로 만들 때마다 필요한 핸드셰이크를 반복하므로 대기 후 복구 경험이 네트워크 상태의 영향을 받을 수 있습니다. 구독에 Trojan과 UDP 기반 프로토콜이 함께 있다면 Trojan을 안정적인 TCP 대체 경로로 활용하세요.
| 프로토콜 | 주요 설정 확인 항목 | 대표적인 장점 | 자주 발생하는 실패 지점 |
|---|---|---|---|
| SS | 암호화 방식, 비밀번호, 플러그인 파라미터 | 간결한 구조, 폭넓은 구현, 낮은 리소스 요구량 | cipher 불일치, 플러그인 필드 누락 |
| VMess | UUID, 전송 유형, TLS, 경로 또는 서비스 이름 | 다양한 전송 조합, 기존 설정과의 높은 호환성 | 전송 옵션 누락, 시간 또는 인증 정보 오류 |
| Trojan | 비밀번호, SNI, 인증서 체인, TLS 설정 | 명확한 설정 구조, 안정적인 TCP 연결 | TLS 핸드셰이크, 인증서 이름 또는 인증 실패 |
이 세 프로토콜은 ‘구형인가 신형인가’만으로 사용 가치를 판단해서는 안 됩니다. SS의 간결함은 저성능 기기에서 여전히 장점이고, VMess의 기존 배포 환경과 전송 조합은 특정 설정에 적합할 수 있으며, Trojan도 안정적인 TCP 환경에서 분명한 역할이 있습니다. 더 합리적인 방법은 서버가 제공하는 전체 조합을 먼저 검증한 뒤 로그와 실제 작업을 기준으로 비교하는 것입니다. 설정이 안정적이고 리소스 사용량이 적절하며 구독도 정상적으로 갱신된다면 프로토콜 이름이 오래되었다는 이유만으로 바꿔도 사용 경험이 자동으로 좋아지지는 않습니다.
03 · CURRENT OPTIONS
VLESS·Hysteria2·TUIC의 사용 범위
VLESS: 인증 계층과 암호화 계층을 나누어 이해하기
VLESS는 UUID 등의 정보로 클라이언트 신원을 표현하지만, 프로토콜 자체가 VMess와 같은 내장 암호화 방식을 제공하지는 않습니다. 실제 연결 보안은 일반적으로 TLS, REALITY 또는 다른 외부 계층이 담당합니다. VLESS를 이해할 때는 프로토콜, 전송 계층, 보안 계층을 분리해서 봐야 합니다. VLESS는 인증과 전달 구조의 일부를 결정하고, TCP·WebSocket·gRPC 등은 전송 방식을, TLS 또는 REALITY는 보안 핸드셰이크를 결정합니다. 클라이언트 목록에 VLESS만 표시되더라도 설정을 펼쳐 network, tls, servername, reality-opts, flow 필드를 확인해야 합니다.
VLESS 설정의 flow는 임의로 입력하는 성능 스위치가 아닙니다. 일부 조합은 특정 흐름 제어 값을 사용하며 클라이언트, 서버, 하위 구현이 모두 일치해야 합니다. 잘못된 값은 대개 핸드셰이크나 데이터 전송 실패로 이어집니다. REALITY 설정에는 public-key, short-id, servername이 포함될 수 있으며 이 필드들은 서로 연관되어 있습니다. 구독 변환 과정에서 필드명이 바뀌거나 빈 값을 삭제하면서 필요한 파라미터까지 사라지거나, 오래된 클라이언트가 해당 구조를 인식하지 못하면 노드는 존재하지만 연결되지 않을 수 있습니다. 따라서 VLESS는 mihomo를 지원하는 최신 클라이언트로 완전하게 가져오는 편이 좋습니다.
Hysteria2: 패킷 손실이 많은 경로를 위한 QUIC 방식
Hysteria2는 UDP 기반 QUIC 전송 위에서 동작하며, 최신 혼잡 제어와 다중화를 활용해 지연·지터·패킷 손실이 큰 경로에 대응하는 데 초점을 둡니다. 그렇다고 모든 네트워크에서 더 빠른 것은 아닙니다. 로컬 UDP 경로가 안정적이고 서버 대역폭이 충분하며 파라미터가 적절하면 지속 전송에서 좋은 처리량을 유지할 수 있습니다. 반대로 로컬 네트워크가 UDP를 제한하거나 경로 품질이 낮거나 중간 장비가 UDP 세션을 자주 회수하면 연결 시간 초과, 속도 변동, 대기 후 복구 지연이 발생할 수 있습니다.
일반적인 설정 필드에는 서버 주소, 포트, 인증 정보, TLS server name, 인증서 검증, 대역폭 관련 파라미터가 포함됩니다. 대역폭 값은 혼잡 제어가 전송 속도를 판단하도록 돕는 값이지, 숫자를 크게 입력한다고 속도가 높아지는 것은 아닙니다. 실제 회선보다 훨씬 높게 설정하면 대기열과 패킷 손실이 발생할 수 있고, 너무 낮으면 처리량이 제한됩니다. 최신 구현은 모드에 따라 자동 조정할 수도 있으므로 구독에서 내려온 값을 사용하는 편이 안전합니다. 로그에 UDP timeout이 표시되면 대역폭 값만 계속 높이지 말고 먼저 다른 네트워크에서 테스트한 뒤 방화벽, 라우터, 서버 포트를 확인하세요.
TUIC: 낮은 지연 시간의 세션과 UDP 전송
TUIC도 QUIC와 UDP를 기반으로 하며 빠른 연결 수립, 다중화, 헤드 오브 라인 블로킹 영향 감소에 초점을 둡니다. 설정에는 보통 UUID, 비밀번호, 서버 이름, 혼잡 제어 옵션, UDP 릴레이 모드가 포함됩니다. 구현이나 설정 세대에 따라 필드가 다를 수 있으므로 구독의 프로토콜 식별자, 버전 의미, 인증 구조가 서버와 일치해야 합니다. mihomo는 일반적인 TUIC 설정을 인식할 수 있지만, 오래된 커널이나 클라이언트는 해석하지 못할 수 있습니다. 가져온 뒤 무시되었다고 구독이 비어 있는 것은 아니며, 커널이 해당 노드 유형을 지원하지 않는 것일 수 있습니다.
TUIC은 세션을 자주 만들고 네트워크 품질이 변동하며 UDP를 사용할 수 있는 환경에 적합하지만 TCP의 완전한 대체재는 아닙니다. 기업 Wi-Fi, 게스트 네트워크, 일부 이동통신망, 엄격하게 설정된 라우터는 UDP를 제한할 수 있으며 이 경우 TUIC과 Hysteria2가 함께 작동하지 않을 수 있습니다. 실제 설정에는 SS, Trojan 또는 다른 TCP 전송 노드를 대체 경로로 남겨 두세요. 음성, 게임, 실시간 통신에서는 클라이언트와 서버 사이가 UDP인지와 대상 애플리케이션이 UDP 전달을 거치는지를 구분해야 합니다. 전자가 가능하다고 후자의 규칙과 정책까지 올바르다는 뜻은 아닙니다.
proxies:
- name: "VLESS-Reference"
type: vless
server: node.example.invalid
port: 443
uuid: 00000000-0000-4000-8000-000000000000
network: tcp
tls: true
servername: node.example.invalid
- name: "Hysteria2-Reference"
type: hysteria2
server: node.example.invalid
port: 443
password: "your-password"
sni: node.example.invalid
위 예시는 mihomo YAML에서 필드 계층을 설명하기 위한 것으로, 주소·신원·비밀번호는 명확한 예시 값이며 그대로 연결에 사용할 수 없습니다. 실제 구독은 VLESS에 REALITY 파라미터를 추가하거나 Hysteria2에 포트 범위와 대역폭 설정을 추가하는 등 다른 필드 조합을 사용할 수 있습니다. 설정을 편집한 뒤에는 먼저 클라이언트의 설정 검사 기능을 실행하고, 로그에 unsupported, missing field, authentication, handshake 등이 표시되는지 확인하세요. 구독에서 가져온 설정이라면 구독 원본에서 수정하거나 대상 형식을 명확히 지원하는 변환 방식을 사용해 업데이트 때마다 로컬 수정 사항이 덮어쓰이지 않도록 하세요.
04 · PERFORMANCE
연결 속도·처리량·리소스 사용량 비교 방법
첫 로딩 속도와 지속 처리량은 서로 다른 지표입니다
사용자가 느끼는 ‘빠름’에는 최소 세 가지 지표가 있습니다. 첫째는 연결 수립 시간으로, DNS 조회, 서버까지의 왕복, TCP 또는 QUIC 연결, TLS 핸드셰이크, 프로토콜 인증이 포함됩니다. 웹페이지가 여러 짧은 요청으로 구성되어 있으면 연결 수립과 재사용 효율이 첫 로딩에 큰 영향을 줍니다. 둘째는 지속 처리량으로 회선 대역폭, 혼잡 제어, 패킷 손실 복구, 서버 출구의 영향을 주로 받습니다. 셋째는 지터와 꼬리 지연으로, 영상 회의·음성·대화형 앱에서 간헐적인 끊김이 발생하는지를 결정합니다. 한 번의 지연 시간 숫자만으로는 나머지 두 지표를 평가할 수 없습니다.
SS는 프로토콜 처리가 비교적 간결해 CPU 성능이 낮은 기기에서도 오버헤드를 낮게 유지하기 쉽습니다. Trojan과 TLS를 사용하는 VMess·VLESS는 TLS 관련 연산이 필요하지만 최신 프로세서에서는 대체로 효율적으로 처리됩니다. Hysteria2와 TUIC의 QUIC 스택은 UDP 세션, 혼잡 상태, 암호화 컨텍스트를 유지해야 하므로 높은 처리량에서는 CPU를 더 사용할 수 있습니다. 그러나 패킷 손실이 큰 경로에서는 복구 방식이 더 적합해 유효 처리량이 안정적일 수 있습니다. 리소스 사용량은 네트워크 품질과 함께 봐야 합니다. 프로토콜 처리에 조금 더 비용이 들어도 재전송 대기가 줄면 전체 작업은 오히려 빨리 끝날 수 있습니다.
암호화·캡슐화·다중화의 비용
모든 프로토콜에는 헤더, 인증, 암호화 오버헤드가 발생하며 차이는 주로 연결별 상태 수, 캡슐화 계층 수, 패킷 크기에서 나타납니다. WebSocket, gRPC, TLS 조합은 추가 처리를 필요로 하고 UDP 기반 QUIC에도 자체 제어 프레임과 확인 메커니즘이 있습니다. 대용량 파일 전송에서는 이러한 고정 오버헤드의 비중이 낮을 수 있지만, 짧은 연결이 많으면 작은 패킷과 잦은 핸드셰이크의 영향이 커집니다. 다중화는 반복적인 연결 수립을 줄일 수 있지만 항상 많을수록 좋은 것은 아닙니다. 여러 논리 연결을 하나의 하위 연결에 집중하면 하위 연결이 흔들릴 때 여러 작업이 동시에 영향을 받을 수 있습니다.
mihomo의 연결 재사용, TCP 동시성, UDP 처리 옵션은 클라이언트 버전과 구독 안내에 따라 사용해야 하며, 서로 다른 튜토리얼에서 ‘무조건 가장 빠른 공통 파라미터’를 조합해서는 안 됩니다. 특히 대역폭, 혼잡 제어, 연결 풀 파라미터는 실제 경로에 맞아야 합니다. 모바일 네트워크는 순간 대역폭 변동이 크므로 고정된 업로드·다운로드 값은 추정치일 뿐입니다. 테스트할 때는 먼저 구독 기본값을 유지한 뒤 항목별로 조정하고, 웹페이지·소파일·지속 전송·절전 후 복구를 모두 확인해 우연한 순간 최고치가 아닌지 판단하세요.
| 관찰 항목 | SS | VMess / VLESS / Trojan | Hysteria2 / TUIC |
|---|---|---|---|
| 연결 수립 구성 | 구조가 간결하며 플러그인에 따라 달라짐 | 전송 계층과 TLS 조합에 따라 핸드셰이크 횟수가 결정됨 | QUIC 연결을 수립하고 UDP 세션을 유지함 |
| 높은 패킷 손실 대응 | 주로 하위 TCP 복구에 의존 | TCP 조합은 TCP에 의존하며 구체적인 동작은 전송 계층에 따라 달라짐 | 혼잡 제어가 변동이 큰 경로에 맞춰 작동할 수 있음 |
| CPU 부담 | 대체로 낮음 | TLS, 캡슐화, 연결 수의 영향을 받음 | 높은 처리량에서는 QUIC와 혼잡 상태를 처리해야 함 |
| 네트워크 제한에 민감한 지점 | 포트, 플러그인, 서버 설정 | TLS, SNI, 전송 필드의 완전성 | UDP 연결 가능 여부, 세션 유지, 속도 제한 |
재현 가능한 절차로 비교하기
먼저 백그라운드 다운로드와 시스템 업데이트를 끄고, 한 대의 기기·하나의 네트워크·같은 시간대를 고정하세요. 각 후보 노드에서 연결 테스트를 한 번 수행한 다음 동일한 웹페이지 묶음을 연속으로 열고, 충분히 긴 파일 전송이나 영상 재생을 실행하세요. 마지막으로 기기를 몇 분간 잠근 뒤 복구합니다. 소수점 단위의 정확한 수치보다 첫 로딩의 안정성, 지속 전송의 주기적인 저하, 음성의 긴 끊김, 잠금 해제 후 수동 재연결 필요 여부를 기록하는 것이 중요합니다. 2~3회 반복하면 캐시와 순간적인 혼잡의 영향을 줄일 수 있습니다.
로그와 시스템 모니터는 리소스 병목을 찾는 데 도움이 됩니다. 단일 코어 CPU가 오랫동안 거의 최대치인데 네트워크 처리량이 더 오르지 않는다면 기기 처리 능력이나 암호화 구현이 제한 요인일 수 있습니다. CPU 사용량은 낮지만 패킷 손실과 재전송이 뚜렷하다면 경로를 우선 살펴봐야 합니다. 같은 노드에서 여러 프로토콜이 동시에 느려진다면 서버나 출구 문제일 가능성이 큽니다. 메모리에서는 개별 프로토콜보다 규칙 집합 크기, 연결 수, DNS 캐시가 더 큰 영향을 주는 경우가 많습니다. 프로토콜을 비교할 때는 규칙과 DNS 설정을 동일하게 유지해야 대형 규칙 로딩으로 인한 메모리 차이를 프로토콜 탓으로 돌리지 않습니다.
05 · MOBILE AND PLATFORM
모바일 배터리·네트워크 전환·플랫폼 차이
배터리 소모는 지속적인 동작 방식에서 발생합니다
모바일 배터리 성능을 프로토콜의 암호화 강도와 단순히 연결해서는 안 됩니다. 주요 영향 요인은 무선 모듈이 활성 상태로 유지되는 시간, 연결 재수립 빈도, 백그라운드 연결 유지 방식, 전체 데이터 전송량, DNS 요청 수, 규칙 매칭 부담, CPU 처리 시간입니다. 어떤 프로토콜이 작업을 빠르게 끝내 무선 모듈을 저전력 상태로 되돌린다면 순간 CPU 사용량이 조금 높아도 총 에너지 소비는 낮을 수 있습니다. 반대로 불안정한 네트워크에서 계속 재전송하거나 자주 재연결하면 한 번의 처리가 가벼워도 배터리를 더 많이 소모할 수 있습니다.
SS는 설정이 간단하고 경로가 안정적일 때 처리 부담이 낮은 편입니다. Trojan, VMess, VLESS에 TLS를 조합하면 핸드셰이크와 암호화 비용이 발생하지만 장시간 연결 재사용이 정상이라면 지속 사용에서 차이가 크지 않을 수 있습니다. Hysteria2와 TUIC은 UDP 또는 QUIC 세션을 유지하므로 네트워크가 안정적일 때 일부 대기 시간을 줄일 수 있습니다. 반면 기기가 기지국을 자주 전환하거나 라우터가 UDP 매핑을 회수하거나 백그라운드 정책이 활동을 제한하면 세션 재수립으로 깨우기 횟수가 늘어날 수 있습니다. 실제 배터리 결과는 Android 제조사의 백그라운드 제한, iOS 네트워크 확장 방식, 클라이언트 구현에도 좌우되므로 프로토콜 이름만으로 예측할 수 없습니다.
Android: 백그라운드 정책과 VPN 서비스
Android 클라이언트는 일반적으로 시스템 VPN 서비스를 통해 트래픽을 처리합니다. Clash Plus, Clash Meta for Android, FlClash, Surfboard는 인터페이스와 기능 범위가 서로 다르지만 시스템 절전 정책, 백그라운드 활동 권한, 제조사 프로세스 관리의 영향을 모두 받습니다. 화면을 잠근 뒤 연결이 끊기면 먼저 클라이언트가 계속 실행 중인지, VPN 표시가 유지되는지, 시스템이 백그라운드 배터리 사용을 제한하는지 확인한 다음 프로토콜을 점검하세요. 앱 프로세스가 시스템에 의해 종료된 경우 다른 프로토콜로 바꿔도 근본 원인은 해결되지 않습니다.
Android에서는 IPv6, 비공개 DNS, 앱별 프록시, 핫스팟 공유도 확인해야 합니다. 일부 앱이 IPv6을 직접 사용하는데 설정이 IPv4만 처리하면 특정 앱만 연결되지 않을 수 있습니다. 비공개 DNS와 클라이언트의 DNS 가로채기 정책이 함께 적용되면 예상과 다른 해석 경로가 사용될 수 있습니다. 앱별 프록시는 커널로 들어가는 트래픽 범위를 바꾸므로 프로토콜을 테스트할 때 대상 앱이 실제로 포함되었는지 확인하세요. 모바일 데이터에서 Hysteria2나 TUIC에 문제가 생기면 Wi-Fi로 다시 테스트하세요. Wi-Fi는 정상인데 이동통신망에서 계속 시간 초과가 발생한다면 UDP 경로와 네트워크 정책을 우선 판단해야 합니다.
iOS: 시스템 네트워크 확장과 포그라운드·백그라운드 전환
iOS 클라이언트는 시스템이 제공하는 네트워크 확장 기능에 의존하며 연결 상태, 메모리 예산, 백그라운드 동작은 시스템이 통합 관리합니다. 이 사이트의 다운로드 목록에서 iOS 추천 클라이언트는 Clash Plus이며, iOS 다운로드 섹션에서 App Store로 이동할 수 있습니다. 사용할 때는 시스템 설정의 VPN 상태, 클라이언트 설정 활성화 여부, Wi-Fi와 이동통신망 전환 후 자동 복구 여부를 확인하세요. iOS는 일반 사용자에게 데스크톱과 같은 프로세스 제어 정보를 제공하지 않으므로 시스템 VPN 상태, 설정 로그, 네트워크 전환 결과를 중심으로 문제를 해결해야 합니다.
모바일 기기에서 UDP 기반 프로토콜을 사용할 때 네트워크를 전환하면 로컬 주소와 NAT 매핑이 바뀝니다. QUIC에는 연결 변경을 처리하는 관련 메커니즘이 있지만 실제로 원활하게 복구되는지는 클라이언트, 서버, 네트워크 경로에 달려 있습니다. 네트워크 전환 후 오랫동안 복구되지 않으면 클라이언트에서 연결을 끊었다가 다시 연결하고, 로그에 timeout이 반복되는지 확인하세요. TCP 노드는 즉시 복구되는데 UDP 노드만 계속 실패한다면 현재 네트워크가 UDP 세션에 적합하지 않은 것이므로 일시적으로 TCP 대체 노드를 사용하세요.
데스크톱 플랫폼에서 중점적으로 볼 차이
Windows, macOS, Linux는 일반적으로 스마트폰의 배터리와 백그라운드 동결 문제는 적지만 시스템 프록시, TUN 권한, 방화벽, 절전 후 복구가 더 중요합니다. Windows의 일부 앱은 시스템 프록시를 완전히 따르지 않으므로 TUN 모드나 앱 자체 설정이 필요할 수 있습니다. 스토어 앱은 루프백 제한의 영향을 받을 수 있으므로 Windows UWP 앱 루프백 제한 문제 해결을 참고하세요. macOS에서는 시스템 프록시와 가상 네트워크 인터페이스를 구분해야 하며 절전 후 연결에 문제가 생기면 시스템 프록시나 TUN을 먼저 재시작하세요. Linux에서는 데스크톱 프록시 설정, 라우팅 권한, systemd 서비스 상태, DNS 관리 구성 요소를 중점적으로 확인해야 합니다.
모바일 우선 점검 항목
백그라운드 권한, VPN 상태, 네트워크 전환 복구, UDP 연결 가능 여부, 앱별 프록시, DNS 경로
데스크톱 우선 점검 항목
시스템 프록시, TUN 권한, 방화벽, 앱의 프록시 동작, 절전 후 복구, 라우팅 테이블
모바일 배터리를 평가할 때는 몇 분간의 순간 배터리 비율보다 시스템 배터리 통계로 전체 사용 주기를 관찰하는 것이 좋습니다. 비슷한 화면 사용 시간, 데이터량, 앱 작업을 유지하면서 후보 프로토콜을 각각 테스트하세요. 특정 프로토콜이 신호가 약할 때 기기를 계속 발열시키거나 백그라운드 활동 시간이 크게 늘거나, 깨운 뒤 반복적으로 재연결한다면 안정적인 노드나 대체 프로토콜로 바꾸는 것이 우선입니다. 배터리 성능은 프로토콜·네트워크·클라이언트·시스템 스케줄링이 함께 만든 결과이므로 목표는 추상적인 최소 오버헤드가 아니라 불필요한 작업을 줄이는 것입니다.
06 · CORE FAMILY
원본 Clash·Meta·mihomo의 계열 관계
클라이언트 인터페이스와 커널은 별개의 계층입니다
Clash 생태계에서 ‘클라이언트’와 ‘커널’은 구분해서 이해해야 합니다. 클라이언트는 창 인터페이스, 구독 관리, 시스템 프록시, TUN 권한, 로그 표시, 업데이트 절차를 담당합니다. 커널은 설정을 읽고 프록시 연결을 만들며 규칙을 실행하고 DNS와 트래픽 전달을 처리합니다. 같은 커널을 서로 다른 인터페이스로 포장할 수 있고, 같은 클라이언트 프로젝트가 개발 과정에서 커널을 교체할 수도 있습니다. 따라서 프로토콜 지원 여부를 판단할 때는 소프트웨어 이름이 아니라 클라이언트가 실제로 사용하는 커널을 확인해야 합니다.
원본 Clash는 YAML 설정, 프록시 그룹, 규칙 매칭, 제어 인터페이스 등의 기본 구조를 마련했고 많은 구독 형식도 이 필드를 기반으로 합니다. 프로토콜과 네트워크 기능이 확장되면서 Clash Meta 분기는 더 많은 프로토콜, 전송 방식, DNS 기능, 규칙 확장을 추가했습니다. 이 분기는 이후 mihomo라는 이름으로 계속 발전했습니다. 일상적으로 Meta 설정, Clash Meta 커널, mihomo는 같은 발전 계열의 서로 다른 시기를 가리키는 경우가 많지만, 문제를 해결할 때는 현재 클라이언트에 표시된 커널 이름과 문서를 기준으로 해야 합니다.
기능 차이가 프로토콜 선택에 미치는 영향
초기 원본 Clash는 SS, VMess, Trojan 같은 일반적인 유형을 인식할 수 있지만 이후 추가된 모든 프로토콜과 필드를 자동으로 지원하지는 않습니다. VLESS, Hysteria2, TUIC, REALITY 관련 옵션과 최신 DNS·규칙 기능은 일반적으로 mihomo가 필요합니다. 이러한 노드가 포함된 구독을 구형 커널만 지원하는 클라이언트에 가져오면 노드가 건너뛰어지거나, 설정 검사에 실패하거나, 알 수 없는 필드가 무시되거나, 전체 설정을 불러오지 못할 수 있습니다. 이는 노드 경로 장애가 아니라 해석 단계에서 이미 호환되지 않는 문제입니다.
Clash Plus, Clash Verge Rev, FlClash, Clash Nyanpasu 같은 최신 GUI 클라이언트는 지원 플랫폼, 인터페이스 기능, 커널 통합 방식이 서로 다릅니다. 이 사이트의 다운로드 페이지에서는 Clash Plus를 모든 플랫폼의 우선 추천 항목으로 안내합니다. Linux 사용자는 데스크톱 환경에 따라 Clash Verge Rev나 FlClash를 선택할 수도 있습니다. 클라이언트를 고를 때는 설치 가능 여부뿐 아니라 구독에 필요한 커널을 사용하는지, 커널을 업데이트할 수 있는지, 설정 검사 오류를 표시하는지, 시스템에 필요한 TUN 모드를 지원하는지도 확인해야 합니다. 서버나 라우터에서는 Mihomo 커널을 직접 사용할 수 있지만 설정 파일, 서비스 시작, 로그를 직접 관리해야 합니다.
| 계층 | 주요 역할 | 프로토콜 호환성과의 관계 |
|---|---|---|
| GUI 클라이언트 | 구독, 인터페이스, 시스템 프록시, TUN, 업데이트, 로그 진입점 | 커널의 패키징·호출·업데이트 방식을 결정함 |
| 원본 Clash 커널 | 기본 프록시, 정책 그룹, 규칙, DNS 처리 | 초기 일반 프로토콜과 설정 구조에 적합 |
| Clash Meta / mihomo | 프로토콜, 전송, DNS, 규칙, 플랫폼 기능 확장 | VLESS, Hysteria2, TUIC 등 최신 설정 지원 |
| 구독 또는 YAML | 노드, 정책 그룹, 규칙, DNS 설명 | 필드가 현재 커널 문법과 일치해야 함 |
설정 호환성은 완전한 하위 호환을 의미하지 않습니다
mihomo는 일반적으로 Clash 구조로 작성된 많은 설정을 읽을 수 있지만, 모든 확장 설정을 원본 커널에서 역으로 사용할 수 있다고 가정해서는 안 됩니다. 최신 프로토콜, 새 규칙 유형, 확장 DNS 필드가 포함된 설정은 구형 커널에서 실패할 수 있습니다. 두 커널이 같은 필드를 인식하더라도 DNS 처리 순서, 규칙 프로바이더 로딩 방식, 상태 확인 동작, TUN 네트워크 스택 선택 등 기본 동작이 다를 수 있습니다. 클라이언트를 바꾼 뒤에는 설정 검사 결과, 정책 그룹 구성원, DNS 해석, 규칙 적용 여부를 다시 확인해야 하며 노드 목록이 보이는지만 확인해서는 안 됩니다.
설정 파일의 최상위 구조도 명확하게 유지해야 합니다. proxies에는 노드를 저장하고, proxy-groups에는 선택 및 테스트 로직을 정의하며, rules는 트래픽 경로를 결정하고, dns는 해석 동작을 관리합니다. 구독 업데이트는 일부 항목만 바꿀 수도 있고 전체 설정을 덮어쓸 수도 있습니다. 클라이언트의 오버라이드·병합·스크립트 기능은 업데이트 후 로컬 설정을 안정적으로 추가하는 데 사용되지만 구체적인 문법은 클라이언트마다 다릅니다. 병합 순서를 모른다면 먼저 구독 원본을 보존하고 항목별로 추가해 보세요. 한 번에 많은 확장 필드를 가져오면 오류 위치를 찾기 어려워집니다.
현재 사용 중인 커널 확인 방법
클라이언트의 설정, 정보, 커널 페이지에서 이름을 확인하세요. 시작 로그에도 커널 식별자와 설정 로딩 결과가 표시되는 경우가 많습니다. 설치 패키지 이름만 보고 추측해서는 안 됩니다. 로그에 unsupported proxy type이 표시되면 먼저 커널이 mihomo인지 확인한 다음 올바른 커널 파일이 활성화되었는지 점검하세요. 커널은 시작되었지만 설정 로딩에 실패했다면 오류 행과 필드명을 확인해야 합니다. 설정은 정상인데 연결에 실패한다면 인증, TLS, DNS, 네트워크를 차례로 점검하세요. ‘클라이언트 시작’, ‘설정 해석’, ‘노드 연결’, ‘규칙 전달’을 네 단계로 나누면 불필요한 시도를 크게 줄일 수 있습니다.
07 · SUBSCRIPTION
구독 형식과 설정 호환성 점검
구독 주소가 곧 고정 형식은 아닙니다
‘구독 링크’는 설정을 가져오는 방법을 뜻할 뿐, 반환 내용이 항상 같은 형식이라는 의미는 아닙니다. 서버는 완전한 Clash YAML, 노드만 포함한 YAML, 인코딩된 URI 목록, 특정 클라이언트용 설정을 반환할 수 있습니다. 클라이언트로 가져올 때는 먼저 내용을 받은 뒤 응답 형식에 맞춰 해석해야 합니다. 링크가 브라우저에서 열린다는 것은 서버가 데이터를 반환했다는 뜻일 뿐, 현재 클라이언트와 커널에 맞는 형식이라는 증거는 아닙니다.
완전한 Clash 또는 mihomo 설정에는 보통 프록시 노드, 정책 그룹, 규칙, DNS, 포트 설정이 포함됩니다. 노드 구독에는 proxies 데이터만 있을 수 있으며 정책 그룹과 규칙은 클라이언트 템플릿이 보완합니다. URI 목록은 ss://, vmess://, trojan://, vless://, hysteria2://, tuic:// 같은 형식으로 노드를 표현합니다. 복잡한 전송 파라미터를 URI로 표현하는 능력과 구현 일관성은 형식마다 다르므로 변환 과정에서 path, SNI, ALPN, 지문, REALITY, 혼잡 제어 필드가 가장 쉽게 누락됩니다.
가져오기 전후 네 가지 확인
첫 번째는 응답 상태입니다. 가져오기에 실패하면 구독 주소에 불필요한 공백이 없는지, 로그인 페이지·오류 페이지·빈 내용이 반환되지 않았는지 확인하세요. 두 번째는 노드 수와 프로토콜 유형입니다. 예상한 Hysteria2, TUIC, VLESS 노드가 해석 단계에서 사라지지 않았는지 확인합니다. 세 번째는 핵심 필드입니다. 노드 하나를 펼쳐 서버, 포트, 인증, TLS, 전송 설정을 확인하세요. 네 번째는 정책 그룹입니다. 노드가 정상적으로 해석되어도 현재 정책 그룹에 추가되지 않으면 프록시 화면에는 이전 노드만 표시될 수 있습니다.
구독 업데이트는 내용을 다시 가져와 병합하는 과정입니다. 업데이트 후 로컬 수정이 사라진다면 해당 수정이 구독 관리 범위에 있었던 것입니다. 파일을 직접 편집할 것이 아니라 클라이언트의 오버라이드나 설정 병합 기능을 사용해야 합니다. 업데이트 후 노드가 중복되면 내용이 같은 구독을 여러 개 활성화했거나 기존 설정이 교체되지 않았을 수 있습니다. 업데이트 시간은 정상인데 노드 내용이 바뀌지 않는다면 로그와 응답 캐시를 확인하고 구독 서비스가 실제로 새 내용을 반환하는지 점검하세요. 전체 진입 절차와 오류 분류는 Clash 구독 링크 가져오기 방법을 참고하세요.
완전한 mihomo YAML
노드, 정책 그룹, 규칙, DNS를 포함할 수 있어 기능은 완전하지만 커널 문법과 필드 호환성 요구가 가장 높습니다.
Clash 노드 YAML
proxies 제공에 초점을 두며 정책 그룹은 보통 클라이언트나 템플릿이 보완합니다. 노드가 선택 가능한 그룹에 자동으로 추가되는지 확인해야 합니다.
프로토콜 URI 목록
노드를 하나씩 표현하고 공유하기 쉽지만 생성기와 파서의 차이로 복잡한 확장 필드가 누락될 수 있습니다.
필드가 누락되었을 때 위치 찾기
먼저 구독 원본과 클라이언트로 가져온 뒤의 노드 상세 정보를 비교하세요. 원본부터 필드가 빠져 있다면 구독 생성 단계의 문제입니다. 원본은 완전한데 클라이언트에서 사라졌다면 클라이언트 파서, 구독 변환, 커널 지원 문제일 수 있습니다. VMess와 VLESS는 network, servername, ws-opts, grpc-opts, reality-opts, flow를 중점적으로 확인하세요. Trojan은 password, sni, TLS를, SS는 cipher, password, plugin을, Hysteria2와 TUIC은 인증, SNI, 혼잡 제어, UDP 관련 옵션을 확인해야 합니다.
다음으로 설정 검사 오류를 확인하세요. YAML은 들여쓰기에 민감하므로 목록 항목, 매핑, 문자열 계층이 잘못되면 전체 설정을 읽지 못할 수 있습니다. 노드 이름에 콜론, 샵, 특수 문자가 포함되면 따옴표를 사용하는 편이 모호함을 줄입니다. 포트는 숫자 의미를 유지해야 하며 UUID, 비밀번호, 경로는 일반적으로 문자열로 처리하는 등 불리언·숫자·문자를 혼용해서는 안 됩니다. 수동 편집 후에는 먼저 커널의 문법 검사를 통과시킨 다음 시스템 프록시를 시작해 형식 오류를 네트워크 문제로 오해하지 않도록 하세요.
mixed-port: 7890
mode: rule
proxy-groups:
- name: "프로토콜 선택"
type: select
proxies:
- "VLESS-Reference"
- "Hysteria2-Reference"
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,프로토콜 선택
- MATCH,프로토콜 선택
이 설정은 정책 그룹과 규칙이 노드 이름을 어떻게 참조하는지 보여 줍니다. 참조 이름은 대소문자와 공백을 포함해 proxies에 있는 이름과 완전히 일치해야 합니다. 노드 이름을 바꾸면 정책 그룹의 기존 이름은 작동하지 않습니다. 실제 설정에는 보통 DNS, 규칙 프로바이더, 더 많은 정책 그룹도 포함되지만 문제를 해결할 때는 최소 구조로 줄여 노드 하나가 연결되는지 확인한 뒤 나머지를 단계적으로 복원할 수 있습니다. 출처를 모르는 설정을 통째로 복사하면 여러 변수가 동시에 추가되어 문제 위치를 판단하기 어려워집니다.
구독 변환의 한계
변환 도구는 한 컨테이너 형식을 다른 형식으로 바꿀 수 있지만 서버 파라미터를 없는 상태에서 채우거나 프로토콜 자체를 다른 프로토콜로 바꿀 수는 없습니다. 가능한 작업은 필드 매핑, 정책 그룹 생성, 노드 필터링, 이름 조정입니다. 최신 프로토콜이나 확장 전송 지원 여부는 변환기 구현에 달려 있습니다. 변환기가 필드를 인식하지 못하면 원본 구독이 올바르더라도 출력이 불완전할 수 있습니다. VLESS REALITY, Hysteria2, TUIC을 다룰 때는 서버가 직접 제공하는 mihomo 형식을 우선 사용하고 업데이트 후 핵심 필드를 확인하세요.
구독이 비어 있거나 형식을 인식하지 못하거나 업데이트에 실패하면 먼저 자주 묻는 질문의 설치 및 설정 항목을 확인하세요. 점검 순서는 주소 접근 가능 여부, 응답 내용, 형식 해석 가능 여부, 커널의 프로토콜 지원, 핵심 필드 완전성, 정책 그룹 편입, 연결 로그 순으로 유지해야 합니다. 이 순서대로 단계별 확인을 진행하는 편이 클라이언트를 반복해서 삭제하고 재설치하는 것보다 원인을 찾기 쉽습니다.
08 · PRACTICAL CHOICE
사용 환경에 맞는 프로토콜 선택과 문제 해결
안정적인 가정용 인터넷과 일상적인 웹 사용
지연과 패킷 손실이 안정적인 가정용 인터넷에서는 프로토콜 차이보다 회선 차이가 더 크게 나타나는 경우가 많습니다. SS, Trojan, VMess, VLESS의 TCP 기반 조합은 모두 일상적인 선택지가 될 수 있습니다. 구독 설정이 완전하고 클라이언트 로그가 깨끗하며 웹페이지 첫 로딩이 안정적인 노드를 우선 선택하세요. 기기 성능이 제한적이라면 구조가 간결한 SS를 먼저 테스트할 가치가 있습니다. 관리가 잘 되는 Trojan이나 VLESS TLS 설정이 구독에 있다면 바로 사용해도 됩니다. 지속 전송이나 높은 패킷 손실 테스트에서 뚜렷한 이점이 확인되지 않는 한 프로토콜 이름만 보고 UDP 기반 방식으로 바꿀 필요는 없습니다.
가정용 네트워크에서 모든 프로토콜이 특정 시간대에 느려진다면 회선 혼잡, Wi-Fi 신호, 라우터 부하, 서버 출구를 확인해야 합니다. 특정 전송 조합만 실패한다면 해당 포트, TLS, SNI, 전송 경로를 점검하세요. 규칙 모드에서는 테스트 트래픽이 실제로 선택한 정책 그룹을 통과하는지도 확인해야 합니다. 규칙이 DIRECT에 일치하면 노드를 바꿔도 결과가 달라지지 않습니다. 로그 페이지에서 대상 도메인에 최종 적용된 규칙과 정책을 확인할 수 있습니다.
모바일 데이터·공용 Wi-Fi·지터가 큰 경로
모바일 데이터와 공용 Wi-Fi는 지연, 대역폭, 패킷 손실 변동이 큽니다. UDP 경로가 안정적이라면 Hysteria2, TUIC, TCP 대체 노드를 비교해 보세요. 핵심은 순간 최고 속도가 아니라 네트워크 전환 후 복구, 지속 사용 중 멈춤, 기기 발열입니다. Hysteria2 대역폭 설정은 실제 성능에 가깝게 맞추고, TUIC 혼잡 제어와 UDP 릴레이 설정은 구독에서 제공한 조합을 사용하세요. 네트워크 전환 후 UDP 노드가 계속 시간 초과되면 반복 재시도보다 Trojan, SS 또는 다른 TCP 노드로 바꾸는 편이 효과적입니다.
공용 Wi-Fi에서는 포털 페이지에서 먼저 네트워크 인증을 완료해야 할 수도 있습니다. Clash에 연결하기 전에 시스템 프록시를 잠시 중지하고 기본 네트워크에 접근할 수 있는지 확인하세요. 인증이 끝난 뒤 클라이언트를 다시 활성화합니다. 기본 네트워크 자체가 연결되지 않았다면 어떤 프로토콜도 작동하지 않습니다. 일부 네트워크는 TCP는 허용하지만 UDP를 제한하므로 Hysteria2와 TUIC이 동시에 작동하지 않는 것은 예상 가능한 현상입니다. 정책 그룹에 안정적인 TCP 노드를 fallback 후보로 넣을 수 있지만 자동 상태 확인은 탐색 주소의 접근성만 보여 주므로 실제 앱으로 검증해야 합니다.
지속 다운로드·영상·실시간 통신
지속 다운로드에서는 장시간 처리량과 변동을 확인해야 합니다. 경로 품질이 좋으면 여러 프로토콜이 대역폭 상한에 가까운 성능을 낼 수 있고, 패킷 손실이 많을 때는 Hysteria2나 TUIC의 혼잡 제어가 더 나을 수 있지만 서버 대역폭은 여전히 절대적인 제한입니다. 영상 재생은 콘텐츠 전송, 버퍼링 정책, 규칙 분할의 영향도 받으므로 한 번의 끊김을 바로 프로토콜 탓으로 돌릴 수 없습니다. 영상 도메인이 예상한 정책 그룹으로 들어가는지, DNS 응답이 합리적인지, 같은 노드가 시간대에 따라 어떻게 달라지는지 확인하세요.
실시간 통신에서는 지터, 꼬리 지연, UDP 전달이 더 중요합니다. 클라이언트와 서버 사이가 QUIC이라고 해서 대상 앱의 모든 UDP 패킷이 예상대로 전달되는 것은 아닙니다. 노드가 UDP를 지원하는지, 클라이언트에서 해당 기능을 활성화했는지, 규칙이 트래픽을 잘못된 출구로 보내지 않는지 확인해야 합니다. 음성 연결은 되지만 주기적으로 끊긴다면 네트워크 전환, UDP 세션 시간 초과, Wi-Fi 신호를 점검하세요. 전혀 연결되지 않는다면 앱이 VPN을 통과하는지, DNS가 정상인지, 서버가 해당 전달 방식을 지원하는지 확인해야 합니다.
저성능 기기·라우터·서버
리소스가 제한된 라우터에서는 프로토콜을 비교하기 전에 규칙 집합 크기, 연결 수, 로그 수준을 먼저 줄이는 것이 좋습니다. SS의 간결한 구현은 기본 선택지로 적합한 경우가 많습니다. TLS나 QUIC 프로토콜이 기대한 처리량을 낼 수 있는지는 기기의 CPU와 암호화 성능에 달려 있습니다. mihomo 커널은 최신 프로토콜, 규칙, DNS 기능이 필요한 환경에 적합하지만 많은 규칙 프로바이더, 복잡한 DNS, 높은 동시성을 활성화하면 메모리 사용량이 늘어납니다. 이 사이트의 Linux 및 커널 다운로드 섹션에서는 서버와 라우터 사용자를 위한 Mihomo 파일을 제공합니다. 일반 데스크톱 사용자는 GUI 클라이언트를 사용하는 편이 좋습니다.
서버 환경에서는 커널을 시스템 서비스로 관리하고, 설정 시작에 실패하면 서비스 로그와 종료 상태를 확인해야 합니다. 커널을 업그레이드하기 전에 현재 설정을 저장하고 먼저 설정 검사를 실행하세요. 최신 프로토콜 노드를 불러오지 못하면 바이너리 아키텍처와 설정 문법을 확인해야 합니다. 서비스는 시작되지만 LAN 기기에서 사용할 수 없다면 수신 주소, 방화벽, 라우팅, LAN 접근 설정을 점검하세요. 프로토콜 선택은 여러 계층 중 하나일 뿐이며 시스템 네트워크 설정 오류는 노드 유형을 바꿔도 사라지지 않습니다.
| 사용 환경 | 우선 테스트 | 대체 항목 유지 | 중점 관찰 항목 |
|---|---|---|---|
| 안정적인 회선과 웹 사용 | SS, Trojan, VMess 또는 VLESS TCP 조합 | 검증된 동종 노드 하나 | 첫 로딩, TLS 오류, 규칙 적용 |
| 지터가 큰 모바일 네트워크 | Hysteria2 또는 TUIC | SS, Trojan 또는 VLESS TCP | 네트워크 전환 복구, UDP 시간 초과, 배터리 |
| 지속 전송 | 회선이 안정적인 후보 프로토콜을 하나씩 실제 테스트 | 서로 다른 회선 또는 전송 유형 | 장시간 처리량, 패킷 손실, CPU |
| 저성능 기기 | 간결한 SS 또는 검증된 경량 설정 | 규칙과 동시성을 줄인 최신 프로토콜 | 단일 코어 사용량, 메모리, 기기 온도 |
실행 가능한 최종 결정 순서
첫째, 구독 프로토콜을 지원하는 최신 클라이언트를 선택합니다. 여러 플랫폼에서 일관된 사용 경험이 필요하다면 Clash Plus부터 시작한 뒤 운영체제와 인터페이스 요구에 따라 Clash Verge Rev, FlClash 등을 비교하세요. 둘째, 커널이 mihomo인지 확인하고 설정이 문법 검사를 통과하도록 합니다. 셋째, 구독에서 TCP 기반 노드와 UDP 기반 노드를 하나씩 선택해 인증, TLS, 전송, 정책 그룹 필드를 확인합니다. 넷째, 자주 사용하는 네트워크에서 웹페이지, 지속 전송, 실시간 앱, 대기 후 복구를 테스트합니다. 다섯째, 로그를 기준으로 실패를 해석, 인증, TLS, DNS, UDP, 규칙, 시스템 프록시 문제로 분류하세요. 단순히 ‘이 프로토콜은 안 된다’고 기록해서는 안 됩니다.
여섯째, 주요 환경에 사용할 기본 노드와 대체 노드를 하나씩 남겨 두세요. 가정용 인터넷에서는 안정적인 Trojan, VLESS, SS를 선택하고 다른 경로를 유지할 수 있습니다. 모바일 네트워크에서는 UDP가 가능할 때 Hysteria2나 TUIC을 사용하되 TCP 노드도 남겨 두세요. 리소스가 제한된 기기에서는 처리 부담을 관리하기 쉽고 설정이 간단한 방식을 우선합니다. 일곱째, 구독이 업데이트되거나 클라이언트가 업그레이드된 뒤 노드 필드와 정책 그룹을 다시 확인하고 이전 결과가 영구적으로 유효하다고 가정하지 마세요. 네트워크, 서버, 커널은 모두 바뀔 수 있으므로 프로토콜 선택은 반복 검증 가능한 방법이어야 합니다.
모든 노드에 연결할 수 없다면 먼저 기본 경로로 돌아가세요. 기기가 정상적으로 인터넷에 연결되는지, 시스템 시간이 정확한지, 구독이 업데이트되는지, 설정이 활성화되었는지, 프록시 모드와 시스템 프록시 상태가 일치하는지 확인한 뒤 첫 번째 명확한 오류 로그를 살펴봅니다. 특정 앱만 이상하다면 해당 앱이 시스템 프록시를 따르는지, TUN이 필요한지, 독립 DNS나 UDP를 사용하는지 확인하세요. 특정 프로토콜 유형만 문제라면 해당 커널의 지원 여부와 필드를 점검합니다. 추가 오류 분기는 FAQ 문제 해결에서 확인할 수 있으며, 정책 그룹의 자동 선택 로직은 url-test·fallback·load-balance 비교를 참고하세요.