WireGuard vs Tailscale vs Headscale: Mana Pilihan Terbaik?
Ketahui perbezaan sebenar antara WireGuard, Tailscale, dan Headscale. Kami bandingkan kelebihan satah kawalan, kos pengurusan, serta kesesuaian untuk pelayan VPS anda.
WireGuard berbanding Tailscale: jawapan ringkas
WireGuard berbanding Tailscale bukanlah pilihan antara dua protokol, kerana Tailscale ialah WireGuard. Tailscale menjalankan penyulitan dan terowong yang sama, kemudian menambah satah kawalan (control plane): pelayan penyelarasan yang menukar kunci awam, memberikan alamat, menembusi NAT (network address translation), dan melaksanakan polisi akses. Anda sedang memilih berapa banyak penyelarasan tersebut yang anda mahu uruskan sendiri.
Terdapat tiga jawapan yang jujur. Jalankan WireGuard biasa apabila anda mempunyai satu pelayan dan segelintir klien yang semuanya menghubungi pelayan tersebut. Jalankan Tailscale apabila anda mahu setiap mesin mencapai setiap mesin lain tanpa perlu menyelenggara fail konfigurasi. Jalankan Headscale apabila anda mahu rangkaian mesh tersebut tetapi tidak mahu pihak ketiga memegang senarai nod anda.
Apakah faedah sebenar control plane
WireGuard biasa tidak mempunyai fungsi penemuan (discovery). Setiap peer adalah blok teks yang anda tulis secara manual: kunci awam, baris AllowedIPs, dan Endpoint jika peer tersebut boleh dicapai. Menambah satu mesin ke dalam rangkaian sepuluh mesin bermakna anda perlu menyunting sepuluh fail konfigurasi, kerana setiap pihak memerlukan kunci pihak yang satu lagi. Itulah sebabnya hampir semua persediaan WireGuard yang dihoskan sendiri menggunakan topologi hub and spoke: satu pelayan dengan IP awam, dan klien yang hanya berhubung dengan pelayan tersebut.
Control plane menghapuskan kerja penyuntingan tersebut. Setiap nod mendaftar sekali, menerima alamat daripada julat CGNAT (carrier grade NAT) 100.64.0.0/10, dan dimaklumkan tentang kunci awam bagi nod yang dibenarkan untuk dicapai. Terowong tersebut masih merupakan sambungan WireGuard terus antara dua peer, dan trafik anda tidak pernah melalui pelayan koordinasi. Apa yang dibawa oleh pelayan tersebut hanyalah metadata: siapa yang wujud, kunci milik siapa, dan siapa yang boleh berhubung dengan siapa.
Tiga perkara konkrit terhasil daripada perkara ini.
NAT traversal. Dua komputer riba di sebalik dua penghala rumah tidak mempunyai IP awam antara satu sama lain. Tailscale menggunakan STUN (session traversal utilities for NAT) untuk menemui alamat dan port luaran setiap pihak, kemudian kedua-dua pihak menghantar paket pada saat yang sama supaya setiap penghala melihat aliran keluar terlebih dahulu dan menerima balasan tersebut. Apabila ia gagal, trafik akan beralih kepada relay DERP, iaitu relay terenkripsi yang dikendalikan oleh Tailscale. Data anda kekal terenkripsi hujung-ke-hujung melalui relay tersebut, kerana relay tidak pernah memegang kunci. Jalankan tailscale status dan setiap baris peer akan memaparkan direct atau relay. Jalankan tailscale netcheck untuk melihat relay mana yang paling hampir dan sama ada rangkaian anda membenarkan UDP atau tidak.
Putaran kunci dengan tamat tempoh. Kunci WireGuard tidak pernah tamat tempoh. Kunci yang anda keluarkan tiga tahun lalu akan berfungsi selama-lamanya melainkan anda memadam blok peer tersebut secara manual. Tailscale sebaliknya menetapkan tamat tempoh pada kunci nod, dan bermula Oktober 2026, tempoh tamat tempoh lalai pada tailnet baharu ialah 180 hari. Mesin yang tidak disahkan semula akan berhenti menyambung. Anda boleh mematikan tamat tempoh bagi setiap peranti untuk pelayan atau penghala subnet yang tiada sesiapa untuk log masuk.
Dasar menggantikan penghalaan. Dalam WireGuard biasa, AllowedIPs merupakan jadual penghalaan dan senarai kawalan akses (ACL) pada masa yang sama, jadi "alice boleh mencapai pangkalan data" perlu dinyatakan sebagai julat IP. Tailscale menyimpan fail dasar berasingan di mana peraturan menamakan pengguna, kumpulan dan tag. Satu peraturan boleh menyatakan bahawa tag:laptop boleh mencapai tag:db pada port 5432 dan tiada yang lain, dan peraturan itu kekal walaupun mesin mendapat alamat baharu.
Kos yang perlu ditanggung oleh control plane
Pelayan koordinasi mengetahui rangkaian anda. Ia menyimpan kunci awam setiap nod, nama setiap nod, alamat yang diberikan, dan polisi. Dengan Tailscale yang dihoskan, itu bermakna sebuah syarikat di luar kawalan anda. Paket anda tidak boleh dibaca oleh mereka kerana kunci peribadi WireGuard kekal pada mesin anda, tetapi bentuk rangkaian anda boleh dilihat oleh mereka, dan keupayaan anda untuk berhubung bergantung pada perkhidmatan mereka yang aktif serta akaun anda yang berada dalam status baik. Sejauh mana perkara ini perlu diambil berat bergantung kepada apa yang boleh dilakukan oleh pelayan koordinasi yang terjejas atau akaun identiti yang dicuri dengan maklumat yang dipegangnya, iaitu bahagian yang menjelaskan model kepercayaan Tailscale yang perlu dibaca sepenuhnya.
Terdapat kos kedua yang mudah terlepas pandang. Tailscale ialah daemon pada setiap mesin, jadi ia adalah perisian yang kini perlu anda pastikan sentiasa ditampal (patched) pada setiap mesin. WireGuard biasa pada Ubuntu 24.04 ialah modul kernel yang disertakan bersama pengedaran tersebut dan dikemas kini bersama kernel.
Kos ketiga ialah pengebilan. Setakat Oktober 2026, pelan Personal adalah percuma dengan peranti pengguna tanpa had untuk sehingga 6 pengguna, pelan Standard berharga $8 bagi setiap pengguna sebulan, dan pelan Premium berharga $18 bagi setiap pengguna sebulan. Isi rumah kekal percuma. Pasukan sepuluh orang tidak. Sama ada anda melepasi had tersebut kebanyakannya bergantung kepada jumlah kerusi (seats) dan bukannya peranti, dengan satu pengecualian: pelayan dan peranti bertag lain mempunyai peruntukan tersendiri. Setiap pelan merangkumi 50 sumber bertag, dan setakat Oktober 2026, halaman harga menyenaraikan $1 sebulan bagi setiap sumber tambahan selepas itu. Apa yang sebenarnya dilindungi oleh pelan percuma perlu dibaca sebelum anda menjemput pengguna ketujuh atau meletakkan tag pada pelayan kelima puluh satu.
Apabila WireGuard biasa adalah jawapan yang tepat
Pilih WireGuard biasa apabila topologi anda benar-benar berbentuk hub and spoke. Satu VPS dengan IP awam, tiga atau empat peranti yang bersambung dengannya, dan tiada keperluan untuk peranti-peranti tersebut berhubung antara satu sama lain. Konfigurasinya muat pada satu skrin, tiada daemon untuk dikemas kini, tiada akaun yang boleh hilang, dan tiada perkhidmatan luar yang berada di antara anda dengan pelayan anda.
Ia juga merupakan jawapan yang tepat apabila anda ingin memahami lapisan asas yang menjadi binaan kepada segala-galanya. Self-hosting WireGuard VPN pada VPS membincangkan penjanaan kunci, wg0.conf, IP forwarding, NAT dan kegagalan handshake. Kunci dan handshake tersebut masih berjalan di bawah setiap tailnet, dan IP forwarding akan kembali diperlukan sebaik sahaja nod tailnet bertindak sebagai subnet router atau exit node. Jika anda masih menimbangkan pilihan yang lebih lama, WireGuard vs OpenVPN merangkumi empat kes di mana OpenVPN masih mempunyai kelebihan.
Pemasangannya ringkas:
sudo apt update && sudo apt install -y wireguard
sudo modprobe wireguard && echo okWireGuard biasa menjadi kurang menyenangkan apabila setiap peranti perlu berhubung dengan setiap peranti yang lain. Mesh penuh bagi N nod memerlukan N darab N tolak satu blok peer. Pada enam peranti, itu bermakna tiga puluh blok yang perlu diselaraskan secara manual, dan entri AllowedIPs yang diduplikasi akan mencuri trafik secara senyap daripada peer yang memilikinya terlebih dahulu, tanpa sebarang ralat dipaparkan di mana-mana.
Bilakah Tailscale menjadi pilihan yang tepat
Pilih Tailscale apabila mesin sering berpindah-randah. Komputer riba pada rangkaian hotel, telefon yang menggunakan data mudah alih, atau pelayan rumah di sebalik penghala yang tidak berada di bawah kawalan anda. Ini adalah situasi yang sukar dikendalikan oleh WireGuard biasa, kerana tiada satu pun pihak mempunyai titik akhir awam yang stabil untuk diletakkan dalam Endpoint.
Pemasangan klien hanya memerlukan satu arahan daripada pemasang rasmi:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale statustailscale up akan memaparkan satu URL. Buka URL tersebut, log masuk, dan mesin akan menyertai rangkaian. Tiada kunci yang perlu disalin dan tiada port masuk yang perlu dibuka, kerana daemon membuat sambungan keluar ke pelayan koordinasi dan mengekalkannya dalam keadaan terbuka. Itulah sebabnya nod Tailscale berfungsi pada rangkaian di mana anda tidak mempunyai kawalan langsung ke atas firewall.
Dua tetapan melakukan kebanyakan kerja berguna selepas itu. Penghala subnet (subnet router) mengiklankan keseluruhan LAN ke dalam rangkaian supaya anda tidak perlu memasang klien pada setiap peranti:
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/24Laluan tersebut kekal tidak aktif sehingga anda meluluskannya dalam konsol pentadbir, yang merupakan langkah sengaja: sesuatu nod tidak boleh memasukkan laluan ke dalam rangkaian anda secara sendirian. Klien Linux juga memerlukan sudo tailscale set --accept-routes, kerana Linux tidak menerima laluan yang diiklankan secara lalai, jadi laluan yang kelihatan diluluskan pada bahagian pelayan tetap tidak berfungsi pada komputer riba Linux sehingga anda menetapkannya. Jika itu adalah konfigurasi yang anda inginkan, menjalankan penghala subnet pada VPS membimbing anda melalui langkah kelulusan dan tetapan penghantaran (forwarding) mengikut urutan yang mengelakkan laluan yang berfungsi separuh jalan.
Nod keluar (exit node) menghantar trafik internet biasa klien, iaitu segala-galanya yang tidak ditujukan kepada peranti tailnet lain atau laluan subnet yang diluluskan, melalui satu mesin. Ini adalah tingkah laku terowong penuh yang biasanya dimaksudkan oleh orang ramai apabila menyebut "VPN". Pada Linux, ia memerlukan tetapan penghantaran IP yang sama seperti yang ditunjukkan di atas sebelum anda mengiklankannya:
sudo tailscale set --advertise-exit-nodeFlag tersebut adalah bahagian yang mudah, dan menukar VPS menjadi nod keluar merangkumi perkara yang perlu dilakukan selepas itu: meluluskan laluan dalam konsol pentadbir, kemudian membetulkan tingkah laku DNS dan IPv6 yang jika tidak, akan menyebabkan trafik keluar melalui laluan yang salah. Jika apa yang anda ingin capai hanyalah satu servis web dan bukannya keseluruhan rangkaian, serve dan funnel meletakkan HTTPS di hadapan satu port tempatan, sama ada untuk tailnet sahaja atau dibuka kepada internet awam.
Bilakah Headscale menjadi pilihan yang tepat
Headscale ialah implementasi sumber terbuka bagi pelayan koordinasi, dan ia berjalan pada VPS milik anda. Pelanggan Tailscale rasmi akan menghala kepadanya dan bukannya kepada perkhidmatan yang dihoskan:
sudo tailscale up --login-server https://headscale.example.comSegala aspek mengenai laluan data tidak berubah. Ia masih menggunakan WireGuard, dan masih terus antara peer di mana rangkaian membenarkannya. Perkara yang berubah ialah senarai nod, kunci, dan polisi disimpan dalam fail SQLite pada cakera milik anda. Tiada pihak luar yang boleh melihat bentuk rangkaian anda, menyahaktifkan akaun anda, atau mengenakan caj bagi setiap pengguna.
Pertukarannya ialah usaha kerja yang nyata. Anda kini menjalankan perkhidmatan HTTPS awam, yang bermaksud anda memerlukan nama DNS, sijil, dan reverse proxy yang menghantar naik taraf WebSocket dengan betul. Anda bertanggungjawab ke atas uptime-nya, dan pelayan koordinasi yang tidak berfungsi bermakna nod baharu tidak boleh mendaftar dan nod sedia ada tidak boleh mengetahui tentang perubahan. Headscale juga masih di bawah versi 1.0 dan keluaran kecilnya sering membawa perubahan yang tidak serasi (breaking changes), jadi baca changelog sebelum setiap naik taraf. Menjalankan Headscale sebagai pelayan kawalan Tailscale anda sendiri merangkumi pemasangan, config.yaml, kunci preauth dan port yang perlu dibuka.
Satu perkara sering hanya disedari apabila sudah terlambat. Headscale tidak disertakan dengan rangkaian relay global Tailscale. Apabila dua peer tidak dapat berhubung secara terus, anda perlu mendayakan relay terbenam pada pelayan sendiri atau mengarahkan konfigurasi kepada relay lain. Relay itu ialah satu pelayan di satu rantau, bukannya kumpulan pelayan di seluruh dunia. Peer yang berada di seberang dunia akan merasai perbezaan ini. Jika anda tidak mahu menyediakan komponen itu sendiri, self-hosting NetBird ialah pilihan lain untuk mengekalkan control plane dalam infrastruktur sendiri, kerana quickstartnya menjalankan servis management, signal dan relay bersama-sama pada satu VPS. Namun, NetBird bukan server Tailscale yang boleh terus menggantikan Tailscale seperti Headscale: NetBird mengeluarkan client sendiri dan menggunakan model policy sendiri. Oleh itu, baca perbezaan NetBird dan Tailscale dari segi access rules dan relay sebelum memilihnya berbanding Headscale.
Cara membuat keputusan dalam satu pusingan
Tanya berapa banyak mesin yang perlu berhubung antara satu sama lain. Jika jawapannya ialah kesemuanya hanya perlu berhubung dengan pelayan, WireGuard biasa adalah perisian yang lebih ringkas untuk hasil yang sama.
Tanya sama ada mesin-mesin tersebut mempunyai alamat awam yang stabil. Jika kebanyakan mesin berada di sebalik NAT yang tidak berada di bawah kawalan anda, anda memerlukan control plane, kerana proses hole punching adalah bahagian yang sukar dan tidak berbaloi untuk dibina semula.
Tanya siapa yang dibenarkan mengetahui bentuk rangkaian anda. Jika jawapannya tidak melibatkan syarikat luar, atau jumlah pengguna anda menjadikan bil per kerusi membebankan, jalankan Headscale dan terima hakikat bahawa anda kini mengendalikan pelayan kawalan tersebut. Jika bil adalah faktor utama, lakukan pengiraan sebelum anda membuat migrasi, kerana apa yang sebenarnya dibayar oleh pasukan saiz anda kebanyakannya bergantung pada berapa ramai orang yang memegang akaun dan bukannya berapa banyak mesin yang anda jalankan, sehinggalah pelayan bertanda anda melebihi 50 unit yang disertakan dalam setiap pelan, dan kedua-dua angka tersebut jarang sekali hampir sama.
Anda boleh mengubah keputusan dengan kos yang rendah. Memandangkan data plane menggunakan protokol yang sama dalam ketiga-tiganya, beralih daripada WireGuard biasa kepada mesh yang diselaraskan hanyalah pemasangan klien dan bukannya reka bentuk semula, manakala beralih daripada Tailscale kepada Headscale hanyalah pendaftaran semula setiap nod pada pelayan log masuk yang berbeza.
Perkara yang tidak disediakan oleh ketiga-tiganya
Tiada satu pun daripada alat ini merupakan firewall. Terowong hanya menentukan paket mana yang dibawa, bukan servis mana yang mendengar. Pelayan yang boleh dicapai melalui terowong masih boleh dicapai dari internet pada mana-mana port yang dibiarkan terbuka, jadi pastikan peraturan firewall UFW pada VPS terus menjalankan fungsinya. Fail polisi Tailscale mengehadkan nod lain yang boleh dicapai, namun ia tidak melakukan apa-apa terhadap antara muka awam.
Tiada satu pun daripada alat ini menyediakan pengesahan (authentication) bagi setiap servis, dan tiada satu pun yang menyediakan jejak audit tentang tindakan pengguna setelah disambungkan. Anggap ketiga-tiganya sebagai pengangkutan (transport) sahaja, dan letakkan semakan log masuk di dalam aplikasi.
FAQ
Adakah Tailscale sekadar WireGuard dengan langkah tambahan?
Tailscale menggunakan protokol WireGuard untuk laluan data, jadi penyulitan dan terowongnya adalah sama. Apa yang ditambah ialah penyelarasan: pertukaran kunci, penetapan alamat, NAT traversal dengan geganti STUN dan DERP, tamat tempoh kunci, dan fail polisi yang menamakan pengguna dan bukannya julat IP. Itu adalah bahagian yang ditinggalkan oleh WireGuard biasa untuk anda uruskan, dan ia menjadi sukar apabila mesin berpindah antara rangkaian.
Adakah trafik saya melalui pelayan Tailscale?
Biasanya tidak. Rakan setara (peers) bersambung terus antara satu sama lain sebaik sahaja pelayan penyelarasan memperkenalkan mereka, dan tailscale status menunjukkan direct pada baris rakan setara tersebut. Apabila laluan terus tidak dapat diwujudkan, trafik akan kembali kepada geganti DERP dan baris tersebut akan memaparkan relay. Walaupun begitu, geganti tersebut membawa paket yang disulitkan dan tidak memegang kunci peribadi WireGuard anda, jadi ia tidak boleh membaca kandungannya. Jalankan tailscale netcheck untuk melihat sama ada rangkaian anda menyekat UDP yang diperlukan oleh sambungan terus.
Bolehkah saya menggunakan Headscale dengan aplikasi rasmi Tailscale?
Ya. Headscale menggunakan protokol kawalan yang sama, jadi klien rasmi boleh menyertai dengan sudo tailscale up --login-server https://headscale.example.com. Aplikasi desktop dan mudah alih juga boleh dihalakan ke pelayan log masuk tersuai, walaupun tetapan tersebut terletak di tempat yang berbeza pada setiap platform, dan aplikasi mudah alih adalah yang paling berkemungkinan memerlukan versi tertentu. Uji satu telefon sebelum anda memindahkan keseluruhan rangkaian.
Adakah saya masih perlu membuka port untuk Tailscale atau Headscale?
Klien Tailscale tidak memerlukan port masuk, kerana ia mendail keluar ke pelayan penyelarasan dan memastikan sambungan itu sentiasa terbuka. Pelayan Headscale yang dihoskan sendiri memerlukan port masuk: 443 untuk protokol kawalan, 80 jika anda menggunakan cabaran sijil HTTP-01, dan 3478/udp hanya apabila anda mendayakan geganti terbenam. WireGuard biasa memerlukan port pendengar UDP-nya, biasanya 51820, dibuka pada pelayan dan pada mana-mana firewall rangkaian berasingan yang dijalankan oleh pembekal anda.
Yang manakah antara ketiga-tiganya paling pantas?
Throughput adalah sama, kerana ketiga-tiganya memindahkan paket dengan WireGuard. Perbezaannya kelihatan pada penyediaan sambungan dan kualiti laluan. WireGuard biasa dengan Endpoint yang betul akan bersambung terus setiap kali. Tailscale dan Headscale bersambung terus pada kebanyakan masa dan kembali kepada geganti apabila rangkaian menyekat hole punching, dan laluan geganti akan menambah kependaman (latency). Ukur laluan anda sendiri dengan tailscale ping <node>, yang melaporkan sama ada laluan tersebut adalah terus atau geganti, atau dengan iperf3 merentasi terowong. Jika nombor itu kembali jauh di bawah kadar talian anda pada laluan terus, pilihan antara ketiga-tiga tersebut bukanlah punca masalah anda, dan punca biasa ialah ketidakpadanan MTU laluan yang berkelakuan sama dengan atau tanpa satah kawalan (control plane).