- GotaTun ist eine WireGuard-Implementierung, die in Rust geschrieben wurde und auf schnelle, effiziente und stabile VPN-Verbindungen abzielt
- Sie wurde als Fork von Cloudflares BoringTun-Projekt entwickelt und integriert Mullvads Datenschutzfunktionen wie DAITA und Multihop
- Um die in wireguard-go auftretenden Absturzprobleme zu beheben, wurde sie zunächst in der Android-Version eingeführt; die Absturzrate sank von 0,40 % auf 0,01 %
- Mit dem Wechsel auf Rust wurden Probleme durch FFI-Komplexität und Instabilität der Go-Runtime beseitigt, wodurch Wartbarkeit und Debugging-Effizienz verbessert wurden
- Mullvad plant für 2026 die Ausweitung von GotaTun auf alle Plattformen sowie Sicherheitsaudits und Performance-Verbesserungen
Überblick über GotaTun
- GotaTun ist eine von Mullvad VPN entwickelte Rust-basierte WireGuard®-Implementierung, die auf hohe Geschwindigkeit, Stabilität und Effizienz ausgelegt ist
- Entwickelt als Fork von Cloudflares BoringTun
- Der Name kombiniert BoringTun mit dem Tunnel Götatunneln in Göteborg, Schweden
- Integriert Mullvads datenschutzverstärkende Funktionen wie DAITA und Multihop
- Nutzt sicheres Multithreading in Rust und eine Zero-Copy-Speicherstrategie, um die Performance zu optimieren
- Ende November 2024 für Android ausgerollt, andere Plattformen sollen 2026 folgen
Grenzen des bisherigen wireguard-go
- Mullvads Mobile-Apps verwenden seit Jahren das Go-basierte wireguard-go
- Mehrere VPN-Anbieter nutzen dieselbe Implementierung
- Seit Mitte 2024 pflegt Mullvad einen Fork von wireguard-go, um DAITA- und Multihop-Unterstützung bereitzustellen
- Allerdings traten mehr als 85 % der im Google Play Developer Console gemeldeten Abstürze in wireguard-go auf
- Einige Probleme wurden behoben, viele bestehen jedoch weiterhin
- Es gab Komplexität und Instabilität durch die Nutzung von FFI (Foreign Function Interface) zwischen Rust und Go
- Das Verhalten der Go-Runtime ist aus Rust-Code heraus intransparent, und bei Abstürzen ist die Wiederherstellung von Stack-Traces schwierig
- Dadurch wurden Debugging und langfristige Wartung erschwert
Ergebnisse unter Android
- Nach der Einführung von GotaTun trat kein einziger Absturz mehr auf
- Alle zuvor in wireguard-go auftretenden Abstürze wurden beseitigt
- Seit Android-App-Version 2025.10 (Veröffentlichung Ende November) sank die von Nutzern wahrgenommene Absturzrate von 0,40 % auf 0,01 %
- Auch im Nutzerfeedback wurden höhere Geschwindigkeit und geringerer Akkuverbrauch gemeldet
Ausblick
- Anfang 2026 ist ein Sicherheitsaudit durch Dritte geplant
- Auf allen Plattformen (einschließlich Desktop und iOS) soll wireguard-go durch GotaTun ersetzt werden
- Performance-Verbesserungen sollen kontinuierlich vorangetrieben werden
- Mullvad betrachtet 2026 als wichtigen Wendepunkt für den Ausbau von GotaTun
1 Kommentare
Hacker-News-Kommentare
Auf dem Pixel 8 war die Leistungssteigerung deutlich spürbar
Früher schaffte
wireguard-gonicht einmal 100 Mbps, mit der GotaTun-Version sind es über 500 MbpsAllerdings gibt es durch einen neuen Bug das Problem, dass es nicht in den Deep-Sleep-Modus geht und der Akku plötzlich 10-mal schneller leer wird
wireguard24/7 eingeschaltet istDas Pixel 8 ist viel leistungsstärker, daher ist es wahrscheinlich eher ein Bug auf der Android-Seite
Ich mag WireGuard wirklich sehr und habe deshalb selbst ein Projekt namens WrapGuard gebaut
Ich habe es in Go geschrieben, damit Apps ohne Root-Rechte laufen können
Ich kenne mich mit Rust nicht gut aus und frage mich, ob Rust für Firmware oder Netzwerksoftware besser geeignet ist
WrapGuard GitHub-Link
Rust ist dank vorhersagbarem Timing und einem starken Typsystem sehr zuverlässig
Aber für Netzwerksoftware ist Go ebenfalls völlig ausreichend, und am Ende lautet das Fazit: „Es ist besser, eine vertraute Sprache zu verwenden“
Ich möchte Apples neues container tool ausprobieren
AirVPN erlaubt zum Beispiel 5 gleichzeitige Verbindungen; es wäre schön, wenn man sie zusammenführen und den Traffic bündeln könnte
Es wäre gut, wenn GotaTun auch in der Tailscale-Android-App eingesetzt würde. Ich nutze Tailscale für die Verbindung zu Mullvad
Das Tailscale-Team ist sehr gut darin, Go-basierte Bibliotheken zu optimieren,
und erreichte im April 2023 mit
wireguard-goeine 10-Gbps-LeistungZugehöriger Blogbeitrag
Ich fand die Probleme mit dem Memory Paging von Go und dem Schutz vor Stack Overflow bei Goroutines interessant
Ich frage mich, warum GoString so viel Speicher paged
Siehe Issue #6727, Issue #7728
Es wäre gut, wenn auch das WireGuard-Protokoll selbst verbessert würde
Derzeit gibt es die Einschränkung, dass es schwierig ist, Sperren durch Regierungen oder ISPs zu umgehen
WireGuard ist als einfacher L3-UDP-Tunnel konzipiert
aber es wäre besser, wenn so etwas direkt im Protokoll eingebaut wäre
Wenn es ein Implementierungsteam gibt, würde ich gern fragen — warum wurden die Änderungen nicht upstream in BoringTun eingebracht?
Je mehr Implementierungen es gibt, desto höher sind Stabilität und Vertrauenswürdigkeit des Protokolls
Persönlich vertraue ich Mullvad mehr als Cloudflare
Obscura VPN ist auf den Fork NepTUN umgestiegen
NepTUN GitHub-Link
Ich frage mich, warum Mullvad erneut geforkt hat und ob geplant ist, sich mit bestehenden Forks zusammenzutun
Ich halte Mullvad für die vertrauenswürdigste Wahl unter den VPNs
Aber die Leute fühlen sich stärker von Rabattcodes von YouTubern angezogen
NordVPN umgeht das gut. Zum Beispiel wird Mullvad bei Imgur oder bei Zugriffen innerhalb Großbritanniens blockiert
Ich dachte, WireGuard würde auf Android im Kernel laufen
Ich würde gern mehr Daten zur Analyse der Absturzursachen von
wireguard-gosehenIch frage mich, ob es ein Bug in der Bibliothek selbst ist oder ein FFI-Problem
Ich verwende in der MintFlow-App keinen Go-basierten Proxy-Code
Stattdessen implementiere ich einige Proxy-Protokolle in Rust
Für WireGuard verwende ich eine C-Implementierung auf Basis des fdio-vpp-Plugins
Ich habe früher selbst etwa 6 Monate mit vpp gearbeitet und fand es ziemlich interessant