4 पॉइंट द्वारा GN⁺ 2025-12-20 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • GotaTun Rust में लिखा गया एक WireGuard implementation है, जिसका लक्ष्य तेज, कुशल और स्थिर VPN कनेक्शन देना है
  • इसे Cloudflare के BoringTun project को fork करके विकसित किया गया है, और इसमें DAITAMultihop जैसी Mullvad की privacy features को एकीकृत किया गया है
  • मौजूदा wireguard-go में होने वाली crash समस्याओं को हल करने के लिए इसे पहले Android version में लागू किया गया, जिससे crash rate 0.40% → 0.01% तक घट गई
  • Rust-आधारित stack पर जाने से FFI complexity और Go runtime instability की समस्याएँ खत्म हुईं, जिससे maintainability और debugging efficiency बेहतर हुई
  • Mullvad 2026 में GotaTun को सभी platforms तक विस्तारित करने और security audit व performance improvements की योजना बना रहा है

GotaTun का overview

  • GotaTun Mullvad VPN द्वारा विकसित एक Rust-आधारित WireGuard® implementation है, जिसका फोकस तेज़ी, स्थिरता और efficiency पर है
    • इसे Cloudflare के BoringTun को fork करके बनाया गया है
    • इसका नाम BoringTun और स्वीडन के Göteborg की सुरंग Götatunneln के मेल से बना है
  • इसमें DAITA और Multihop जैसी Mullvad की privacy-enhancing features को एकीकृत किया गया है
  • performance optimization के लिए Rust की safe multithreading और zero-copy memory strategy का उपयोग किया गया है
  • इसे नवंबर 2024 के अंत में Android version पर deploy किया जा चुका है, जबकि अन्य platforms के लिए रिलीज़ 2026 में निर्धारित है

मौजूदा wireguard-go की सीमाएँ

  • Mullvad का mobile app कई वर्षों से Go-आधारित wireguard-go का उपयोग करता रहा है
    • कई VPN providers इसी implementation का उपयोग करते हैं
  • 2024 के मध्य से Mullvad ने DAITA और Multihop support के लिए wireguard-go को fork करके maintain करना शुरू किया
  • लेकिन Google Play developer console में रिपोर्ट हुई crashes में से 85% से अधिक wireguard-go में होती थीं
    • कुछ समस्याएँ ठीक की गईं, लेकिन कई अब भी बनी हुई हैं
  • Rust और Go के बीच FFI (foreign function interface) के उपयोग से complexity और instability पैदा होती थी
    • Go runtime का व्यवहार Rust code के भीतर opaque था, और crash होने पर stack trace recovery मुश्किल हो जाती थी
    • इससे debugging और long-term maintenance कठिन हो जाते थे

Android पर परिणाम

  • GotaTun लागू होने के बाद एक भी crash नहीं हुई
    • wireguard-go में होने वाली सभी crashes समाप्त हो गईं
  • Android app version 2025.10 (नवंबर के अंत में जारी) के बाद users के अनुभव की crash rate 0.40% → 0.01% तक घट गई
  • user feedback में speed improvement और battery usage में कमी भी रिपोर्ट की गई

आगे की योजना

  • 2026 की शुरुआत में third-party security audit किए जाने की योजना है
  • सभी platforms (desktop, iOS सहित) पर wireguard-go को GotaTun से बदला जाएगा
  • performance improvement efforts जारी रहेंगे
  • Mullvad ने 2026 को GotaTun expansion का प्रमुख turning point माना है

1 टिप्पणियां

 
GN⁺ 2025-12-20
Hacker News टिप्पणियाँ
  • Pixel 8 पर performance improvement साफ़ महसूस हुआ
    पहले wireguard-go 100Mbps भी नहीं निकाल पाता था, लेकिन GotaTun वर्ज़न में 500Mbps से ज़्यादा मिल रहा है
    हालांकि एक नए bug की वजह से यह deep sleep mode में नहीं जा पाता, जिससे battery अचानक 10 गुना तेज़ खत्म होने लगती है

    • मेरे पुराने Samsung A5 में wireguard 24/7 चालू रहने पर भी battery लंबे समय तक चलती है
      Pixel 8 कहीं ज़्यादा powerful है, इसलिए अगर ऐसी समस्या है तो Android की तरफ़ bug होने की संभावना ज़्यादा है
    • मैंने भी ZeroTier और MizuDroid में ऐसा ही देखा है। यह Android network stack की समस्या लगती है
    • Raspberry Pi 5 में भी यही समस्या थी। शायद ARM optimization की कमी इसकी वजह हो सकती है
    • यह MTU 1320 समस्या भी हो सकती है
    • यही वजह थी कि Mullvad app ने Pixel 6a पर अचानक 1 सेकंड में connect करना शुरू कर दिया। पहले 5–10 सेकंड लगते थे
  • मुझे WireGuard बहुत पसंद है, इसलिए मैंने खुद WrapGuard नाम का एक project बनाया
    इसे बिना root permission के app चलाने लायक बनाने के लिए Go में लिखा
    मुझे Rust अच्छी तरह नहीं आती, इसलिए सोच रहा हूँ कि firmware या networking software के लिए Rust ज़्यादा उपयुक्त है या नहीं
    WrapGuard GitHub लिंक

    • firmware को GC-रहित environment में चलना पड़ता है, इसलिए Rust ज़्यादा उपयुक्त है
      Rust अपने predictable timing और मज़बूत type system की वजह से ज़्यादा भरोसेमंद है
      लेकिन networking software में Go भी काफ़ी अच्छा है, और आख़िर में निष्कर्ष यही है कि “जिस भाषा में आप सहज हैं, वही बेहतर है
    • आख़िरकार “जान-पहचान वाले शैतान को चुनो” वाली बात है, यानी जो भाषा आती है उसी का इस्तेमाल करना व्यावहारिक है
    • Go में FFI मुश्किल है, इसलिए embedded library के रूप में इस्तेमाल करने के लिए Rust ज़्यादा फ़ायदेमंद है
    • local container networking जहाँ encryption की ज़रूरत नहीं है, उसके लिए क्या बेहतर होगा, इस पर सोच रहा हूँ
      Apple का नया container tool आज़माने की सोच रहा हूँ
    • अगर कई VPN tunnel को एक में जोड़ने की सुविधा हो तो अच्छा होगा
      उदाहरण के लिए airVPN 5 simultaneous connections की अनुमति देता है, तो अगर इन्हें merge करके traffic को combine किया जा सके तो बढ़िया होगा
  • अच्छा होगा अगर GotaTun को Tailscale Android app में भी लागू किया जाए। मैं Mullvad access के लिए Tailscale इस्तेमाल करता हूँ

    • GotaTun, Mullvad-विशेष फीचर है, इसलिए Tailscale के इसे अपनाने की संभावना कम है
      Tailscale टीम Go-आधारित library optimization में काफ़ी माहिर है,
      और अप्रैल 2023 में wireguard-go के साथ 10Gbps performance हासिल कर चुकी है
      संबंधित ब्लॉग पोस्ट
  • Go की memory paging समस्या और goroutine की stack overflow रोकथाम से जुड़े मुद्दे दिलचस्प लगे
    समझ नहीं आता कि GoString इतना ज़्यादा memory page-in क्यों करता है
    issue #6727, issue #7728 देखें

  • अच्छा होगा अगर WireGuard protocol खुद भी बेहतर हो
    अभी इसकी सीमा यह है कि सरकारी या ISP blocking को पार करना मुश्किल है

    • यह WireGuard का काम नहीं है; यह shadowsocks जैसे encapsulation protocol का काम होना चाहिए
      WireGuard को एक सरल L3 UDP tunnel के रूप में डिज़ाइन किया गया है
    • इसी वजह से amnezia-wg जैसे fork मौजूद हैं
    • Mullvad app में shadowsocks जैसी bypass options हैं, लेकिन
      अगर यह protocol में ही built-in होतीं तो और अच्छा होता
    • अगर इस बारे में और पढ़ना हो, तो आधिकारिक दस्तावेज़ के Known Limitations सेक्शन को देखें
  • अगर implementation team यहाँ हो तो मैं पूछना चाहूँगा — बदलावों को BoringTun में upstream क्यों नहीं किया गया?

    • BoringTun पिछले 3 साल से architecture refactor के बीच है, इसलिए Mullvad का स्वतंत्र रूप से आगे बढ़ना समझ में आता है
      जितने ज़्यादा implementation होंगे, protocol की stability और reliability उतनी बढ़ेगी
      व्यक्तिगत रूप से मैं Cloudflare से ज़्यादा Mullvad पर भरोसा करता हूँ
    • BoringTun लगभग maintenance बंद जैसी स्थिति में है
      Obscura VPN ने NepTUN fork पर switch कर लिया है
      NepTUN GitHub लिंक
      जानना चाहूँगा कि Mullvad ने नया fork क्यों बनाया, और क्या मौजूदा fork के साथ merge करने की कोई योजना है
  • मुझे लगता है Mullvad, VPN सेवाओं में सबसे भरोसेमंद विकल्प है
    लेकिन लोग YouTuber के discount code की तरफ़ ज़्यादा आकर्षित होते हैं

    • privacy के लिहाज़ से Mullvad बेहतरीन है, लेकिन यह ज़्यादातर VPN block lists में शामिल रहता है
      NordVPN इससे बेहतर तरीके से बच निकलता है। उदाहरण के लिए Imgur या UK के भीतर access करते समय Mullvad block हो जाता है
    • आम users का लक्ष्य geo-blocking हटाना होता है, इसलिए Mullvad उनके लिए ज़्यादा आकर्षक नहीं है
    • port forwarding बंद होने के बाद भी कई लोगों ने इसे विकल्पों से बाहर कर दिया
    • streaming services में Mullvad के IP अक्सर block हो जाते हैं, इसलिए Nord इस्तेमाल करना पड़ता है
    • इसके अलावा कई VPN brands को एक ही कंपनी खरीदकर rebrand भी कर देती है
  • मुझे लगा था कि Android पर WireGuard kernel के अंदर चलता है

    • असल में इसे module के रूप में enable करना पड़ता है, लेकिन Android kernel में यह disabled है
  • मैं wireguard-go के crash root-cause analysis data के बारे में और देखना चाहूँगा
    समझना चाहता हूँ कि यह library का bug है या FFI की समस्या

    • WireGuard इतना simple UDP-आधारित है, फिर भी crash होना थोड़ा हैरान करने वाला लगा
  • मैं MintFlow app में Go-आधारित proxy code इस्तेमाल नहीं करता
    इसकी जगह Rust में कुछ proxy protocols implement करता हूँ
    WireGuard के लिए fdio vpp plugin-आधारित C implementation इस्तेमाल करता हूँ

    • iOS पर vpp-आधारित implementation संभव है, यह जानकर हैरानी हुई
      मैंने भी पहले करीब 6 महीने तक vpp के साथ काम किया था, काफ़ी दिलचस्प था