Hysteria2
Hysteria2, QUIC üzerinde TLS 1.3 ve kendi tıkanıklık denetimiyle çalışır. İşleyişi, kayıplı hatlarda neden hızlı olduğu, UDP sınırları ve Colitu'daki yeri.
Hysteria2, Colitu Adaptive Connect'in her platformda ilk denediği bağlantı modudur. HTTP/3'ün altında çalışan UDP tabanlı taşıma katmanı QUIC üzerine kurulu bir proxy protokolüdür ve paket kaybı yaşanan ağlarda hızı yüksek tutmak için tasarlanmıştır.
Nedir?
Hysteria2, açık kaynak apernet projesi tarafından geliştirilir; belgeleri v2.hysteria.network adresindedir. 2. sürümde protokol, kimlik doğrulama standart bir HTTP/3 alışverişi içinde gerçekleşecek şekilde yeniden tasarlandı; böylece bir Hysteria2 sunucusu sıradan bir web sitesi gibi görünebilir. Protokol üç açık standarda dayanır:
- QUIC (RFC 9000): UDP üzerinde, tek bağlantı içinde çok sayıda bağımsız akış taşıyan şifreli bir taşıma katmanı.
- TLS 1.3 (RFC 8446): QUIC, anahtarları belirlemek ve sunucuyu doğrulamak için her zaman TLS 1.3 el sıkışması kullanır.
- HTTP/3 (RFC 9114): QUIC üzerinde çalışan HTTP sürümü; Hysteria2 bunu kimlik doğrulama adımında kullanır.
Nasıl çalışır?
- Uygulama sunucuya UDP üzerinden bir QUIC bağlantısı açar. QUIC el sıkışması bir TLS 1.3 el sıkışmasıdır ve uygulama sunucunun sertifikasını tıpkı bir tarayıcı gibi doğrular. Colitu sunucularında bu, ACME ile otomatik alınan gerçek bir sertifikadır.
- Bağlantının içinde uygulama, kimlik bilgilerini taşıyan bir HTTP/3 isteği gönderir. Bilgiler geçerliyse sunucu bunu onaylar ve bağlantı bir tünele dönüşür. Geçerli bilgi içermeyen bir istek sıradan bir web isteği gibi işlenir; sunucuyu yoklayan biri normal bir HTTP/3 web sunucusu görür.
- Bu alışveriş sırasında iki taraf, aşağıda anlatılan tıkanıklık denetiminin kullandığı bant genişliği bilgisini de paylaşır.
- Cihazınızdaki her TCP bağlantısı (bir web sayfası, bir indirme) kendi QUIC akışını alır. Akışlar bağımsızdır; birinde kaybolan paket diğerlerini bekletmez.
- Cihazınızdaki UDP trafiği (aramalar, oyunlar, DNS) bir akışa sıkıştırılmak yerine QUIC datagramları olarak taşınır.
Tıkanıklık denetimi: kayıplı hatlarda hız neden korunur?
Klasik TCP tıkanıklık denetimi kaybolan her paketi hattın aşırı yüklendiğinin işareti sayar ve gönderme hızını düşürür. Wi-Fi ve mobil hatlarda ise paketler çoğu zaman başka nedenlerle kaybolur: parazit, baz istasyonları arasında geçiş, zayıf sinyal. TCP gereksiz yere yavaşlar ve özellikle uzun mesafelerde yavaş toparlanır.
Hysteria2'nin Brutal adlı kendi tıkanıklık denetimi vardır. Kullanılabilir bant genişliği biliniyorsa Brutal o hızda gönderir ve kayıpları yavaşlayarak değil yeniden göndererek telafi eder. Bant genişliği belirtilmemişse Hysteria2, her kayba tepki vermek yerine kullanılabilir bant genişliğini tahmin eden BBR'ye geçer. Her iki durumda da kayıplı hatlarda hız, kayba göre yavaşlayan TCP'ye kıyasla daha istikrarlıdır.
Colitu neden kullanıyor?
Yolda VPN ile yaşanan sorunların çoğu engelden değil kötü hattan kaynaklanır: tren, kalabalık bir kafe, ülkeler arası uzun bir güzergâh. TCP tabanlı protokoller orada hız kaybeder; Hysteria2 ise tam bu durum için yapılmıştır. Üstelik gerçek bir kamuflaj sunar: geçerli bir sertifika ve büyük sitelerin zaten kullandığı HTTP/3'e benzeyen bir el sıkışma.
Güçlü olduğu yerler
- Mobil veri. Radyo kaynaklı kayıplar ve değişen sinyal, Brutal'ın kayıp telafisinin ve QUIC'in bağımsız akışlarının iyi başa çıktığı durumlardır.
- Kalabalık ya da uzak Wi-Fi. Parazit, tıkanıklıktan kaynaklanmayan kayıplara yol açar; Hysteria2 hızını yarıya indirmek yerine korur.
- Uzun uluslararası hatlar. Gidiş-dönüş süresi uzun olduğunda TCP her kayıptan sonra uzun süre toparlanır; Hysteria2 ise paketi yeniden gönderir.
- Aramalar ve oyunlar. UDP trafiği datagram olarak taşındığı için kaybolan tek bir paket arkasındakileri geciktirmez.
- QUIC'e izin veren filtreli ağlar. Pasif bir gözlemci geçerli sertifikalı bir siteye giden HTTP/3 görür; kimlik bilgisi olmayan aktif bir yoklama ise bir web sunucusunun yanıtını alır.
Sınırları ve en iyi seçim olmadığı durumlar
- UDP engellenebilir ya da yavaşlatılabilir. Bazı şirket, otel, kampüs ve mobil ağlar UDP'yi veya QUIC'i kısıtlar. O zaman Hysteria2 bağlanamaz ya da yavaş çalışır; bir TCP modu daha iyi seçimdir.
- QUIC ayrıca hedeflenebilir. Bazı filtreleme sistemleri tanımadıkları adreslere giden QUIC'e TCP'den farklı davranır, örneğin onu yavaşlatır. Reality tabanlı modlar orada daha iyi gizlenir.
- Zayıf ortak hatta adalet. Agresif gönderim sizin bağlantınız için iyidir ama çok zayıf bir hatta aynı ağdaki diğer cihazları sıkıştırabilir.
- Giriş sayfaları. Otel ya da kafe Wi-Fi'ında önce portal sayfasında giriş yapmanız gerekir; o zamana kadar hiçbir VPN modu bağlanamaz.
Adaptive Connect nasıl kullanıyor?
Hysteria2; Android, iOS, Windows ve Linux'ta sıranın başındadır. Bağlanır ve gerçek trafik kontrolü geçerse onda kalırsınız. UDP engelliyse, el sıkışma başarısız olursa ya da tünel hiçbir şey taşımazsa uygulama bir sonrakine geçer:
- Android ve iOS'ta VLESS Reality'ye, ardından VLESS XHTTP, Trojan ve Shadowsocks 2022'ye;
- Windows ve Linux'ta ölçülen bağlanma sürelerine göre sıralanmış TCP modlarına.
Hiçbir şey taşımayan bir Hysteria2 denemesi geriye itilir (Windows ve Linux'ta 10 dakika boyunca); böylece sonraki bağlantı onunla vakit kaybetmez.
Güvenlik ve şifreleme
- Şifreleme: anahtarlar QUIC içindeki TLS 1.3 el sıkışmasından gelir; el sıkışmadan sonraki her paket şifreli ve doğrulanmıştır.
- Sunucu doğrulaması: sunucu, ACME ile otomatik alınıp yenilenen, herkese açık bir sertifika otoritesinden gerçek bir sertifika sunar. Uygulama bunu doğrular; aradaki bir saldırgan sunucu kılığına giremez.
- İstemci doğrulaması: her cihazın kendi kimlik bilgileri vardır ve sunucu, herhangi bir trafik taşımadan önce bunları kontrol eder.
- Tek alan adı: Hysteria2'ye de diğer modlar gibi sunucunun alan adıyla bağlanılır; Trojan aynı sertifikayı kullanır.
- Erişim günlüğü yok: Colitu sunucuları ziyaret ettiğiniz siteleri kaydetmez; bkz. güvenlik sayfası.
Kaynaklar
Deneyin
Hysteria2 her Colitu uygulamasında kurulum gerektirmeden çalışır; UDP engellendiğinde uygulama kendiliğinden bir TCP moduna geçer. Colitu'yu indirin ya da sunucu konumlarına bakın.