- GotaTun, Rust ile yazılmış bir WireGuard uygulaması olup hızlı, verimli ve kararlı VPN bağlantıları hedefler
- Cloudflare’in BoringTun projesinin bir fork’u olarak geliştirildi ve DAITA ile Multihop gibi Mullvad gizlilik özelliklerini entegre ediyor
- Mevcut wireguard-go'da ortaya çıkan çökme sorunlarını çözmek için önce Android sürümüne uygulandı; çökme oranı %0,40 → %0,01 seviyesine düştü
- Rust tabanına geçişle birlikte FFI karmaşıklığı ve Go çalışma zamanı kararsızlığı sorunları ortadan kaldırıldı; bakım yapılabilirlik ve hata ayıklama verimliliği artırıldı
- Mullvad, 2026’da GotaTun’u tüm platformlara genişletmeyi ve güvenlik denetimleri ile performans iyileştirmeleri yapmayı planlıyor
GotaTun’a genel bakış
- GotaTun, Mullvad VPN’in geliştirdiği Rust tabanlı WireGuard® uygulaması olup yüksek hız, kararlılık ve verimlilik hedefler
- Cloudflare’in BoringTun projesi fork edilerek geliştirildi
- Adı, BoringTun ile İsveç’in Göteborg kentindeki Götatunneln tünelinin birleşiminden geliyor
- DAITA ve Multihop gibi Mullvad’ın gizliliği güçlendiren özelliklerini entegre ediyor
- Performansı optimize etmek için Rust’ın güvenli çok iş parçacıklılığı ve zero-copy bellek stratejisi kullanılıyor
- Android sürümünde 2024 Kasım ayının sonunda dağıtıma çıktı; diğer platformların 2026’da gelmesi planlanıyor
Mevcut wireguard-go’nun sınırlamaları
- Mullvad’ın mobil uygulaması yıllardır Go tabanlı wireguard-go kullanıyordu
- Birçok VPN sağlayıcısı da aynı uygulamayı kullanıyor
- 2024 ortasından itibaren Mullvad, DAITA ve Multihop desteği için wireguard-go’yu fork ederek bakımını üstlendi
- Ancak Google Play geliştirici konsolunda bildirilen çökmelerin %85’ten fazlası wireguard-go’dan kaynaklanıyordu
- Bazı sorunlar çözülmüş olsa da önemli bir kısmı hâlâ devam ediyor
- Rust ile Go arasındaki FFI (yabancı işlev arayüzü) kullanımından kaynaklanan karmaşıklık ve kararsızlık vardı
- Go çalışma zamanının davranışı Rust kodu içinden şeffaf değildi ve çökme anında yığın izlerini geri kazanmak zordu
- Bu da hata ayıklama ve uzun vadeli bakım süreçlerini zorlaştırıyordu
Android’deki sonuçlar
- GotaTun’un devreye alınmasından sonra tek bir çökme bile yaşanmadı
- wireguard-go’da görülen tüm çökmeler ortadan kalktı
- Android uygulamasının 2025.10 sürümünden sonra (Kasım sonunda yayımlandı) kullanıcıların hissedilen çökme oranı %0,40 → %0,01’e düştü
- Kullanıcı geri bildirimlerinde hız artışı ve pil kullanımında azalma da bildirildi
Gelecek planları
- 2026 başında üçüncü taraf bir güvenlik denetimi yapılması planlanıyor
- Tüm platformlarda (masaüstü ve iOS dâhil) wireguard-go’nun GotaTun ile değiştirilmesi hedefleniyor
- Performans iyileştirme çalışmaları sürdürülecek
- Mullvad, 2026’yı GotaTun genişlemesi için önemli bir dönüm noktası olarak görüyor
1 yorum
Hacker News yorumları
Pixel 8'de performans artışı bariz şekilde hissedildi
Eskiden wireguard-go 100Mbps'yi bile çıkaramıyordu, GotaTun sürümünde ise 500Mbps'nin üstüne çıkıyor
Ancak yeni bir hata yüzünden derin uyku moduna giremiyor ve pil bir anda 10 kat daha hızlı tükeniyor
Pixel 8 çok daha güçlü; böyle bir sorun varsa büyük ihtimalle Android tarafında bir bug vardır
WireGuard'ı gerçekten çok seviyorum, bu yüzden WrapGuard adında bir projeyi kendim yaptım
Uygulamaları root yetkisi olmadan çalıştırabilmek için Go ile yazdım
Rust'ı pek bilmiyorum ama firmware ya da ağ yazılımları için Rust'ın daha uygun olup olmadığını merak ediyorum
WrapGuard GitHub bağlantısı
Rust, öngörülebilir zamanlama ve güçlü tip sistemi sayesinde daha güvenilir
Ama ağ yazılımlarında Go da fazlasıyla iyi; sonuçta varılan nokta “bildiğin dili kullanmak daha iyidir” oluyor
Apple'ın yeni container tool aracını denemeyi planlıyorum
Örneğin airVPN aynı anda 5 bağlantıya izin veriyor; bunları birleştirip trafiği bir araya getirmek mümkün olsa güzel olurdu
GotaTun'ın Tailscale Android uygulamasına da gelmesi güzel olurdu. Mullvad bağlantısı için Tailscale kullanıyorum
Tailscale ekibi Go tabanlı kütüphaneleri optimize etme konusunda oldukça yetkin ve
2023 Nisan'ında wireguard-go ile 10Gbps performansa ulaşmışlardı
ilgili blog yazısı
Go'nun bellek sayfalama sorunu ve goroutine'lerin stack overflow önleme meselesi ilginçti
GoString'in neden bu kadar çok belleği sayfaladığını merak ediyorum
sorun #6727, sorun #7728 bakılabilir
WireGuard protokolünün kendisi de gelişse iyi olurdu
Şu anda hükümet veya ISP engellerini aşmakta zorlanma gibi bir sınırı var
WireGuard basit bir L3 UDP tüneli olarak tasarlandı
protokolün kendisine gömülü olsa daha iyi olur gibi geliyor
Uygulama ekibine sormak isterdim — neden değişiklikleri BoringTun'a upstream etmediler, merak ediyorum
Birden fazla uygulamanın var olması protokolün kararlılığını ve güvenilirliğini artırır
Kişisel olarak Cloudflare'den çok Mullvad'a güvenirim
Obscura VPN, NepTUN fork'una geçti
NepTUN GitHub bağlantısı
Mullvad'ın neden yeni bir fork başlattığını ve mevcut fork'larla birleştirme planı olup olmadığını merak ediyorum
Mullvad'ın VPN'ler arasında en güvenilir seçenek olduğunu düşünüyorum
Ama insanlar YouTuber'ların indirim kodlarına daha çok ilgi gösteriyor
NordVPN bunu daha iyi aşıyor. Örneğin Imgur'da veya Birleşik Krallık içinden erişimde Mullvad engelleniyor
WireGuard'ın Android'de çekirdek içinde çalıştığını sanıyordum
wireguard-go için çökme nedeni analiz verilerini daha fazla görmek isterdim
Sorunun kütüphanenin kendi bug'ı mı yoksa FFI meselesi mi olduğunu merak ediyorum
MintFlow uygulamamda Go tabanlı proxy kodu kullanmıyorum
Bunun yerine bazı proxy protokollerini Rust ile uyguluyorum
WireGuard için fdio vpp plugin tabanlı bir C uygulaması kullanıyorum
Ben de geçmişte yaklaşık 6 ay vpp ile uğraşmıştım; oldukça ilginçti