· 프로토콜 해설 · 약 9분

Hysteria2 사용법과 특징: QUIC은 왜 빠르며 어떤 네트워크에 적합할까요?

QUIC 전송과 혼잡 제어를 바탕으로 Hysteria2의 고손실·고지연 네트워크 성능, 적합한 환경과 설정 방법을 설명합니다.

핵심 내용

Hysteria2는 UDP 연결이 가능한 환경에서 QUIC을 기반으로 동작하며, 고지연·무작위 패킷 손실 링크에서 처리량을 확인해 볼 수 있습니다. 다만 모든 네트워크에서 더 빠르다고 보장되지는 않습니다. 이용 중인 서비스 제공업체에서 연결 정보를 받은 사용자를 대상으로 전송 원리, 네트워크 제약, Shadowrocket 설정과 비교 테스트 방법을 설명해 프로토콜 문제와 규칙 문제, 회선 병목을 구분하도록 돕습니다.

QUIC의 달라진 점

Shadowrocket에서 Hysteria2는 프록시 프로토콜 옵션으로, 규칙 모드나 속도 향상 스위치가 아닙니다. UDP 기반 QUIC으로 암호화 연결을 만든 뒤 전달할 요청을 전송합니다. 여기서 UDP는 클라이언트와 서버 사이의 외부 전송을 뜻하며, 브라우저의 TCP 요청이 신뢰성을 잃는다는 의미는 아닙니다.

QUIC은 프로토콜 계층에서 확인 응답, 패킷 손실 감지와 재전송을 처리하고 TLS 1.3으로 보안 핸드셰이크를 수행합니다. 하나의 연결에서 서로 독립적인 신뢰성 있는 스트림을 여러 개 전송할 수 있습니다. 한 스트림의 데이터가 누락되어도 다른 스트림은 일반적으로 같은 전송 계층의 바이트 순서가 복구될 때까지 기다릴 필요가 없습니다. 이로써 스트림 간 헤드 오브 라인 블로킹을 줄일 수 있지만, 각 스트림 안에서는 데이터가 순서대로 전달되어야 하며 공유 회선의 혼잡은 다른 스트림에도 영향을 줍니다.

UDP
Hysteria2의 외부 전송에는 UDP 통신이 허용되는 네트워크가 필요합니다
TLS 1.3
QUIC에서 사용하는 보안 핸드셰이크
443/UDP
구성에 사용할 수 있는 포트 예시이며, 고정 포트는 아닙니다

포트는 서비스 제공업체가 안내한 값으로 설정해야 합니다. 어떤 네트워크에서 443/TCP HTTPS 웹사이트에 접속할 수 있다고 해서 443/UDP도 허용된다고 볼 수는 없습니다. 두 전송 프로토콜에는 서로 다른 방화벽 규칙이 적용될 수 있으므로, “웹은 열리는데 Hysteria2 핸드셰이크가 시간 초과되는” 상황은 모순이 아닙니다.

패킷 손실이 많은 환경에서 더 빠를 수 있는 이유

성능은 QUIC뿐 아니라 Hysteria2의 혼잡 제어와 대역폭 매개변수 협상에도 좌우됩니다. 기존의 손실 기반 혼잡 제어는 무작위 패킷 손실을 혼잡으로 판단해 전송 속도를 낮출 수 있습니다. 무선 간섭처럼 혼잡과 무관한 손실이 발생하는 환경에서는 Hysteria2의 대역폭 추정과 전송 제어가 더 높은 처리량을 유지할 가능성이 있습니다. 실제 동작은 클라이언트와 서버 설정, 양측의 협상 결과에 따라 달라집니다.

패킷 손실을 모두 무시한다는 뜻은 아닙니다. 회선이 포화되어 손실이 발생하는 상황에서 데이터를 더 보내면 대기열, 재전송과 지연이 늘어날 수 있습니다. 지연이 큰 네트워크에서는 회선을 충분히 활용하려면 더 많은 데이터가 전송 중이어야 하지만, 프로토콜이 물리적 거리를 줄이거나 서버 출구 용량 및 요금제 속도 제한을 넘어설 수는 없습니다. 파일 다운로드가 빨라져도 게임 왕복 지연 시간이 함께 줄어드는 것은 아닙니다.

결론: UDP 연결을 확인한 뒤 대역폭을 조정하세요

다른 네트워크로 바꾸자마자 연결된다면 먼저 기존 네트워크에서 UDP가 통하는지 확인하세요. 연결은 안정적이지만 부하가 걸릴 때 지연이 크게 늘어난다면 대역폭 목표를 낮춰 다시 테스트하세요. 인증서 검증을 끄거나 비밀번호를 반복해서 바꾸는 것은 해결책이 아닙니다.

테스트해 볼 만한 네트워크 환경

프로토콜의 적합성을 판단할 때는 연결 성공률, 지속 처리량과 응답 지연을 함께 살펴야 합니다. 지역 간 연결, 이동통신망 또는 무선 환경에서 무작위 패킷 손실이 발생한다면 Hysteria2를 시험해 볼 수 있습니다. 반면 지연과 패킷 손실이 적고 출구 회선이 이미 포화된 환경에서는 바꿔도 뚜렷한 이점이 없을 수 있습니다. UDP를 제한하는 게스트 네트워크에서는 재시도 횟수를 늘리기보다 먼저 네트워크 정책을 확인하세요.

네트워크 증상판단 기준다음 단계
지연이 높고 무작위 패킷 손실이 발생함전송 방식과 혼잡 제어의 차이가 나타날 수 있음서버와 대상 파일을 고정하고 처리량과 지연을 반복 측정
패킷 손실이 적고 기존 연결이 회선 한도에 가까움프로토콜이 주된 병목은 아닐 수 있음안정적인 설정을 유지하고 서버 출구 용량과 로컬 대역폭 확인
Wi-Fi에서는 시간 초과되지만 이동통신망에서는 연결됨기존 네트워크가 UDP 또는 특정 목적지 포트를 제한할 가능성네트워크 정책을 확인하고 서비스 제공업체에 서버 상태 문의
연결은 되지만 다운로드 중 웹페이지가 눈에 띄게 느려짐대기열 지연이 발생했거나 전송 목표가 지나치게 높을 수 있음대역폭 매개변수를 낮추고 부하 중 지연이 줄어드는지 확인
모든 네트워크에서 인증서 또는 인증 오류가 표시됨회선 성능보다 설정 매개변수를 먼저 확인SNI, 인증서 도메인, 기기 시간과 인증 정보 확인

한 번의 지연 시간 측정만으로 프로토콜의 우열을 판단하지 마세요. 짧은 테스트는 측정 시점의 연결 가능 여부와 응답 시간을 주로 보여 주며, 연속 전송의 안정성을 나타내지는 않습니다. 테스트 중에는 다른 기기의 대용량 작업을 멈추고 네트워크 유형을 기록하세요. 그렇지 않으면 Wi-Fi와 이동통신망의 차이를 프로토콜 차이로 잘못 판단할 수 있습니다.

Shadowrocket 설정 방법

아래는 iPhone / iPad의 Home 화면을 기준으로 설명합니다. 다른 플랫폼에서는 실제 화면을 확인하세요. 서버, 구독 링크, 인증 정보, 서버 도메인과 포트는 이용 중인 서비스 제공업체에서 받아야 합니다. Hysteria2와 Hysteria는 매개변수와 프로토콜이 서로 다르므로 Type을 선택할 때 이름을 확인하세요.

  1. 매개변수 확인

    프로토콜이 Hysteria2인지 확인하고 Server, Port, Password와 서비스 제공업체가 지정한 SNI, 대역폭 및 난독화 매개변수를 준비하세요. 포트는 443일 수도 있지만, 예시를 실제 포트로 간주해서는 안 됩니다.

  2. 유형 선택

    Home → 오른쪽 상단 “+” → Type → Hysteria2로 이동한 다음 연결 정보를 입력하세요. TLS를 사용한다는 이유만으로 Type을 Trojan이나 다른 프로토콜로 선택하지 마세요.

  3. 인증 정보 확인

    서비스 제공업체가 안내한 인증 값을 빠짐없이 Password에 입력하세요. 인증 값에 구분자가 포함되어 있다면 원래 형식을 유지하고 임의로 사용자 이름과 비밀번호로 나누지 마세요. 구독 링크의 token을 연결 비밀번호로 사용해서도 안 됩니다.

  4. 보안 설정 확인

    SNI는 서버 인증서 및 서비스 제공업체의 안내와 일치해야 합니다. Server에 IP 주소를 입력하더라도 SNI에는 도메인을 입력해야 할 수 있습니다. 인증서 검증을 유지하세요. 인증서 오류가 발생하면 먼저 도메인, 기기 시간과 인증서 체인을 확인하세요.

  5. 저장 후 테스트

    저장한 뒤 Home으로 돌아가 해당 항목을 선택하고 Global Routing → Proxy에서 짧게 비교 테스트하세요. 선택한 연결을 통해 요청이 전달되는지 확인한 뒤 Global Routing → Config로 돌아가 일상적인 규칙 기반 라우팅을 확인하세요.

구독이 있다면 Home → “+” → Type → Subscribe로 이동해 서비스 제공업체에서 받은 구독 링크를 입력하세요. 저장한 뒤 구독을 업데이트하고 가져온 항목의 Type을 확인합니다. 구독은 설정을 배포하는 방식일 뿐 서버가 온라인 상태임을 보장하지 않습니다. 구독 업데이트 실패와 Hysteria2 항목의 연결 실패는 서로 다른 문제이므로 구독 주소와 연결 매개변수를 각각 확인하세요.

규칙 모드가 테스트에 미치는 영향

Hysteria2는 연결의 전송 방식을 결정하고, Global Routing은 어떤 요청을 프록시로 보낼지 결정합니다. 두 기능은 서로 다른 계층에 있습니다. 항목이 연결되더라도 모든 웹사이트가 해당 연결을 사용하는 것은 아닙니다. 아래 내용은 Shadowrocket의 라우팅 동작을 비교하며 프로토콜 성능 순위를 매기는 것이 아닙니다.

Config

권장

현재 활성화된 Config의 규칙과 정책에 따라 요청을 처리합니다. Home에서 선택한 상태만 보는 대신 규칙 순서, 일치 결과와 정책에서 실제로 선택된 항목을 확인하세요.

적합한 용도: 연결 테스트 후 일상적인 규칙 기반 라우팅

Proxy

Shadowrocket이 처리하는 요청을 프록시로 보내 테스트에 방해가 되는 일반 라우팅 규칙을 줄입니다. 기기의 모든 시스템 트래픽이 반드시 프록시를 통과하도록 보장하는 기능은 아닙니다.

적합한 용도: Hysteria2 연결과 대상 사이트 접속 여부를 잠시 확인

Direct

처리 대상 요청을 직접 연결해 동일한 대상에 대한 로컬 네트워크 기준값으로 삼을 수 있습니다. 이 상태에서 대상이 열리더라도 Hysteria2가 적용되었다는 뜻은 아닙니다.

적합한 용도: 로컬 네트워크의 연결 가능 여부와 직접 연결 성능 비교

Global Routing의 Scene은 장면별 설정에 따라 라우팅 동작을 결정하며, 네 번째 프록시 프로토콜이 아닙니다. 문제를 확인할 때는 현재 장면에 설정된 실제 동작부터 파악하세요. Settings → On Demand는 조건에 따라 연결을 시작하도록 관리하는 기능입니다. Hysteria2를 선택하거나 규칙 기반 라우팅을 대신하지 않습니다. 테스트 중 연결 상태가 저절로 바뀐다면 On Demand의 실행 조건도 확인하세요.

DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

이 예시는 규칙 문법을 보여 주기 위한 것으로, 완전한 Config가 아닙니다. DOMAIN-SUFFIX는 도메인 접미사, IP-CIDR은 IP 주소 대역, GEOIP는 IP 주소의 지역을 기준으로 일치 항목을 찾고 FINAL은 마지막 대체 규칙으로 사용됩니다. 일반적으로 규칙을 순서대로 확인합니다. 여기서 PROXY는 정책을 뜻하며 Hysteria2 프로토콜 이름이 아닙니다. 실제 사용할 연결은 정책 선택에 따라 달라집니다. 요청 기록에서 대상, 일치한 규칙과 적용된 정책을 확인해 직접 연결 테스트를 프로토콜 테스트로 오인하지 않도록 하세요.

재현 가능한 테스트로 문제 찾기

유효한 비교 테스트를 하려면 클라이언트 기기, 서버, 대상 리소스와 테스트 시간을 동일하게 유지해야 합니다. 서비스 제공업체가 비교할 연결 방식을 제공한다면 가능한 한 같은 출구를 사용하세요. 출구가 다르면 속도 차이만으로 어느 프로토콜이 더 낫다고 판단할 수 없습니다. 아래 시간과 횟수는 테스트 방법을 위한 권장 사항이며 성능 보장이나 실측 결과가 아닙니다.

서비스 제공업체에 문의할 때는 네트워크 유형, 오류가 발생한 단계와 시간대, 민감 정보를 가린 로그를 전달하면 됩니다. 구독 링크 전체 주소, Password 또는 token이 포함된 링크를 공개하지 마세요. 같은 설정이 특정 네트워크에서만 실패한다면 해당 네트워크와 정상 작동하는 네트워크의 비교 결과를 함께 전달하는 편이 모든 항목을 반복해서 바꾸는 것보다 원인 파악에 도움이 됩니다.

결론: 안정적인 처리량과 부하 중 지연을 함께 확인하세요

반복 테스트에서 처리량이 개선되고 연결 끊김은 늘지 않으며 응답 지연도 허용 가능한 경우에만 새 매개변수를 유지하세요. 순간 최고 속도만 높아지고 웹페이지가 더 느려진다면 기존 설정으로 되돌린 뒤 회선 병목을 계속 확인하세요.

Shadowrocket 공식 다운로드