4 puan yazan GN⁺ 2025-12-20 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-12-20
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

    • Eski Samsung A5'imde wireguard'ı 7/24 açık tutsam bile pil uzun gidiyor
      Pixel 8 çok daha güçlü; böyle bir sorun varsa büyük ihtimalle Android tarafında bir bug vardır
    • Ben de ZeroTier ve MizuDroid'de benzer bir durum gördüm. Android ağ yığınıyla ilgili bir sorun gibi görünüyor
    • Raspberry Pi 5'te de aynı durum vardı. Muhtemelen ARM optimizasyonu eksikliği yüzünden olabilir
    • MTU 1320 sorunu olabilir
    • Mullvad uygulamasının Pixel 6a'da bir anda 1 saniyede bağlanmaya başlamasının nedeni buymuş. Eskiden 5~10 saniye sürüyordu
  • 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ı

    • Firmware'in GC olmayan bir ortamda çalışması gerektiği için Rust daha uygun
      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
    • Sonuçta “bildiğin şeytanı seç” denildiği gibi, bildiğin dili kullanmak daha gerçekçi
    • Go'da FFI zor olduğu için gömülü kütüphane olarak kullanmada Rust daha avantajlı
    • Şifreleme gerektirmeyen yerel container ağları için hangisinin daha iyi olacağını düşünüyorum
      Apple'ın yeni container tool aracını denemeyi planlıyorum
    • Birden fazla VPN tünelini tek bir tünelde birleştiren bir özellik olsa iyi olurdu
      Ö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

    • GotaTun Mullvad'a özgü bir özellik, bu yüzden Tailscale'in benimseme ihtimali düşük
      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

    • Bu WireGuard'ın görevi değil; bunu shadowsocks gibi kapsülleme protokolleri üstlenmeli
      WireGuard basit bir L3 UDP tüneli olarak tasarlandı
    • Bu yüzden amnezia-wg gibi fork'lar var
    • Mullvad uygulamasında shadowsocks gibi atlatma seçenekleri var ama
      protokolün kendisine gömülü olsa daha iyi olur gibi geliyor
    • Bununla ilgili daha fazla okumak isterseniz resmi belgelerdeki Known Limitations bölümüne bakabilirsiniz
  • Uygulama ekibine sormak isterdim — neden değişiklikleri BoringTun'a upstream etmediler, merak ediyorum

    • BoringTun 3 yıldır yeniden yapılandırma sürecinde olduğu için Mullvad'ın bağımsız ilerlemesi anlaşılır
      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
    • BoringTun fiilen bakımı durdurulmuş durumda
      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

    • Mullvad gizlilik açısından en iyilerden biri ama çoğu VPN engelleme listesine giriyor
      NordVPN bunu daha iyi aşıyor. Örneğin Imgur'da veya Birleşik Krallık içinden erişimde Mullvad engelleniyor
    • Genel kullanıcılar için amaç coğrafi engelleri aşmak olduğundan Mullvad çok cazip gelmiyor
    • Port forwarding kaldırıldıktan sonra onu seçeneklerinden çıkaran da çok oldu
    • Mullvad'ın IP'leri streaming servislerinde sık sık engellendiği için Nord kullanmak zorunda kalıyorum
    • Üstelik birçok VPN markasının tek bir şirket tarafından satın alınıp yeniden markalandırılması da yaygın
  • WireGuard'ın Android'de çekirdek içinde çalıştığını sanıyordum

    • Aslında modül olarak etkinleştirilmesi gerekiyor ama Android çekirdeğinde devre dışı bırakılmış
  • 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

    • WireGuard bu kadar basit bir UDP tabanlı yapıdayken çökme olması şaşırtıcıydı
  • 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

    • iOS'ta vpp tabanlı bir uygulamanın mümkün olması şaşırtıcı
      Ben de geçmişte yaklaşık 6 ay vpp ile uğraşmıştım; oldukça ilginçti