- GotaTun adalah implementasi WireGuard yang ditulis dalam Rust, dengan tujuan menghadirkan koneksi VPN yang cepat, efisien, dan stabil
- Dikembangkan dengan fork dari proyek BoringTun milik Cloudflare, serta mengintegrasikan fitur privasi Mullvad seperti DAITA dan Multihop
- Pertama diterapkan pada versi Android untuk mengatasi masalah crash yang terjadi pada wireguard-go yang ada, dengan tingkat crash turun dari 0.40% → 0.01%
- Dengan beralih ke basis Rust, Mullvad menghapus masalah kompleksitas FFI dan ketidakstabilan runtime Go, sekaligus meningkatkan kemudahan pemeliharaan dan efisiensi debugging
- Mullvad berencana memperluas GotaTun ke semua platform pada 2026 serta melakukan audit keamanan dan peningkatan performa
Gambaran umum GotaTun
- GotaTun adalah implementasi WireGuard® berbasis Rust yang dikembangkan oleh Mullvad VPN, dengan fokus pada kecepatan, stabilitas, dan efisiensi
- Dikembangkan dengan melakukan fork dari BoringTun milik Cloudflare
- Namanya merupakan gabungan dari BoringTun dan terowongan Götatunneln di Göteborg, Swedia
- Mengintegrasikan fitur peningkatan privasi Mullvad seperti DAITA dan Multihop
- Mengoptimalkan performa dengan memanfaatkan multithreading aman di Rust dan strategi memori zero-copy
- Sudah dirilis untuk versi Android pada akhir November 2024, dan platform lain dijadwalkan hadir pada 2026
Keterbatasan wireguard-go sebelumnya
- Aplikasi mobile Mullvad selama bertahun-tahun menggunakan wireguard-go berbasis Go
- Banyak penyedia VPN juga menggunakan implementasi yang sama
- Sejak pertengahan 2024, Mullvad melakukan fork dan pemeliharaan terhadap wireguard-go untuk mendukung DAITA dan Multihop
- Namun, lebih dari 85% crash yang dilaporkan di Google Play Developer Console berasal dari wireguard-go
- Sebagian masalah telah diperbaiki, tetapi banyak yang masih tersisa
- Ada kompleksitas dan ketidakstabilan akibat penggunaan FFI (foreign function interface) antara Rust dan Go
- Perilaku runtime Go tidak transparan dari kode Rust, dan saat crash terjadi, pemulihan stack trace menjadi sulit
- Hal ini membuat debugging dan pemeliharaan jangka panjang menjadi lebih sulit
Hasil di Android
- Setelah GotaTun diterapkan, tidak terjadi satu pun crash
- Semua crash yang sebelumnya berasal dari wireguard-go berhasil dihilangkan
- Sejak aplikasi Android versi 2025.10 (rilis akhir November), tingkat crash yang dirasakan pengguna turun dari 0.40% → 0.01%
- Umpan balik pengguna juga melaporkan peningkatan kecepatan dan penurunan penggunaan baterai
Rencana ke depan
- Audit keamanan pihak ketiga dijadwalkan pada awal 2026
- Semua platform (termasuk desktop dan iOS) akan mengganti wireguard-go dengan GotaTun
- Peningkatan performa akan terus dilanjutkan
- Mullvad menetapkan 2026 sebagai titik balik utama untuk ekspansi GotaTun
1 komentar
Komentar Hacker News
Di Pixel 8, peningkatan performanya terasa jelas
Dulu
wireguard-gobahkan tidak bisa menembus 100Mbps, tetapi pada versi GotaTun bisa mencapai lebih dari 500MbpsNamun, karena bug baru, perangkat tidak bisa masuk ke mode deep sleep, sehingga baterai mendadak habis 10 kali lebih cepat
wireguarddinyalakan 24/7Pixel 8 jauh lebih bertenaga, jadi kalau masalah seperti ini terjadi, kemungkinan besar ini bug di sisi Android
Saya sangat menyukai WireGuard sampai-sampai membuat sendiri proyek bernama WrapGuard
Saya menulisnya dalam Go agar aplikasi bisa dijalankan tanpa akses root
Saya tidak begitu paham Rust, jadi saya penasaran apakah Rust memang lebih cocok untuk firmware atau software jaringan
Tautan GitHub WrapGuard
Rust lebih andal berkat timing yang dapat diprediksi dan sistem tipe yang kuat
Namun untuk software jaringan, Go juga sudah cukup baik, dan pada akhirnya kesimpulannya adalah “lebih baik pakai bahasa yang sudah dikuasai”
Saya ingin mencoba container tool baru dari Apple
Misalnya, airVPN mengizinkan 5 koneksi simultan, jadi akan menarik jika itu bisa digabung untuk menyatukan trafik
Saya harap GotaTun juga diterapkan di aplikasi Android Tailscale. Saya memakai Tailscale untuk terhubung ke Mullvad
Tim Tailscale sangat mahir mengoptimalkan library berbasis Go,
dan pada April 2023 mereka mencapai performa 10Gbps dengan
wireguard-goPosting blog terkait
Isu tentang paging memori di Go dan pencegahan stack overflow pada goroutine terasa menarik
Saya penasaran kenapa GoString melakukan page-in memori sebanyak itu
Lihat isu #6727 dan isu #7728
Akan bagus jika protokol WireGuard sendiri juga ditingkatkan
Saat ini ada keterbatasan karena sulit menembus pemblokiran oleh pemerintah atau ISP
WireGuard dirancang sebagai tunnel UDP L3 yang sederhana
tetapi rasanya akan lebih baik jika itu tertanam langsung di protokolnya
Kalau ada tim implementasinya di sini, saya ingin bertanya — kenapa perubahan ini tidak di-upstream ke BoringTun
Semakin banyak implementasi yang ada, semakin tinggi stabilitas dan keandalan protokol
Secara pribadi, saya lebih percaya Mullvad daripada Cloudflare
Obscura VPN telah beralih ke fork NepTUN
Tautan GitHub NepTUN
Saya penasaran kenapa Mullvad membuat fork baru dan apakah ada rencana untuk mengintegrasikannya dengan fork yang sudah ada
Saya rasa Mullvad adalah pilihan paling tepercaya di antara layanan VPN
Tetapi orang-orang lebih tertarik pada kode diskon dari YouTuber
NordVPN lebih bagus dalam menghindari itu. Misalnya, Mullvad diblokir saat mengakses Imgur atau dari dalam Inggris
Saya kira WireGuard di Android berjalan di dalam kernel
Saya ingin melihat lebih banyak data analisis penyebab crash pada
wireguard-goSaya penasaran apakah itu bug di library itu sendiri atau masalah FFI
Saya tidak memakai kode proxy berbasis Go di aplikasi MintFlow
Sebagai gantinya, saya mengimplementasikan sebagian protokol proxy dalam Rust
Untuk WireGuard, saya memakai implementasi C berbasis plugin fdio vpp
Saya juga pernah mengutak-atik
vppsekitar 6 bulan, dan itu cukup menarik