WireGuard vs Tailscale vs Headscale: Mana Sesuai?
Tailscale ialah WireGuard dengan satah kawalan. Ketahui faedah penyelarasan, kos kebergantungan, dan pilihan tepat untuk VPS anda: WireGuard, Tailscale atau Headscale.
WireGuard berbanding Tailscale: jawapan ringkas
WireGuard berbanding Tailscale bukan pilihan antara dua protokol, kerana Tailscale ialah WireGuard. Tailscale menggunakan penyulitan dan terowong yang sama, kemudian menambah satah kawalan: pelayan penyelarasan yang menukar kunci awam, mengagihkan alamat, membuka laluan melalui NAT (terjemahan alamat rangkaian), dan menguatkuasakan dasar akses. Anda memilih sejauh mana penyelarasan itu mahu anda kendalikan sendiri.
Terdapat tiga jawapan yang tepat. Jalankan WireGuard biasa apabila anda mempunyai satu pelayan dan beberapa klien yang semuanya membuat sambungan kepadanya. Jalankan Tailscale apabila anda mahu setiap mesin mencapai mesin lain tanpa perlu menyelenggara fail konfigurasi. Jalankan Headscale apabila anda mahukan rangkaian mesh itu tetapi tidak mahu pihak ketiga menyimpan senarai nod.
Perkara yang sebenarnya anda peroleh daripada satah kawalan
WireGuard biasa tidak mempunyai penemuan rakan. Setiap rakan ialah blok teks yang anda tulis secara manual: kunci awam, baris AllowedIPs dan Endpoint jika rakan itu boleh dicapai. Menambah satu mesin ke rangkaian yang mempunyai sepuluh mesin bermakna anda perlu mengedit sepuluh fail konfigurasi, kerana setiap pihak memerlukan kunci pihak yang satu lagi. Oleh itu, hampir semua persediaan WireGuard yang dihoskan sendiri menggunakan topologi hab dan jejari: satu pelayan dengan IP awam, dan klien yang hanya berkomunikasi dengannya.
Satah kawalan menghapuskan kerja penyuntingan itu. Setiap nod mendaftar sekali, menerima alamat daripada julat CGNAT (carrier grade NAT) 100.64.0.0/10, dan menerima kunci awam nod yang dibenarkan untuk dicapainya. Terowong itu masih merupakan WireGuard secara langsung antara dua rakan, dan trafik anda tidak pernah melalui pelayan penyelarasan. Pelayan hanya membawa metadata: siapa yang wujud, kunci milik siapa, dan siapa yang dibenarkan berkomunikasi dengan siapa.
Tiga perkara utama terhasil daripada pendekatan ini.
Pelepasan lintasan NAT. Dua komputer riba di belakang dua penghala rumah tidak mempunyai IP awam yang menghubungkan kedua-duanya. Tailscale menggunakan STUN (session traversal utilities for NAT) untuk menemui alamat dan port luaran setiap pihak. Kemudian, kedua-dua pihak menghantar paket pada masa yang sama supaya setiap penghala melihat aliran keluar terlebih dahulu dan menerima balasannya. Jika kaedah itu gagal, trafik beralih kepada geganti DERP, iaitu geganti tersulit yang dikendalikan oleh Tailscale. Data anda kekal disulitkan hujung ke hujung melalui geganti itu kerana geganti tidak pernah menyimpan kunci. Jalankan tailscale status, dan setiap baris rakan menunjukkan direct atau relay. Jalankan tailscale netcheck untuk melihat geganti yang paling hampir dan sama ada rangkaian anda membenarkan UDP.
Penggiliran kunci dengan tempoh luput. Kunci WireGuard tidak pernah luput. Kunci yang anda keluarkan tiga tahun lalu akan terus berfungsi selama-lamanya melainkan anda memadam blok rakan itu secara manual. Sebaliknya, Tailscale menetapkan tempoh luput untuk kunci nod. Pada Julai 2026, tempoh luput lalai bagi tailnet baharu ialah 180 hari. Mesin yang tidak melakukan pengesahan semula akan berhenti menyambung. Anda boleh mematikan tempoh luput bagi setiap peranti untuk pelayan atau penghala subnet yang tidak akan mempunyai pengguna untuk log masuk.
Dasar dan bukannya penghalaan. Dalam WireGuard biasa, AllowedIPs ialah jadual penghalaan dan senarai kawalan capaian pada masa yang sama. Oleh itu, peraturan "alice boleh mencapai pangkalan data" perlu dinyatakan sebagai julat IP. Tailscale menyimpan fail dasar berasingan yang menamakan pengguna, kumpulan dan tag dalam peraturannya. Peraturan boleh menyatakan bahawa tag:laptop boleh mencapai tag:db pada port 5432 sahaja, dan peraturan itu kekal berkuat kuasa walaupun mesin menerima alamat baharu.
Kos yang dikenakan oleh satah kawalan
Pelayan penyelarasan mengetahui rangkaian anda. Pelayan ini menyimpan kunci awam setiap nod, nama setiap nod, alamat yang diberikan dan dasar. Dengan Tailscale terhos, pelayan ini dikendalikan oleh syarikat di luar kawalan anda. Mereka tidak dapat membaca paket anda kerana kunci peribadi WireGuard kekal pada mesin anda. Namun, mereka dapat melihat struktur rangkaian anda. Keupayaan anda untuk berhubung juga bergantung pada perkhidmatan mereka yang tersedia dan akaun anda yang kekal aktif.
Terdapat kos kedua yang mudah terlepas pandang. Tailscale ialah daemon pada setiap mesin. Oleh itu, anda perlu memastikan perisiannya ditampal pada setiap mesin. WireGuard biasa pada Ubuntu 24.04 ialah modul kernel yang dikeluarkan bersama pengedaran tersebut dan dikemas kini bersama kernel.
Kos ketiga ialah pengebilan. Setakat July 2026, pelan Personal adalah percuma dengan peranti tanpa had untuk sehingga 6 pengguna, Standard berharga $8 bagi setiap pengguna sebulan, dan Premium berharga $18 bagi setiap pengguna sebulan. Sebuah isi rumah kekal percuma. Pasukan yang terdiri daripada sepuluh orang tidak.
Apabila WireGuard biasa ialah pilihan yang tepat
Pilih WireGuard biasa apabila topologi benar-benar berbentuk hab dan jejari. Gunakan satu VPS dengan IP awam serta tiga atau empat peranti yang bersambung kepadanya. Tiada keperluan untuk peranti tersebut mencapai satu sama lain. Konfigurasi boleh dimuatkan pada satu skrin. Tiada daemon untuk dikemas kini, tiada akaun yang boleh hilang, dan tiada perkhidmatan luar yang menjadi perantara antara anda dengan pelayan.
WireGuard biasa juga sesuai apabila anda mahu memahami lapisan asas yang digunakan oleh semua komponen lain. Mengehos sendiri VPN WireGuard pada VPS menerangkan penjanaan kunci, wg0.conf, pemajuan IP, NAT dan kegagalan jabat tangan. Semua mekanisme tersebut masih berjalan di bawah tailnet. Jika anda masih mempertimbangkan pilihan lama, WireGuard berbanding OpenVPN menerangkan empat keadaan apabila OpenVPN masih mempunyai kelebihan.
Pemasangannya ringkas:
sudo apt update && sudo apt install -y wireguard
sudo modprobe wireguard && echo okWireGuard biasa mula menjadi sukar diurus apabila setiap peranti mesti mencapai semua peranti lain. Mesh penuh yang mempunyai N nod memerlukan N kali N tolak satu blok peer. Dengan enam peranti, terdapat tiga puluh blok yang perlu disegerakkan secara manual. Entri AllowedIPs yang diduplikasi akan mengambil alih trafik daripada peer yang mula-mula mempunyainya secara senyap-senyap, tanpa sebarang ralat dipaparkan.
Apabila Tailscale ialah pilihan yang tepat
Pilih Tailscale apabila mesin sering berpindah rangkaian. Contohnya, komputer riba pada rangkaian hotel, telefon yang menggunakan data mudah alih, atau pelayan rumah di belakang penghala yang tidak anda kawal. Kes ini sukar dikendalikan oleh WireGuard biasa kerana kedua-dua pihak tidak mempunyai titik akhir awam yang stabil untuk diletakkan dalam Endpoint.
Pasang klien dengan satu arahan daripada pemasang rasmi:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale statustailscale up mencetak URL. Buka URL itu, log masuk, dan mesin tersebut akan menyertai rangkaian. Anda tidak perlu menyalin kunci atau membuka port masuk kerana daemon membuat sambungan keluar ke pelayan penyelarasan dan mengekalkan sambungan itu. Oleh sebab itu, nod Tailscale juga berfungsi pada rangkaian yang tembok api sepenuhnya tidak anda kawal.
Dua tetapan berikut melaksanakan kebanyakan fungsi penting selepas itu. Penghala subnet mengiklankan seluruh 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 itu kekal tidak aktif sehingga anda meluluskannya dalam konsol pentadbir. Ini memang disengajakan: nod tidak boleh memasukkan laluan ke dalam rangkaian anda dengan sendiri. Klien Linux juga memerlukan sudo tailscale set --accept-routes kerana Linux tidak menerima laluan yang diiklankan secara lalai. Oleh itu, laluan yang kelihatan telah diluluskan pada bahagian pelayan masih tidak berfungsi pada komputer riba Linux sehingga anda menetapkannya.
Nod keluar menghantar semua trafik klien melalui satu mesin. Inilah tingkah laku terowong penuh yang biasanya dimaksudkan dengan "VPN":
sudo tailscale set --advertise-exit-nodeApabila Headscale ialah pilihan yang tepat
Headscale ialah pelaksanaan sumber terbuka bagi pelayan penyelarasan dan berjalan pada VPS milik anda. Klien Tailscale rasmi disambungkan kepadanya dan bukannya kepada perkhidmatan terhos:
sudo tailscale up --login-server https://headscale.example.comSemua perkara berkaitan laluan data kekal sama. Ia masih menggunakan WireGuard dan masih berhubung secara terus antara peer apabila rangkaian membenarkannya. Perubahan yang berlaku ialah senarai nod, kunci dan dasar disimpan dalam fail SQLite pada cakera milik anda. Pihak luar tidak dapat melihat bentuk rangkaian anda, menyahaktifkan akaun anda atau mengenakan bayaran bagi setiap pengguna.
Pertukarannya memerlukan kerja sebenar. Kini anda menjalankan perkhidmatan HTTPS awam. Ini memerlukan nama DNS, sijil dan proksi songsang yang meneruskan peningkatan WebSocket dengan betul. Anda bertanggungjawab terhadap masa beroperasinya. Pelayan penyelarasan yang tidak beroperasi bermakna nod baharu tidak dapat mendaftar dan nod sedia ada tidak dapat menerima perubahan. Headscale juga masih di bawah versi 1.0, dan keluaran kecilnya telah mengandungi perubahan yang tidak serasi ke belakang. Oleh itu, baca changelog sebelum setiap peningkatan. Menjalankan Headscale sebagai pelayan kawalan Tailscale anda sendiri merangkumi pemasangan, config.yaml, kunci prapengesahan dan port yang perlu dibuka.
Satu perkara yang sering disedari lewat ialah Headscale tidak disertakan dengan rangkaian geganti global Tailscale. Apabila dua peer tidak dapat berhubung secara terus, anda perlu mengaktifkan geganti terbenam pada pelayan sendiri atau menetapkan konfigurasi kepada geganti lain. Geganti itu ialah satu pelayan dalam satu rantau, bukannya armada global. Peer yang berada di seberang dunia akan merasai perbezaan tersebut.
Cara membuat keputusan dalam satu langkah
Tanya berapa banyak mesin yang perlu berhubung antara satu sama lain. Jika jawapannya ialah semua mesin hanya berhubung dengan server, WireGuard biasa memerlukan kurang perisian untuk mendapatkan hasil yang sama.
Tanya sama ada mesin tersebut mempunyai alamat awam yang stabil. Jika kebanyakannya berada di belakang NAT yang tidak anda kawal, anda memerlukan satah kawalan kerana hole punching ialah bahagian yang sukar dan tidak berbaloi untuk dibina semula.
Tanya siapa yang dibenarkan mengetahui bentuk rangkaian anda. Jika jawapannya tidak termasuk syarikat luar, atau jumlah pengguna anda menjadikan pengebilan bagi setiap tempat duduk membebankan, jalankan Headscale dan terima bahawa anda kini mengendalikan server kawalan.
Anda boleh mengubah keputusan dengan kos yang rendah. Oleh sebab satah data menggunakan protokol yang sama bagi ketiga-tiga pilihan, peralihan daripada WireGuard biasa kepada mesh terselaras hanya memerlukan pemasangan klien, bukan reka bentuk semula. Peralihan daripada Tailscale kepada Headscale pula memerlukan setiap nod didaftarkan semula pada server log masuk yang berbeza.
Perkara yang tidak disediakan oleh ketiga-tiganya
Tiada satu pun daripadanya ialah tembok api. Terowong menentukan paket yang dibawa, bukan perkhidmatan yang mendengar. Pelayan yang boleh dicapai melalui terowong masih boleh dicapai dari Internet pada mana-mana port yang anda biarkan terbuka. Oleh itu, teruskan peraturan tembok api UFW pada VPS melaksanakan tugasnya. Fail dasar Tailscale mengehadkan perkara yang boleh dicapai oleh nod lain, tetapi tidak memberi kesan pada antara muka awam.
Tiada satu pun daripadanya menyediakan pengesahan bagi setiap perkhidmatan. Tiada satu pun juga menyediakan jejak audit tentang tindakan pengguna selepas berjaya disambungkan. Anggap ketiga-tiganya sebagai pengangkutan, kemudian letakkan pemeriksaan log masuk dalam aplikasi.
FAQ
Adakah Tailscale sekadar WireGuard dengan langkah tambahan?
Tailscale menggunakan protokol WireGuard untuk laluan data. Oleh itu, penyulitan dan terowongnya adalah sama. Tailscale menambah penyelarasan, termasuk pertukaran kunci, penetapan alamat, traversal NAT dengan geganti STUN dan DERP, tamat tempoh kunci, serta fail dasar yang menamakan pengguna dan bukannya julat IP. Dalam WireGuard biasa, semua perkara ini perlu anda urus sendiri. Perkara ini menjadi sukar apabila mesin berpindah antara rangkaian.
Adakah trafik saya melalui pelayan Tailscale?
Biasanya tidak. Rakan setara akan bersambung secara terus selepas pelayan penyelarasan memperkenalkan mereka, dan tailscale status menunjukkan direct pada baris rakan setara tersebut. Jika laluan terus tidak dapat diwujudkan, trafik akan beralih kepada geganti DERP dan baris tersebut memaparkan relay. Walaupun begitu, geganti hanya membawa paket yang disulitkan dan tidak menyimpan kunci peribadi WireGuard anda. Oleh itu, geganti tidak dapat membaca kandungannya. Jalankan tailscale netcheck untuk melihat sama ada rangkaian anda menyekat UDP yang diperlukan oleh sambungan terus.
Bolehkah saya menggunakan Headscale dengan aplikasi Tailscale rasmi?
Ya. Headscale menggunakan protokol kawalan yang sama. Oleh itu, klien rasmi boleh menyertai dengan sudo tailscale up --login-server https://headscale.example.com. Aplikasi desktop dan mudah alih juga boleh diarahkan kepada pelayan log masuk tersuai. Walau bagaimanapun, tetapan tersebut berada di lokasi yang berbeza pada setiap platform, dan aplikasi mudah alih paling berkemungkinan memerlukan versi tertentu. Uji satu telefon sebelum memindahkan seluruh rangkaian.
Adakah saya masih perlu membuka port untuk Tailscale atau Headscale?
Klien Tailscale tidak memerlukan port masuk kerana klien tersebut membuat sambungan keluar ke pelayan penyelarasan dan mengekalkan sambungan itu. Pelayan Headscale yang dihos sendiri memerlukan port masuk: 443 untuk protokol kawalan, 80 jika anda menggunakan cabaran sijil HTTP-01, dan 3478/udp hanya apabila anda mendayakan geganti terbina dalam. WireGuard biasa memerlukan port dengar UDP, biasanya 51820, dibuka pada pelayan dan pada mana-mana tembok api rangkaian berasingan yang disediakan oleh pembekal anda.
Antara ketiga-tiganya, yang manakah paling pantas?
Kadar pemprosesan adalah sama kerana ketiga-tiganya memindahkan paket menggunakan WireGuard. Perbezaannya dapat dilihat pada persediaan sambungan dan kualiti laluan. WireGuard biasa dengan Endpoint yang betul akan bersambung secara terus setiap kali. Tailscale dan Headscale biasanya bersambung secara terus, kemudian beralih kepada geganti apabila rangkaian menyekat penembusan NAT. Laluan melalui geganti menambah kependaman. Ukur laluan anda dengan tailscale ping <node>, yang melaporkan sama ada laluan itu terus atau melalui geganti, atau dengan iperf3 merentasi terowong.