0Özet
Bazı ağlar VPN protokollerini engeller; bazıları ise bağlantının kurulmasına izin verir, birkaç on saniye sonra trafiği sessizce durdurur. Böyle bir ağda "ping veriyor" ile "trafik taşıyor" aynı şey değildir. Colitu Adaptive Connect 2.0, Colitu uygulamalarının bu soruna karşı kullandığı mekanizmalar bütünüdür: yakınlığı ve gizliliği gözeten sunucu sıralaması, yalnızca cihazda tutulan ağ başına hafıza, anonim sayaçlardan üretilen ağ ipuçları, gerçek trafiğe dayanan bağlantı anı kontrolü, sunucu yedeklemesi, çalışan bağlantının içinde hazır tutulan yedek hat ve her taşımayı kapsayan izleme. Sunucu tarafında 11 arıza enjekte edilen bir saatlik testte trafik yoklamalarının %98,8'i başarılı oldu; kullanılan sunucu 101 saniye kesildiğinde VPN açık kaldı ve kullanıcı yaklaşık 5 saniyelik bir duraklama gördü.
1Sorun ve arıza modeli
Bir VPN uygulamasının ilk işi doğru sunucuya doğru bağlantı moduyla ulaşmaktır. Colitu sunucuları dört protokol ailesinden beş bağlantı modu sunar: Hysteria2 (UDP/QUIC), VLESS Reality, VLESS XHTTP, Trojan ve Shadowsocks 2022 (bkz. protokol merkezi).
Klasik yaklaşım sunucuları ping süresine göre sıralar ve en hızlı yanıt vereni seçer. Ancak ping yalnızca bir ipucudur: bazı ağlarda bir sunucu ping'e yanıt verir ama üzerinden hiç trafik geçmez. Daha zor durum sessiz dondurmadır: bağlantı kurulur, uygulama "Bağlandı" der, bir süre sonra trafik durur ve TCP bağlantısı açık görünmeye devam eder. Kullanıcı için VPN açıktır ama internet yoktur.
Adaptive Connect 2.0'ın hedefi: bağlanırken gerçekten çalışan yolu bulmak, bağlıyken bozulan yolu fark etmek, kullanıcıyı mümkünse VPN'i kapatmadan başka bir yola taşımak ve bunları kullanıcı hakkında bilgi toplamadan yapmak. Aşağıdaki arıza türleri belirli bir ülkeye değil, bazı ağlarda ve bazı mobil operatörlerde görülen davranışlara dayanır.
| Arıza | Ağda ne olur? | Kullanıcı ne görür? |
|---|---|---|
| Protokol engelleme | Bir protokolün bağlantısı hiç kurulmaz | Bağlanılamıyor |
| Sessiz dondurma | Bağlantı kurulur, N saniye sonra trafik durur, TCP açık kalır | "Bağlandı" yazar ama sayfalar açılmaz |
| UDP engelleme | UDP'ye dayanan modlar (Hysteria2) çalışmaz, TCP çalışır | UDP modunda bağlanılamıyor |
| Sunucu kesintisi | Bir sunucuya hiçbir protokolle ulaşılamaz | O sunucuda bağlantı yok |
| Ağ değişimi | Wi-Fi ile mobil veri arasında geçiş, Wi-Fi'nin düşmesi | Kısa kopma; diğer ağda farklı engeller |
Buradan üç varsayım çıkar: "çalışıyor" bilgisi sunucunun değil ağın özelliğidir; bir ağ aynı sunucunun bütün TCP modlarını birlikte dondurabilir, bu yüzden aynı sunucudaki başka bir TCP modu yedek olarak işe yaramaz; cihazın kendi interneti de gidebilir ve bu durumda hiçbir mod suçlanmamalıdır.
2Tasarım
Sunucu sıralaması
Sizin seçtiğiniz konum olduğu gibi kullanılır; Colitu elle yapılan seçimi kendiliğinden değiştirmez. Otomatik modda ("En hızlı sunucu") sıra şöyledir:
| Sıra | Ölçüt |
|---|---|
| 1 | Şu an bağlı olduğunuz ağda en son çalışan sunucu (24 saat hatırlanır) |
| 2 | En düşük ölçülen ping; 10 dakikadan eski ya da başka bir ağda ölçülen ping sayılmaz |
| 3 | Başka ülkelerdeki sunucular kendi ülkenizdekilerden önce, yakın ülkeler önce (henüz ping yoksa da bu sıra kullanılır) |
| 4 | Ping'e yanıt vermeyen sunucu sona gider |
| 5 | Bu ağda son 30 dakikada başarısız olan sunucu en sona gider |
Sunucu listesindeki "Önerilen" her zaman otomatik modun bağlanacağı sunucuyu gösterir. Gizlilik: listeyi sıralamak için panel, ülkenizi ve internet sağlayıcınızın ağını yalnızca o isteğin IP adresinden çıkarır. Hiçbir şey saklanmaz. İstek VPN üzerinden geldiğinde panel bunları bilemez; uygulama en son öğrendiği değerleri kullanır.
Ağ başına hafıza
"Ağ", bağlantı türü (Wi-Fi, mobil veri, Ethernet) ile internet sağlayıcınızın ağının birleşimidir; bu yüzden ev Wi-Fi'si ile mobil veri ayrı hatırlanır. Hafıza yalnızca cihazda tutulur: en son çalışan sunucu (24 saat), sunucu başına en son çalışan mod (24 saat), trafik taşımayan mod ("donma işareti", 6 saat) ve her şeyin başarısız olduğu sunucu (30 dakika). Eski kayıtlar silinir, en fazla 200 kayıt tutulur. Böylece mobil veride engellenen bir mod evdeki Wi-Fi'de yine önce denenir.
Kimseyi tanımlamadan ağ ipuçları
Bir cihazın hafızası yalnızca o cihazın deneyimini bilir. Ağ ipuçları, aynı ağdaki diğer cihazların gördüklerini paylaşır:
- İmzalı ağ belirteci. Panel uygulamaya ülkeyi ve ağ numarasını (ASN) içeren, HMAC ile imzalı ve 48 saat geçerli bir belirteç verir. Uygulama protokol başına sonuçları bu belirteçle bildirir; isteğin IP adresi gözlem için hiç kullanılmaz (bağlıyken zaten bir VPN sunucusudur).
- Anonim saatlik sayaçlar. Panel yalnızca ülke, ağ ve protokol başına saatlik sayaçlar tutar: başarılar, başarısızlıklar ve farklı cihaz sayısı. Cihazlar saat sonunda silinen, saate özgü anahtarlı takma adlarla sayılır; sayılar 7 gün tutulur.
- Eşikler. Bir protokol, 24 saatte en az 5 cihaz denediğinde başarı %20'nin altındaysa o ağda engelli sayılır; veri azsa ülke düzeyi kullanılır (en az 20 cihaz, %10'un altında). Sunulan protokollerin hepsi hiçbir zaman engelli işaretlenmez.
- Kullanım. Uygulama engelli protokolleri en sona bırakır; bu cihazda bu ağda son 24 saatte çalışmışsa bırakmaz.
Sağlık kontrolü ve doğrulama yolu
Bir mod ancak gerçek trafik geçtiğinde çalışıyor sayılır. Kontrol, tünel üzerinden yaygın bağlantı testi adreslerine (Cloudflare, Google, Microsoft) sorar, Colitu'nun kendi sunucularına değil; mod başına yaklaşık 4–6 saniye sürer. Bir modu suçlamadan önce uygulama cihazın internete bağlı olup olmadığını kontrol eder. Zaman bütçesi: mod başına yaklaşık 8 saniye, sunucu başına yaklaşık 20 saniye, bir bağlantının tamamı için en fazla yaklaşık 45 saniye; çoğu zaman birkaç saniye yeter.
Doğrulama yolu. VPN çekirdeği her başladığında, yalnızca cihazın kendisinden erişilebilen özel bir kontrol girişi (rastgele port ve kimlik bilgileri) ilk kuralla doğrudan ana yola yönlendirilir. Böylece bağlantı anı kontrolü yalnızca ana yolu ölçer: bozuk bir ana yol yedeğin arkasına saklanamaz ve bir sonraki bağlantıda ondan kaçınılır.
Sunucu yedeklemesi
Otomatik modda bir sunucunun hiçbir modu kontrolü geçemezse uygulama listedeki bir sonraki sunucuya geçer; bir bağlantıda en fazla 3 sunucu denenir ve "Başka sunucu deneniyor…" gösterilir. Başarısız sunucu o ağda 30 dakika arkada kalır. Kill switch açıkken Windows ve Linux aynı sunucuyu tekrar denemek yerine listede aşağı iner. Kendi seçtiğiniz sunucuda bütün modlar başarısız olursa hata mesajı tek dokunuşla "En hızlı sunucuyu dene" seçeneği sunar.
Yedek hat
Bağlıyken uygulama, çalışan bağlantının içinde ikinci bir yolu hazır tutar. Trafik bir dengeleyiciden geçer: ana yol sağlıklıyken her şey onu kullanır; çalışmayı bırakırsa yeni trafik kendiliğinden yedeğe geçer. VPN açık kalır ve "yeniden bağlanılıyor" ekranı çıkmaz. Geçiş uygulama ekranında değil bağlantının kendisinde olduğu için arka planda da çalışır. Yardım Merkezi'nde ayrıntılar: Yedek hat.
| Durum | Yedek |
|---|---|
| Otomatik mod, bu ağda kanıtlanmış bir taşıma var (son 24 saatte herhangi bir sunucuda çalıştı) | Sıralamadaki bir sonraki sunucuda o taşıma |
| Otomatik mod, henüz kanıtlanmış taşıma yok | Bir sonraki sunucuda diğer aile (UDP ↔ TCP) |
| Sunucu elle seçilmiş | Aynı sunucu, diğer aile; donmuş modlar atlanır, Shadowsocks en son; konumunuz değişmez |
| Multihop rotası ya da tek modlu sunucu | Yedek yok |
Bu ağda başarısız olan modlar ve sunucular hiçbir zaman yedek olmaz. Yedek bağlıyken TCP yolları 10 saniyelik TCP kullanıcı zaman aşımı (RFC 5482) kullanır; böylece ölü bağlantılar asılı kalmak yerine kapanır. Algılama ve geçiş bilgisayarlarda genellikle yaklaşık 8 saniye, telefonlarda ortalama yaklaşık 10–13 saniye sürer (en kötü durumda yaklaşık 23 saniye). Ana yolun kontrolü telefonlarda saatte yaklaşık 0,3–2 MB, bilgisayarlarda saatte 4–7 MB harcar; yedeğin kendisi yalnızca kullanıldığında bağlanır. Yedek de kendi kontrol girişi üzerinden yaklaşık dakikada bir kontrol edilir; ölü bir yedek yalnızca tünel boştayken değiştirilir, asla bir görüşme sırasında değil. Yedek hat varsayılan olarak açıktır ve Gelişmiş modda kapatılabilir (Basit ve Gelişmiş mod).
İzleme ve yedeği gözeten kural
Bağlıyken her taşıma izlenir (Adaptive Connect 1.x yalnızca Hysteria2'yi izliyordu): ilk 90 saniye boyunca 5 saniyede bir, sonra 30 saniyede bir. Cihaz çevrimiçiyken art arda üç başarısızlık, ana yolun ölü sayılması demektir. Yedek bağlıyken izleme, yalnızca ana yolu ve normal yolu ayrı ayrı kontrol eder:
| Ana yol | Normal yol (yedek dahil) | Sonuç |
|---|---|---|
| Çalışıyor | Çalışıyor | Hiçbir şey olmaz |
| Ölü | Çalışıyor: trafiği yedek taşıyor | Yeniden bağlanma yok; ana yol işaretlenir, bir sonraki bağlantıda yedeğin taşıması ve sunucusu öne geçer |
| Ölü | Ölü | Yeniden bağlanma |
Telefonlar beklenmedik bir kopmadan sonra (yaklaşık 2, 5 ve 15 saniye sonra, ardından hata gösterilir) ve ağ geri geldiğinde kendiliğinden yeniden bağlanır; bağlantıyı kendiniz kestiğinizde, oturumu kapattığınızda ya da plan veya cihaz duraklatıldığında bağlanmaz.
Ağı kilitleyemeyen donma işaretleri
Yanlış donma işaretleri bir ağı denenecek hiçbir şey kalmadan bırakabilirdi. İki kural bunu önler: işaretler sunulan taşımalardan en fazla birini bırakacaksa o tur için yok sayılır; her şeyin başarısız olduğu bir turda bulunan işaretler yalnızca 10 dakika geçerlidir. 6 saatlik süre yalnızca ardından aynı ağda başka bir taşıma trafik taşıdığında, yani sorun gerçekten o moddaysa uygulanır.
Paralel bağlanma
Bağlanırken en iyi iki aday aynı anda kontrol edilir ve trafiği ilk taşıyan kazanır; bu, RFC 8305'teki Happy Eyeballs fikrini izler.
Sunucu yükü
Her sunucu kaç kişinin bağlı olduğunu bildirir; böylece dolu bir sunucu seçilmez ve yüke göre dağıtım gerçek sayılarla yapılır. Yalnızca eksiksiz raporlar kullanılır; rapor eksikse önceki değer korunur.
3Değerlendirme
Yöntem
| Öğe | Ayrıntı |
|---|---|
| Cihaz | Bir Android 11 telefon |
| Ağ | Derin paket incelemesi (DPI) yapılan tek bir ev Wi-Fi ağı |
| Tarihler | 9–10 Ekim 2026 |
| Arıza enjeksiyonu | Sunucuda, yalnızca bu istemcinin paketleri düşürülerek: tüm sunucularda tek bir protokol ya da tek bir sunucunun tamamı |
| Güvenlik | Kurallar etiketlenir ve kendini silen zamanlayıcılarla kaldırılır; başka hiçbir kullanıcıya dokunulmaz |
| Trafik yoklaması | 5–10 saniyede bir tünel üzerinden bir HTTP isteği |
Cihaz deneyleri
Sıralama. Kullanıcının kendi ülkesindeki bir sunucu en düşük ping'e (13–15 ms) sahipti ama doğru şekilde yakındaki bir yabancı sunucunun (16–17 ms) arkasına yerleştirildi. Adaptive Connect 1.x'te liste veritabanı sırasıyla geliyordu ve başka bir kıtadaki yaklaşık 222 ms'lik bir sunucu "Önerilen" olarak gösteriliyordu.
Sessiz dondurma. Bu ağda yakındaki bir sunucuya giden bütün TCP taşımaları (VLESS Reality, VLESS XHTTP, Trojan) bağlandıktan yaklaşık 30–50 saniye sonra dondu; Hysteria2 çalışmaya devam etti. Yalnızca Hysteria2'yi kapsayan eski izleme, trafik yokken "Bağlandı" göstermeye devam etti. Her taşımayı kapsayan yeni izleme donmayı fark etti ve yaklaşık 1,3 saniyede taşımayı değiştirdi.
| # | Yapılandırma | Sonuç |
|---|---|---|
| 1 | Aynı sunucu, yedek Trojan, Hysteria2 kesildi | Yedek +12 sn'de trafik taşıdı; ardından eski izleme bağlantıyı yeniden başlattı ve bozdu. Yedeği gözeten kuralla düzeltildi |
| 2 | Aynı sunucu, düzeltmeden sonra | Bu ağda o sunucuda hiçbir TCP yolu ayakta kalmadı; engel bittikten yaklaşık 48 sn sonra toparlandı, çünkü engel sırasında çalışan bir yol yoktu |
| 3 | Otomatik mod, bir sonraki sunucuda "diğer aile" yedek (Trojan) | Trojan da dondu; kanıtlanmış taşıma kuralına yol açtı |
| 4 | Otomatik mod, kanıtlanmış taşıma: A sunucusunda Hysteria2, B sunucusunda yedek Hysteria2, ana yol 120 sn kesildi | +5 sn'de bir başarısız yoklama, +10 sn'den sonuna kadar trafik, yeniden bağlanma yok, VPN açık kaldı. Kesinti ≈ 5–10 sn |
Bir saatlik arıza enjeksiyonu testi
10 Ekim 2026'da 2.0'ın bütün mekanizmalarını içeren bir derleme, aynı telefonda ve ağda otomatik modda 60 dakika çalıştı. Dahili bir arıza laboratuvarı aracı 8 sunucuda 11 arızayı rastgele sırayla, 2–5 dakika arayla ve her biri 60–120 saniye sürecek şekilde enjekte etti: ya bu istemci için her sunucuda tek bir protokol kesildi ya da tek bir sunucu tamamen kesildi. Tünel üzerinden 5 saniyede bir HTTP yoklaması gönderildi. 750 yoklamanın 741'i başarılı oldu (%98,8).
| # | Arıza | Süre | En uzun kesinti | Arıza bittikten sonra trafiğin dönmesi |
|---|---|---|---|---|
| 1 | Tüm sunucularda VLESS Reality kesildi | 83 sn | 1 sn | |
| 2 | Almanya'daki bir sunucu tamamen kesildi | 95 sn | 3 sn | |
| 3 | Kullanılan sunucu (ana yol) tamamen kesildi | 101 sn | 5 sn | |
| 4 | Tüm sunucularda Shadowsocks kesildi | 102 sn | 4 sn | |
| 5 | Tüm sunucularda VLESS Reality kesildi | 86 sn | 4 sn | |
| 6 | Finlandiya'daki bir sunucu tamamen kesildi | 65 sn | 1 sn | |
| 7 | Tüm sunucularda Shadowsocks kesildi | 92 sn | 2 sn | |
| 8 | Tüm sunucularda Trojan kesildi | 65 sn | 1 sn | |
| 9 | Estonya'daki bir sunucu tamamen kesildi | 120 sn | 0 sn | |
| 10 | Finlandiya'daki başka bir sunucu tamamen kesildi | 95 sn | 1 sn | |
| 11 | Tüm sunucularda Hysteria2 kesildi | 61 sn | 2 sn |
- 0 sn · kullanılan sunucu kesildi
- ~5 sn duraklama
- Trafik yedek hattan geçiyor
- 101 sn · arıza kaldırıldı
VPN açık kalır; yeniden bağlanma yok
Sonuçların yorumu. 3. arıza kilit durumdur: kullanılan sunucu 101 saniye ortadan kalktı, kullanıcı yaklaşık 5 saniyelik bir duraklama gördü ve VPN baştan sona açık kaldı. Kullanılmayan protokollerdeki ve sunuculardaki arızalar beklendiği gibi 0 saniye gösterir: başka yerdeki bir arıza oturumu bozmaz. 11. arızada bu ağda bütün TCP protokolleri zaten DPI tarafından donduruluyordu; Hysteria2 her yerde kesilince çalışan hiçbir protokol kalmadı ve trafik arıza bittikten 2 saniye sonra geri geldi.
4Sınırlar
- Dar değerlendirme. Tek cihaz, tek ağ, bir saat; arızalar gerçek bir filtre tarafından değil sunucuda enjekte edildi. Sonuçlar her ağa genellenemez. Wi-Fi ile mobil veri arasındaki geçiş ve iOS, Windows ve Linux cihazlarında ayrı ölçümler henüz yapılmadı.
- Açık TCP akışları. Yedeğe geçiş sırasında görüşmeler kısa bir takılmadan sonra devam eder, sayfalar ve mesajlar kendiliğinden yeniden bağlanır; ama o anda süren büyük bir indirme yeniden başlayabilir.
- Çıkış IP rotasyonu tek bir sunucuda tek bir protokolü zorunlu kılar ve yedek hattı kapatır; ölçülen ağda bu, tekrarlanan donmalar demekti.
- Multihop rotalarında ve tek modlu sunucularda yedek yok.
- Eskimiş ağ anahtarı. VPN açıkken panel isteğin hangi ağdan geldiğini göremez; uygulama, liste VPN kapalıyken yeniden alınana kadar en son öğrendiği ağı kullanır.
5Gelecek çalışma: CSL oturum katmanı
Colitu Session Layer (CSL), yedek hattın üzerine planlanan taslak bir oturum katmanıdır; bir tarih ya da sonuç vaat edilmez. Bugün yedek hat yeni bağlantıları taşır; TCP üzerinden süren açık indirmeler kopabilir. CSL ile uygulama, altındaki tünel değiştiğinde de ayakta kalan tek bir oturum açacak. Laboratuvar prototipinde en uzun duraklama 0,08–1,75 saniye oldu ve indirmeler kesintisiz devam etti. Bir CSL oturumu tek bir sunucuya bağlıdır; bu yüzden CSL sunucu içindeki sorunları (ağ değişimi, engellenen protokol, kısa kopma) çözer, sunucunun çökmesine karşı yine yedek hat devrededir; ikisi birlikte çalışır. Gelişmiş modda isteğe bağlı "Kesintisiz oturum (beta)" olarak gelecek.
6Sonuç
Bir yolun çalışıp çalışmadığına ping değil gerçek trafik karar verir ve bu cevap ağa bağlıdır. Yakınlığı ve gizliliği gözeten sıralama, cihazda tutulan hafıza, anonim ağ ipuçları ve yalnızca ana yolu ölçen kontrol doğru yolu bulur; yedek hat ve onu bilen izleme, kaybolan bir sunucuyu birkaç saniyelik bir duraklamaya çevirir.
·Kaynaklar
- RFC 8305, Happy Eyeballs Version 2: Better Connectivity Using Concurrency.
- RFC 9000, QUIC: A UDP-Based Multiplexed and Secure Transport.
- RFC 5482, TCP User Timeout Option.
- Hysteria2 proje belgeleri.
- Xray-core proje belgeleri.