Fexyn
Fexyn
All posts

VLESS vs Shadowsocks

Fexyn Team··8 min read

20 Nisan 2012'de "clowwindy" takma adı kullanan Çinli bir geliştirici GitHub'a bir Python script'i push etti. İki gün sonra onu Çinli geliştirici forumu V2EX'te paylaştı. Projenin adı Shadowsocks'tu. Şifrelenmiş bir SOCKS5 proxy'si, tasarımca basit, ve Çin'de milyonlarca insana Great Firewall'u atlamanın bir yolunu verdi.

Üç yıl boyunca Shadowsocks Çin internet sansürünü aşmak için en güvenilir araçtı. Sonra 22 Ağustos 2015'te clowwindy'yi polis ziyaret etti ve repository'yi silmeye zorladı. Son commit mesajı: "Umarım bir gün korkmadan istediğim kodu yazma özgürlüğüne sahip olduğum bir ülkede yaşarım."

Proje fork'lar üzerinden hayatta kaldı. Topluluk onu ileri taşıdı. Ama Great Firewall da gelişmeye devam etti ve 2024'e kadar Çin'in Shadowsocks'a karşı dağıttığı tespit yöntemleri son derece etkili olmuştu. Shadowsocks kötü tasarlandığı için değil. Trafiği rastgele gürültü gibi göstermenin temel yaklaşımının bir tavanı olduğu ortaya çıktığı için.

VLESS Reality, 2023 başlarında Xray-core v1.8.0'da yayımlandı, farklı bir yaklaşım alıyor. Trafiği rastgeleliğe şifrelemek yerine, VPN bağlantılarını gerçek web sitelerine sıradan HTTPS oturumları olarak gizliyor. O ayrım kulağa geleceğinden daha önemli.

Shadowsocks nasıl çalışıyor

Shadowsocks şifrelenmiş bir proxy. Client'ın uzak bir sunucuya bağlanıyor ve aralarındaki tüm trafik AEAD cipher'ları (genelde chacha20-ietf-poly1305 ya da aes-256-gcm) kullanılarak pre-shared bir anahtarla şifreleniyor. Ağ gözlemcisinin bakış açısından bağlantı, rastgele veriye benzeyen byte'lar akışı. Protokol header'ları yok, handshake pattern'i yok, tanımlanabilir yapı yok.

Tasarım hedefi buydu. Trafik tanınabilir hiçbir şeye benzemiyorsa, DPI sistemi onu bilinen bir protokol imzasıyla eşleştiremez. 2012'de bu çalıştı. Çin'in firewall'u esas olarak protokol fingerprint'lerine karşı eşleşiyordu ve hiçbir şeyle eşleşmeyen trafik geçiyordu.

Mimari hafif. Bir Shadowsocks sunucusu minimal konfigürasyonla tek bir binary. Client ekosistemi devasa: ShadowsocksR, Clash, Surge, Quantumult, düzinelerce Android ve iOS uygulaması. Endonezya, Türkiye ya da Mısır gibi orta sansürlü ülkeler için Shadowsocks hâlâ güvenilir çalışıyor çünkü DPI altyapıları onu flag'leyecek kadar sofistike değil.

Ama Çin o ülkeler değil.

Entropi sorunu

Rastgele gürültü hakkında şu var: istatistiksel bir imzası var.

Meşru HTTPS trafiğinin yapısı var. Bir TLS 1.3 handshake cipher suite'leri, extension'lar ve server name indication içeren bir ClientHello ile başlıyor. Sunucu sertifikalarla yanıt veriyor, ki bunlar ASN.1 kodlu X.509 yapıları. Tahmin edilebilir yerlerde düşük entropisi var. Record boyutları yaygın web framework'lerine bağlı pattern'leri izliyor. Sonraki şifrelenmiş uygulama verisinin bile karakteristik dağılımları var.

Shadowsocks AEAD trafiğinin ilk byte'tan neredeyse mükemmel entropisi var. Birlerin sıfırlara oranı her segment boyunca 1:1'e yaklaşıyor. Düşük entropili header yok, yapılı handshake yok, sertifika değişimi yok. Her byte uniform rastgele görünüyor.

O uniformlik sorun. Gerçek bir ağda başka hiçbir şey öyle görünmüyor. HTTPS görmüyor. DNS görmüyor. HTTP/2 görmüyor. Uniform yüksek entropili ve protokol yapısı olmayan bir byte akışı, paradoksal olarak ağ üzerinden gönderebileceğin en ayırt edici şeylerden biri.

Çin bunu çözdü.

Çin Shadowsocks'u nasıl tespit ediyor

GFW Report'ta yayımlanan ve IMC 2020'de sunulan araştırma Çin'in tespit pipeline'ını detayda belgelendi. İki fazda işliyor.

Faz bir: pasif analiz. GFW her yeni bağlantının ilk veri paketinde entropi ölçümü yapıyor. Payload uniform yüksek entropiye sahipse ve bilinen herhangi bir protokolün (TLS, HTTP, SSH, DNS) yapısıyla eşleşmiyorsa, bağlantı aktif probing için flag'leniyor. Bu gerçek zamanlı, backbone router'larda, hat hızında oluyor.

Faz iki: aktif probing. Bir bağlantı flag'lendikten sonra, GFW 12.000'den fazla IP adresi havuzundan probe'lar gönderiyor. Bu probe'lar şüpheli Shadowsocks sunucusuna yedi farklı tip test trafiği gönderiyor: replay edilmiş handshake'ler, kısmi bağlantılar, hatalı istekler ve protokole özgü meydan okumalar. Gerçek bir Shadowsocks sunucusu bu probe'lara meşru bir servisten farklı yanıt veriyor. Bir web sunucusu HTTP hataları döner. SSH sunucusu sürüm banner'ı gönderir. Shadowsocks sunucusu ya çöpü çözüp proxy'liyor ya da bağlantıyı normal protokol hatalarından istatistiksel olarak ayırt edilebilir bir şekilde düşürüyor.

Kombinasyon yıkıcı. Şubat 2026 itibarıyla Shadowsocks'un Çin ağlarında yaklaşık %95 tespit oranı var. CN2'de (China Telecom'un premium backbone'u) Shadowsocks bağlantıları için başarı oranı yaklaşık %76, ama bu sayı GFW'nin uygulamayı arttırdığı politik açıdan hassas dönemlerde düşüyor.

Bunlar teorik rakam değil. Birden fazla Çin ISP'si ve çıkış noktasında crowdsourced testten geliyorlar.

VLESS Reality yaklaşımı

VLESS Reality farklı bir önermeden başlıyor. Trafiği hiçbir şeye benzetmek yerine, spesifik bir şeye benzet. Sıkıcı bir şeye. Her gün milyarlarca bağlantının benzediği bir şeye.

Bir VLESS Reality client sunucuya bağlandığında, gerçek bir TLS 1.3 handshake yapıyor. Sunucu meşru bir web sitesine ("dest" hedefi, sıkça www.microsoft.com ya da www.apple.com gibi bir şey) ulaşıyor ve o sitenin gerçek TLS sertifikasını client'a forward ediyor. Herhangi bir ağ gözlemcisine bağlantı Microsoft ya da Apple ile normal bir HTTPS oturumuyla aynı görünüyor. Server Name Indication eşleşiyor. Sertifika gerçek. TLS fingerprint'i gerçek bir tarayıcıyla eşleşiyor.

VPN verisi Xray-core'un multiplexing'ini kullanarak bu TLS oturumunun içinde geziyor. Dışarıdan, biri Microsoft web sitesini geziyor olmaktan ayırt edilemez.

Aktif probing bu kuruluma karşı başarısız oluyor. GFW bir VLESS Reality sunucusuna probe gönderirse, sunucu hedef web sitesinin yapacağı gibi tam olarak yanıt veriyor, çünkü gerçek sitenin yanıtlarını proxy'liyor. Tespit edilecek davranışsal fark yok.

Sonuç: VLESS Reality bağlantılarının Çin ağlarında %5'in altında tespit oranı var. CN2 rotalarında başarı oranı yaklaşık %98. %76 ile %98 arasındaki o boşluk bazen çalışan bir protokolle güvenilir çalışan bir protokol arasındaki fark.

Kafa kafaya

Performans karakteristikleri tek başına tespit oranlarından daha nüanslı bir hikaye anlatıyor.

Tespit direnci

Shadowsocks ilk pakette entropi analiziyle yakalanıyor. VLESS Reality entropi analizini geçiyor çünkü trafiğinin HTTPS ile aynı istatistiksel profili var. Temel DPI'lı ağlarda (Güneydoğu Asya'nın çoğu, Orta Doğu'nun bazı bölümleri) her iki protokol de iyi çalışıyor. İleri DPI'lı ağlarda (Çin, İran, giderek Rusya) Shadowsocks güvenilmez. VLESS Reality çalışıyor.

Gecikme

Shadowsocks daha hızlı. Shanghai-to-Los Angeles bağlantısı Shadowsocks üzerinden tipik olarak 130-160 ms gecikme gösteriyor. Aynı rota VLESS Reality üzerinden 160-210 ms çalışıyor. Ekstra gecikme TLS handshake overhead'i ve sertifika forwarding adımından geliyor. Çoğu kullanım için 30-50 ms ek gecikme algılanabilir değil. VPN üzerinden rekabetçi oyunlar için (evet, Çin'den insanlar yapıyor) önemli.

CDN routing

Mimari farkın gerçekten gösterildiği yer burası. Shadowsocks CDN altyapısı üzerinden yönlendirilemez. Client ile sunucu arasında ham TCP bağlantısı. ISP'in ile sunucu arasındaki doğrudan yol bloklu ya da throttle'sa, sıkıştın.

VLESS WebSocket ve XHTTP transport'larını destekliyor, yani Cloudflare, AWS CloudFront ya da diğer CDN sağlayıcılarından geçebiliyor. Trafiğin yakındaki bir edge node'dan CDN'e giriyor ve VPN sunucuna en yakın CDN node'dan çıkıyor. Sansürcü Cloudflare'e bağlantı görüyor, ki Cloudflare milyonlarca meşru web sitesini barındırıyor. Cloudflare'i bloklamak internetin yarısını kırmak demek. Çoğu hükümet bunu yapmayacak. (İran 2022'de kısaca denedi. Birkaç gün içinde geri aldılar.)

Kaynak kullanımı

Shadowsocks daha hafif. Bir Shadowsocks sunucusu $5/ay VPS'te binlerce eşzamanlı bağlantıyı işleyebiliyor. VLESS Reality TLS işlemleri için daha fazla CPU ve bağlantı durumu için daha fazla bellek gerektiriyor. Arkadaşlar ve aile için proxy sunucuları çalıştıran operatörler için Shadowsocks host etmek daha ucuz. Düşmanca ağ ortamlarında güvenilirlik gerektiren ticari VPN servisi için ekstra kaynaklar küçük bir maliyet.

Client ekosistemi

Shadowsocks 2012'den beri. Client ekosistemi devasa. Neredeyse her platformdaki her proxy yöneticisi onu destekliyor. Clash, Surge, Quantumult X, v2rayNG, düzinelerce diğeri.

VLESS Reality desteği daha yeni ama yayılıyor. Xray-core referans implementasyonu. v2rayN, v2rayNG, Nekobox, Hiddify ve Streisand hepsi destekliyor. Boşluk kapanıyor, ama Shadowsocks bugün hâlâ daha geniş client uyumluluğuna sahip.

Hangisini ne zaman kullanmalı

Dürüst cevap: nerede olduğuna bağlı.

Shadowsocks doğru seçim düşmanın temel ya da orta DPI'ya sahip olduğunda. Vietnam, Türkiye, Endonezya ya da Mısır gibi ülkeler. Kurulum daha basit, gecikme daha düşük ve sunucu overhead'i daha küçük. Shadowsocks ağında güvenilir çalışıyorsa, daha ağır bir şey kullanmak için sebep yok.

VLESS Reality doğru seçim ileri, devlet seviyesi DPI ile uğraşıyorsan. Çin, İran, 2024 sonrası Rusya ve Shadowsocks bağlantılarının tespit edilip öldürüldüğü herhangi bir ağ. Alternatif %95 oranında başarısız olan bir protokol olduğunda ekstra gecikme ve karmaşıklık değer.

Bazı ağlar arada kalıyor. Bu durumlarda otomatik fallback'li her iki protokole de erişim pratik cevap. Önce hızlı seçeneği dene. Başarısız olursa, daha zor ortamlar için tasarlanana geç.

Bunun Fexyn için anlamı

Fexyn VPN WireGuard ve OpenVPN'in yanında üç protokolden biri olarak Vision flow ile VLESS Reality içeriyor. Otomatik rotasyon motorumuz protokolleri sırayla deniyor ve biri bloklandığında düşüyor. Kısıtlanmamış ağlarda WireGuard'ın hızını alıyorsun. Sansürlü ağlarda client manuel müdahale olmadan VLESS Reality'ye geçiyor.

Shadowsocks dahil etmiyoruz. Kötü bir protokol olduğu için değil. Alanı değiştirdi. Clowwindy'nin işi milyonlarca insana açık internete erişim verdi ve 2015 sonrası projeyi ileri taşıyan topluluk bunun için gerçek itibarı hak ediyor. Ama en zor ortamlarda güvenilir çalışması gereken ticari bir VPN ürünü için, hiçbir şeye benzemek yerine normal trafiğe benzemek olan VLESS Reality yaklaşımı daha güçlü temel.

Shadowsocks 2012 sorununu çözdü. Vision'lı VLESS Reality 2026 sorununu çözüyor. Sansürcüler tespitte iyileşti. Protokoller ayak uydurmak zorunda kaldı. (Bunun neden önemli olduğunun altta yatan kavramı için, sansüre direnç nedir.)

VLESS Reality'nin TLS forwarding'inin teknik detaylarını anlamak istersen, VLESS Reality açıklandı'da tam ayrıntıyı yazdık. WireGuard'la nasıl kıyaslandığı (tamamen farklı bir takas) için VLESS vs WireGuard. Ve DPI sistemleri gerçekte neye bakıyor arka planı için, o yazı tespit tarafını derinde kapsıyor.

VLESS vs Shadowsocks | Fexyn VPN