WireGuard vs Tailscale vs Headscale: Pilih yang Tepat
Tailscale menambahkan control plane pada WireGuard. Pahami manfaat koordinasi, biayanya, serta pilihan tepat untuk VPS: WireGuard, Tailscale, atau Headscale.
WireGuard vs Tailscale: jawaban singkat
WireGuard vs Tailscale bukan pilihan antara dua protokol, karena Tailscale adalah WireGuard. Tailscale menggunakan enkripsi dan tunnel yang sama, lalu menambahkan control plane: server koordinasi yang bertukar kunci publik, membagikan alamat, membuat lubang melalui NAT (network address translation), dan menerapkan kebijakan akses. Anda memilih seberapa banyak koordinasi tersebut yang ingin dikelola sendiri.
Ada tiga jawaban yang tepat. Gunakan WireGuard biasa jika Anda memiliki satu server dan beberapa client yang semuanya terhubung ke server tersebut. Gunakan Tailscale jika Anda ingin setiap mesin dapat menjangkau mesin lainnya tanpa perlu memelihara file konfigurasi. Gunakan Headscale jika Anda menginginkan mesh tersebut, tetapi tidak ingin pihak ketiga menyimpan daftar node.
Apa yang sebenarnya Anda dapatkan dari control plane
WireGuard biasa tidak memiliki mekanisme discovery. Setiap peer berupa blok teks yang Anda tulis secara manual: public key, baris AllowedIPs, dan Endpoint jika peer tersebut dapat dijangkau. Menambahkan satu mesin ke jaringan yang berisi sepuluh mesin berarti mengedit sepuluh file konfigurasi, karena setiap sisi memerlukan key milik sisi lainnya. Karena itu, hampir semua setup WireGuard yang di-host sendiri menggunakan model hub-and-spoke: satu server dengan IP publik, dan client yang hanya berkomunikasi dengannya.
Control plane menghilangkan kebutuhan untuk mengedit konfigurasi secara manual. Setiap node mendaftar sekali, menerima alamat dari rentang 100.64.0.0/10 CGNAT (carrier grade NAT), lalu menerima public key dari node yang diizinkan untuk dijangkaunya. Tunnel tetap merupakan koneksi WireGuard langsung antara dua peer, dan trafik Anda tidak pernah melewati server koordinasi. Data yang dibawa server adalah metadata: node yang terdaftar, key miliknya, serta node mana yang boleh berkomunikasi satu sama lain.
Ada tiga manfaat konkret dari mekanisme ini.
NAT traversal. Dua laptop di balik dua router rumah tidak memiliki IP publik yang dapat digunakan untuk saling terhubung. Tailscale menggunakan STUN (session traversal utilities for NAT) untuk menemukan alamat dan port eksternal masing-masing, lalu kedua sisi mengirim paket pada saat yang sama agar setiap router terlebih dahulu melihat aliran keluar dan menerima balasannya. Jika cara ini gagal, trafik beralih ke relay DERP, yaitu relay terenkripsi yang dijalankan oleh Tailscale. Data Anda tetap terenkripsi secara end-to-end melalui relay tersebut karena relay tidak pernah menyimpan key. Jalankan tailscale status; setiap baris peer akan berisi direct atau relay. Jalankan tailscale netcheck untuk melihat relay yang paling dekat dan mengetahui apakah jaringan Anda mengizinkan UDP sama sekali.
Rotasi key dengan masa berlaku. Key WireGuard tidak pernah kedaluwarsa. Key yang Anda terbitkan tiga tahun lalu akan tetap berfungsi selamanya, kecuali Anda menghapus blok peer tersebut secara manual. Sebaliknya, Tailscale menetapkan masa berlaku untuk key node. Per Oktober 2026, masa berlaku default pada tailnet baru adalah 180 hari. Mesin yang tidak melakukan autentikasi ulang akan berhenti terhubung. Anda dapat menonaktifkan masa berlaku per perangkat untuk server atau subnet router yang tidak memiliki pengguna untuk melakukan login.
Kebijakan sebagai pengganti routing. Pada WireGuard biasa, AllowedIPs berfungsi sekaligus sebagai tabel routing dan daftar kontrol akses. Karena itu, aturan “alice boleh menjangkau database” harus dinyatakan sebagai rentang IP. Tailscale menyimpan file kebijakan terpisah yang aturannya menyebut user, grup, dan tag. Sebuah aturan dapat menyatakan bahwa tag:laptop boleh menjangkau tag:db pada port 5432 dan tidak boleh menjangkau apa pun selain itu. Aturan tersebut tetap berlaku meskipun mesin memperoleh alamat baru.
Biaya control plane yang harus Anda tanggung
Server koordinasi mengetahui jaringan Anda. Server ini menyimpan public key setiap node, nama setiap node, alamat yang dibagikan, dan kebijakan jaringan. Pada Tailscale yang di-host, server tersebut berada di perusahaan di luar kendali Anda. Perusahaan itu tidak dapat membaca paket Anda karena private key WireGuard tetap berada di mesin Anda. Namun, perusahaan tersebut dapat melihat bentuk jaringan Anda, dan kemampuan Anda untuk terhubung bergantung pada ketersediaan layanan mereka serta status akun Anda. Seberapa besar hal ini perlu dipertimbangkan bergantung pada tindakan yang dapat dilakukan oleh server koordinasi yang telah diretas atau akun identitas yang dicuri terhadap data yang disimpannya. Karena itu, model kepercayaan Tailscale layak dibaca secara lengkap.
Ada biaya kedua yang mudah terlewatkan. Tailscale berjalan sebagai daemon di setiap mesin. Artinya, Anda harus terus memasang patch pada software tersebut di setiap mesin. WireGuard biasa pada Ubuntu 24.04 merupakan kernel module yang disertakan dalam distribusi dan diperbarui bersama kernel.
Biaya ketiga adalah penagihan. Per Oktober 2026, paket Personal gratis dengan perangkat pengguna tanpa batas hingga 6 pengguna, paket Standard seharga $8 per pengguna per bulan, dan paket Premium seharga $18 per pengguna per bulan. Rumah tangga tetap dapat menggunakan paket gratis. Tim yang terdiri atas 10 orang tidak. Apakah Anda melewati batas tersebut terutama bergantung pada jumlah pengguna, bukan jumlah perangkat, dengan satu pengecualian: server dan perangkat bertag lainnya memiliki alokasi tersendiri. Setiap paket mencakup 50 sumber daya bertag. Per Oktober 2026, halaman harga mencantumkan biaya $1 per bulan untuk setiap sumber daya tambahan. Hal yang sebenarnya tercakup dalam paket gratis layak dibaca sebelum Anda mengundang pengguna ketujuh atau menambahkan tag pada server kelima puluh satu.
Kapan WireGuard biasa menjadi pilihan yang tepat
Pilih WireGuard biasa jika topologinya benar-benar berbentuk hub-and-spoke. Gunakan satu VPS dengan IP publik dan tiga atau empat perangkat yang terhubung ke VPS tersebut, tanpa kebutuhan agar perangkat-perangkat itu saling terhubung. Konfigurasinya cukup dimuat dalam satu layar. Tidak ada daemon yang perlu diperbarui, tidak ada akun yang dapat hilang, dan tidak ada layanan eksternal di antara Anda dan server.
WireGuard biasa juga tepat jika Anda ingin memahami lapisan dasar yang digunakan oleh semua solusi lain. Self-hosting VPN WireGuard pada VPS membahas pembuatan key, wg0.conf, IP forwarding, NAT, dan kegagalan handshake. Key dan handshake tetap berjalan di bawah setiap tailnet. IP forwarding kembali diperlukan ketika node tailnet berfungsi sebagai subnet router atau exit node. Jika Anda masih mempertimbangkan opsi yang lebih lama, WireGuard vs OpenVPN membahas empat kasus ketika OpenVPN masih memiliki keunggulan.
Proses instalasinya singkat:
sudo apt update && sudo apt install -y wireguard
sudo modprobe wireguard && echo okWireGuard biasa mulai tidak praktis ketika setiap perangkat harus dapat terhubung ke semua perangkat lain. Full mesh dengan N node memerlukan N kali N dikurangi satu blok peer. Dengan enam perangkat, terdapat tiga puluh blok yang harus disinkronkan secara manual. Entri AllowedIPs yang terduplikasi dapat diam-diam mengambil alih trafik dari peer yang lebih dahulu menggunakannya, tanpa menampilkan error apa pun.
Saat Tailscale menjadi pilihan yang tepat
Pilih Tailscale jika mesin sering berpindah jaringan. Contohnya laptop pada jaringan hotel, ponsel yang menggunakan data seluler, atau server rumah di balik router yang tidak Anda kendalikan. Inilah kasus yang tidak ditangani dengan baik oleh WireGuard biasa, karena tidak ada pihak yang memiliki endpoint publik stabil untuk ditempatkan di Endpoint.
Instal client dengan satu perintah dari installer resmi:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale statustailscale up menampilkan URL. Buka URL tersebut, login, lalu mesin akan bergabung. Anda tidak perlu menyalin key atau membuka port masuk, karena daemon membuat koneksi keluar ke server koordinasi dan mempertahankannya tetap terbuka. Karena itu, node Tailscale juga dapat berfungsi pada jaringan yang firewall-nya sama sekali tidak Anda kendalikan.
Setelah itu, dua pengaturan menangani sebagian besar kebutuhan. Subnet router mengiklankan seluruh LAN ke dalam jaringan, sehingga Anda tidak perlu menginstal client pada setiap perangkat:
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale set --advertise-routes=192.0.2.0/24Route tetap tidak aktif sampai Anda menyetujuinya di konsol admin. Ini disengaja: node tidak dapat memasukkan route ke jaringan Anda secara mandiri. Client Linux juga memerlukan sudo tailscale set --accept-routes, karena Linux tidak menerima route yang diiklankan secara default. Jadi, route yang tampak telah disetujui di sisi server tetap tidak berfungsi pada laptop Linux sampai Anda mengatur opsi tersebut. Jika konfigurasi ini yang Anda inginkan, menjalankan subnet router pada VPS menjelaskan langkah persetujuan serta pengaturan forwarding dalam urutan yang mencegah route tidak berfungsi sebagian.
Exit node mengirimkan trafik internet biasa milik client, yaitu semua trafik yang tidak sudah ditujukan ke perangkat tailnet lain atau subnet route yang disetujui, melalui satu mesin. Inilah perilaku full tunnel yang biasanya dimaksud orang ketika menyebut "VPN". Di Linux, Anda harus mengatur forwarding IP yang sama seperti di atas sebelum mengiklankannya:
sudo tailscale set --advertise-exit-nodeFlag tersebut adalah bagian yang mudah. mengubah VPS menjadi exit node menjelaskan langkah berikutnya: menyetujui route di konsol admin, lalu memperbaiki perilaku DNS dan IPv6 yang jika dibiarkan dapat membuat trafik keluar melalui jalur yang salah. Jika yang ingin Anda akses adalah satu layanan web, bukan seluruh jaringan, serve dan funnel menempatkan HTTPS di depan satu port lokal, baik hanya untuk tailnet maupun dibuka ke internet publik.
Kapan Headscale merupakan pilihan yang tepat
Headscale adalah implementasi open source dari coordination server dan berjalan pada VPS milik Anda. Tailscale client resmi diarahkan ke server tersebut, bukan ke layanan hosted:
sudo tailscale up --login-server https://headscale.example.comSeluruh data path tetap sama. Teknologi yang digunakan tetap WireGuard, dan koneksi antar-peer tetap berlangsung secara langsung jika jaringan mengizinkannya. Perbedaannya, daftar node, key, dan policy disimpan dalam file SQLite pada disk milik Anda. Pihak eksternal tidak dapat melihat bentuk jaringan Anda, menonaktifkan akun Anda, atau menagih biaya berdasarkan jumlah user.
Konsekuensinya adalah pekerjaan operasional tambahan. Anda kini menjalankan public HTTPS service, yang memerlukan nama DNS, sertifikat, dan reverse proxy yang meneruskan WebSocket upgrade dengan benar. Anda bertanggung jawab atas uptime-nya. Jika coordination server tidak tersedia, node baru tidak dapat melakukan registrasi dan node yang sudah ada tidak dapat mengetahui perubahan. Headscale juga masih di bawah versi 1.0, dan rilis minor-nya dapat membawa perubahan yang tidak kompatibel. Karena itu, baca changelog sebelum setiap upgrade. Menjalankan Headscale sebagai control server Tailscale milik sendiri membahas instalasi, config.yaml, preauth key, dan port yang perlu dibuka.
Ada satu keterbatasan yang sering baru disadari belakangan. Headscale tidak menyediakan jaringan relay global milik Tailscale. Jika dua peer tidak dapat terhubung secara langsung, Anda harus mengaktifkan relay bawaan pada server sendiri atau mengarahkan konfigurasi ke relay lain. Relay tersebut berupa satu server di satu region, bukan armada global di seluruh dunia. Peer yang berada di belahan dunia lain akan merasakan perbedaannya.
Jika Anda tidak ingin menyiapkan komponen itu sendiri, self-hosting NetBird adalah pilihan lain untuk mempertahankan control plane di lingkungan sendiri. Quickstart-nya menjalankan layanan management, signal, dan relay secara bersamaan pada satu VPS. Namun, NetBird bukan server Tailscale yang dapat langsung menggantikan Tailscale seperti Headscale. NetBird menyediakan client dan model kebijakannya sendiri. Karena itu, baca perbedaan NetBird dan Tailscale dalam aturan akses dan relay sebelum memilihnya alih-alih Headscale.
Cara mengambil keputusan dalam satu tahap
Tanyakan berapa banyak mesin yang harus saling terhubung. Jika jawabannya adalah semua mesin hanya berkomunikasi dengan server, plain WireGuard membutuhkan lebih sedikit software untuk mendapatkan hasil yang sama.
Tanyakan apakah mesin-mesin tersebut memiliki alamat publik yang stabil. Jika sebagian besar berada di balik NAT yang tidak Anda kendalikan, Anda memerlukan control plane, karena hole punching adalah bagian yang sulit dan tidak layak dibangun ulang.
Tanyakan siapa yang boleh mengetahui topologi jaringan Anda. Jika jawabannya tidak mencakup perusahaan eksternal, atau jumlah pengguna membuat biaya per seat terlalu membebani, jalankan Headscale dan terima bahwa Anda kini harus mengoperasikan control server. Jika biaya adalah faktor utama, lakukan perhitungan sebelum berkomitmen pada migrasi, karena biaya yang sebenarnya dibayar tim dengan ukuran Anda terutama ditentukan oleh jumlah orang yang memiliki akun, bukan jumlah mesin yang Anda jalankan, sampai jumlah tagged server Anda melampaui 50 yang termasuk dalam setiap paket. Kedua angka tersebut jarang sama.
Anda dapat mengubah keputusan dengan biaya rendah. Karena data plane menggunakan protokol yang sama pada ketiga opsi, perpindahan dari plain WireGuard ke mesh terkoordinasi hanya memerlukan instalasi client, bukan redesign. Perpindahan dari Tailscale ke Headscale hanya memerlukan pendaftaran ulang setiap node ke login server yang berbeda.
Hal yang tidak disediakan oleh ketiganya
Tidak satu pun dari ketiganya merupakan firewall. Tunnel menentukan paket yang dibawa, bukan service yang melakukan listen. Server yang dapat dijangkau melalui tunnel tetap dapat dijangkau dari internet pada port apa pun yang Anda biarkan terbuka. Karena itu, pastikan aturan firewall UFW pada VPS tetap menjalankan fungsinya. File kebijakan Tailscale membatasi node lain yang dapat mengakses server, tetapi tidak berpengaruh pada interface publik.
Tidak satu pun dari ketiganya menyediakan autentikasi per service, dan tidak satu pun mencatat aktivitas pengguna setelah pengguna terhubung. Perlakukan ketiganya sebagai lapisan transport, lalu tempatkan pemeriksaan login di aplikasi.
FAQ
Apakah Tailscale hanya WireGuard dengan langkah tambahan?
Tailscale menggunakan protokol WireGuard untuk jalur data, sehingga enkripsi dan tunnel-nya sama. Tailscale menambahkan fungsi koordinasi: pertukaran kunci, penetapan alamat, traversal NAT dengan relay STUN dan DERP, kedaluwarsa kunci, serta file kebijakan yang menyebutkan pengguna, bukan rentang IP. Dalam WireGuard biasa, semua hal tersebut harus Anda kelola sendiri. Hal-hal itu menjadi sulit ketika mesin berpindah-pindah jaringan.
Apakah trafik saya melewati server Tailscale?
Biasanya tidak. Peer terhubung langsung satu sama lain setelah server koordinasi memperkenalkan keduanya, dan tailscale status menampilkan direct pada baris peer tersebut. Jika jalur langsung tidak dapat dibuat, trafik beralih ke relay DERP dan barisnya menampilkan relay. Dalam kondisi itu pun, relay hanya membawa paket terenkripsi dan tidak menyimpan private key WireGuard Anda, sehingga relay tidak dapat membaca isinya. Jalankan tailscale netcheck untuk melihat apakah jaringan Anda memblokir UDP yang diperlukan koneksi langsung.
Apakah saya dapat menggunakan Headscale dengan aplikasi Tailscale resmi?
Ya. Headscale menggunakan protokol kontrol yang sama, sehingga client resmi dapat bergabung dengan sudo tailscale up --login-server https://headscale.example.com. Aplikasi desktop dan seluler juga dapat diarahkan ke server login khusus, tetapi pengaturannya berada di lokasi yang berbeda pada setiap platform. Aplikasi seluler lebih mungkin memerlukan versi tertentu. Uji satu ponsel sebelum memigrasikan seluruh jaringan.
Apakah saya masih perlu membuka port untuk Tailscale atau Headscale?
Client Tailscale tidak memerlukan port inbound karena client tersebut membuat koneksi keluar ke server koordinasi dan mempertahankan koneksi itu. Server Headscale yang di-host sendiri memerlukan port inbound: 443 untuk protokol kontrol, 80 jika Anda menggunakan tantangan sertifikat HTTP-01, dan 3478/udp hanya jika Anda mengaktifkan relay bawaan. WireGuard biasa memerlukan port listen UDP, biasanya 51820, agar terbuka pada server dan pada firewall jaringan terpisah yang disediakan oleh provider Anda.
Manakah dari ketiganya yang paling cepat?
Throughput-nya sama karena ketiganya memindahkan paket dengan WireGuard. Perbedaannya terlihat pada penyiapan koneksi dan kualitas jalur. WireGuard biasa dengan Endpoint yang benar selalu terhubung secara langsung. Tailscale dan Headscale biasanya terhubung secara langsung, lalu beralih ke relay ketika jaringan memblokir hole punching. Jalur melalui relay menambah latensi. Ukur jalur Anda sendiri dengan tailscale ping <node>, yang melaporkan apakah rutenya langsung atau melalui relay, atau dengan iperf3 di seluruh tunnel. Jika hasilnya jauh di bawah line rate Anda pada jalur langsung, pilihan di antara ketiganya bukan penyebab masalahnya. Penyebab yang umum adalah ketidakcocokan MTU jalur yang menimbulkan perilaku sama, baik dengan maupun tanpa control plane.