Headscale: Dapatkan Fitur Lengkap Tailscale TANPA Biaya Langganan!

BBetter Stack
AI/미래기술재택/원격 근무컴퓨터/소프트웨어

Transcript

00:00:00Ini adalah Headscale, versi Tailscale gratis dan sumber terbuka yang bisa Anda instal di server mana pun,
00:00:06memberi Anda kendali penuh atas jaringan terenkripsi Anda jika internet mati atau Tailscale tiba-tiba menaikkan harga mereka.
00:00:13Tapi yang aneh adalah Headscale dibangun oleh seorang karyawan Tailscale.
00:00:18Kenapa mereka membayar seseorang untuk membangun kompetitor mereka sendiri?
00:00:22Tekan tombol subscribe dan mari kita cari tahu.
00:00:25Mari kita lihat sekilas cara kerja Headscale sebelum kita masuk ke detailnya.
00:00:30Oke, jadi saat ini saya punya tiga server Hetzner, satu untuk kontrol plane utama Headscale dan dua node di sini yang ingin saya hubungkan satu sama lain.
00:00:40Jadi kedua server ini sekarang menjadi bagian dari jaringan terenkripsi saya.
00:00:44Jika saya jalankan perintah ini, karena semuanya berjalan di Docker, saya bisa melihat node yang saya punya saat ini, yaitu Ubuntu Test di sini dan Ubuntu Test 2.
00:00:53Dan ini adalah alamat IP yang bisa saya gunakan untuk menghubungkannya.
00:00:56Sekarang, mari kita hubungkan kedua node ini dari satu sama lain.
00:00:59Pertama, saya akan salin alamat IP ini.
00:01:02Dan sekarang di dalam Ubuntu Test 2, saya akan masuk lewat SSH ke root.
00:01:07Ya, saya seharusnya tidak menggunakan root, tapi ini hanya untuk pengujian.
00:01:09Dan itu adalah alamat IP dari Headscale.
00:01:11Jika saya tekan enter dan bersihkan layar, seperti yang Anda lihat, saya sudah berada di dalam Ubuntu Test 1.
00:01:17Jadi saya masuk ke Ubuntu Test 1 dari Ubuntu Test 2, dan saya bisa keluar untuk kembali ke Ubuntu Test 2.
00:01:24Dan saya bisa melakukan hal yang sama di Ubuntu Test 1 jika saya melakukan SSH root dan menempelkan alamat IP Ubuntu Test 2.
00:01:31Jika saya bersihkan layar, kita bisa melihat saya berada di Ubuntu Test 2 dari Ubuntu Test 1.
00:01:36Tapi jika saya berada di luar tailnet, misalnya saya buka tab baru di root Mac saya dan melakukan SSH root ke alamat IP Ubuntu Test 2.
00:01:48Anda bisa melihat koneksinya hanya menggantung karena saya berada di luar tailnet.
00:01:52Seperti yang baru saja Anda lihat, Headscale memberi Anda akses penuh ke jaringan Anda.
00:01:56Anda bisa mengontrol setiap detail kecil dan menambahkan node sebanyak yang Anda mau tanpa terikat vendor tertentu.
00:02:03Dan ini bisa bekerja tanpa internet jika Anda menghubungkannya ke NAS pada Raspberry Pi lama.
00:02:08Tapi pengaturannya agak sedikit rumit.
00:02:11Sebenarnya, biarkan saya tunjukkan cara kerjanya.
00:02:13Sekarang saya sudah membuat server baru bernama Ubuntu Test 3, dan saya akan membuat tailnet baru atau server terenkripsi baru dengan pengguna baru yang akan menghubungkan dua node.
00:02:24Jadi Ubuntu Test 3 dan Ubuntu Test 1, hanya untuk tujuan pengujian.
00:02:29Di dalam kontrol plane Headscale saya, Headscale sudah terinstal, tapi saya akan menjelaskan proses pembuatannya.
00:02:37Saat ini ada tiga kontainer Docker yang sedang berjalan.
00:02:40Satu adalah Headscale UI, satu Headscale, dan satu lagi Caddy.
00:02:45Jika kita melihat file Docker compose-nya, kita bisa melihat konfigurasi ini sangat mirip dengan yang ada di dokumentasi Headscale untuk Docker compose.
00:02:56Meskipun saya telah mengubah beberapa hal seperti versi Headscale dan jalur direktori saya.
00:03:03Lalu saya juga punya kontainer untuk Headscale UI, yang merupakan salah satu dari banyak web UI sumber terbuka yang bisa Anda gunakan dengan Headscale.
00:03:11Saya akan menunjukkannya nanti.
00:03:13Kemudian ada Caddy yang bertindak sebagai reverse proxy.
00:03:16Saya akan menyertakan tautan ke file Docker compose khusus ini di deskripsi jika Anda tertarik.
00:03:21Juga di direktori ini, ada folder lib dan folder config.
00:03:26Folder lib, seperti yang Anda lihat di sini, utamanya untuk menyimpan database SQLite yang mengontrol informasi pengguna, node, DNS, dan banyak hal lainnya.
00:03:36Tapi di bagian konfigurasi, Anda bisa mengubahnya ke database Postgres jika tidak ingin menggunakan SQLite.
00:03:43Lalu di direktori config, ini berisi konfigurasi Tailscale dan kebijakan access control list dalam file JSON yang mudah dibaca.
00:03:52Kita akan membahas ini nanti, tapi mari kita lihat ini dulu, yang bisa Anda dapatkan dari dokumentasi Tailscale atau bahkan mengunduhnya langsung ke server Anda, seperti yang saya lakukan.
00:04:01Jika kita melihat contoh konfigurasi di GitHub, kita bisa melihat semua yang bisa diubah mulai dari server hingga prefiks dan menambahkan lokasi file kebijakan kita.
00:04:11Ini sangat mirip dengan konfigurasi saya, tapi yang saya ubah hanyalah URL server, yang terhubung ke domain Cloudflare agar node di jaringan saya tahu ke mana harus mencari node lainnya.
00:04:23Saya juga menambahkan jalur ke lokasi kebijakan saya dan hanya itu saja.
00:04:28Domainnya adalah domain Cloudflare biasa dengan rekam A yang tertuju ke alamat IP kontrol plane Headscale saya di bawah subdomain headscale.
00:04:37Dengan begitu, jika saya mengedit file caddy, Anda bisa melihat ada dua URL yang digunakan, satu untuk Headscale UI di bawah /web dan satu untuk proxy headscale.
00:04:49Setelah hal-hal itu siap, langkah pertama adalah membuat pengguna baru, yang bisa kita lakukan dengan mengetikkan perintah ini.
00:04:56Saya akan membuat pengguna bernama Tom, tapi ini bisa dinamai apa saja.
00:05:00Sekarang pengguna sudah dibuat, kita bisa menjalankan perintah list user untuk melihat semua pengguna dan kita punya pengguna baru di sini dengan ID 6.
00:05:08Tapi sekarang pengguna kita belum memiliki node yang terhubung.
00:05:11Jadi mari kita berikan beberapa node untuk Tom.
00:05:13Di dalam Ubuntu test 3, server baru yang saya buat, hal pertama yang harus dilakukan adalah menambahkan klien Tailscale, yang bisa dilakukan dengan menjalankan perintah ini di server kita.
00:05:23Sekarang ini memberi kita akses ke biner Tailscale.
00:05:27Catatan, jika Anda bukan pengguna root, Anda mungkin harus menggunakan sudo untuk menjalankan Tailscale.
00:05:31Tapi sebelum kita menjalankan perintah apa pun untuk mengaktifkan Tailscale atau login, kita perlu melakukannya dengan cara khusus agar bisa bekerja dengan Headscale.
00:05:38Untuk melakukannya, kita harus membuat beberapa kunci pra-otentikasi, yang perintahnya bisa ditemukan di halaman panduan awal dokumentasi Headscale.
00:05:46Saya akan gulir ke bawah dan menyalin perintah ini.
00:05:49Lalu di dalam kontrol plane Headscale saya, saya akan mengetik docker exec, dan tempel perintahnya.
00:05:54Di bagian yang tertulis ID pengguna, kita akan masukkan ID pengguna Tom, yaitu 6.
00:05:59Dan sebelum itu, saya harus menambahkan kata headscale kedua karena kita akan masuk ke dalam kontainer headscale.
00:06:04Dan sekarang kita sudah punya kunci pra-otentikasinya.
00:06:07Lalu kita akan salin perintah ini dan tempel di Ubuntu test 3.
00:06:11Kita kemudian salin kunci pra-otentikasi kita dan tempel di sini.
00:06:15Dan kemudian kita harus mengubah server login-nya ke server headscale kita, yang sudah kita konfigurasi menjadi headscale.pandor.css.
00:06:23Nama Pandora sudah ada yang pakai, kalau tidak saya pasti sudah mengambilnya.
00:06:26Sekarang jika kita tekan enter, seharusnya ada node baru yang ditambahkan ke jaringan headscale kita.
00:06:31Jadi jika kita kembali ke kontrol plane dan menjalankan daftar node, kita akan melihat Ubuntu test 3 di sini, milik pengguna Tom dengan alamat IP ini.
00:06:44Sekarang mari kita tambahkan Ubuntu test 1 ke pengguna Tom.
00:06:47Tapi pertama-tama saya akan menghapus node Ubuntu test yang sudah ada dengan ID 1, dan saya akan menghapusnya secara paksa untuk melewati konfirmasi apa pun.
00:06:56Setelah selesai, saya akan membuat kunci pra-otentikasi lainnya dan menambahkannya ke Ubuntu test, jangan lupa mengaktifkan SSH dengan flag SSH karena itu sudah tersedia.
00:07:06Mari kita pergi ke Ubuntu test 3 dan juga mengatur SSH, yang fungsinya untuk mengaktifkan kemampuan koneksi via SSH.
00:07:13Sekarang, jika saya lihat daftar node yang tersedia, saya punya Ubuntu test 1 di bawah sini dan Ubuntu test 3, keduanya atas nama Tom.
00:07:20Jadi mari kita hubungkan keduanya.
00:07:21Saya akan ambil IP untuk Ubuntu test 3 dan masuk ke Ubuntu test 1, lalu jalankan SSH root dengan IP tersebut.
00:07:30Dan setelah saya aktifkan kuncinya, kita bisa lihat saya sudah masuk ke Ubuntu test 3 dari Ubuntu test 1.
00:07:35Dan saya juga bisa melakukan hal yang sama dari Ubuntu test 3 ke Ubuntu test 1.
00:07:41Nah, jika Anda mengikuti langkah-langkah saya dengan tepat, ada kemungkinan besar ini tidak akan berhasil karena Anda perlu menambahkan kebijakan kontrol akses.
00:07:49Jadi biarkan saya tunjukkan milik saya.
00:07:51Jika saya bersihkan layar dan masuk ke direktori headscale saya, kita bisa melihat di folder konfigurasi ada file JSON ACL yang mudah dibaca.
00:08:01Jika saya masuk ke dalamnya, ini adalah konfigurasi yang sangat sederhana yang pada dasarnya menerima sumber apa pun, jadi siapa pun dari jaringan saya ke tujuan atau port mana pun.
00:08:11Dan juga di bawah bagian SSH, ia menerima node apa pun di dalam tailnet saya dan membiarkan mereka terhubung ke node lain via SSH tanpa persetujuan, tapi khusus untuk pengguna root.
00:08:24Tentu saja, berdasarkan jaringan dan situasi Anda, Anda mungkin ingin memperketat ini atau membuatnya lebih aman agar node tertentu hanya bisa terhubung ke node lain di port tertentu.
00:08:33Tapi ini adalah konfigurasi yang sangat simpel untuk membantu Anda memulai.
00:08:37Dan sekali lagi, saya akan sertakan tautannya di deskripsi.
00:08:40Sekarang, Anda mungkin bertanya-tanya bagaimana dengan Headscale UI?
00:08:43Apakah itu membuat seluruh proses ini jadi lebih mudah?
00:08:45Saya akan bilang ya dan tidak.
00:08:47Biar saya tunjukkan.
00:08:48Jadi ini adalah URL untuk Headscale UI saya, dan saat ini Anda bisa melihat kedua pengguna saya, Tess dan Tom, dengan beberapa informasi tentang mereka.
00:08:57Ada kunci-kunci dan node yang terhubung agar ini bisa berfungsi.
00:09:01Awalnya, Anda harus menambahkan kunci API Headscale, yang bisa didapatkan dengan menjalankan perintah ini.
00:09:06Tapi masalah yang saya hadapi adalah pada tampilan perangkat.
00:09:09Seperti yang Anda lihat, tidak banyak informasi di sini, dan ada masalah dengan konsol berupa kesalahan tipe TypeScript, yang seharusnya bukan salah saya karena saya tidak mengubah kode sumbernya.
00:09:22Tapi pada titik ini, aplikasinya cenderung membeku, jadi tidak ada yang berfungsi.
00:09:26Padahal saya seharusnya bisa menambahkan perangkat baru dari sini dan mengubah beberapa konfigurasi juga.
00:09:32Tapi karena sangat banyak bug, saya merasa ini kurang berguna.
00:09:35Sekarang ada banyak UI Headscale lainnya, beberapa di antaranya bahkan memudahkan penambahan kebijakan kontrol akses.
00:09:42Tapi menurut pendapat saya pribadi, saya belum menemukan UI Headscale yang sangat berguna.
00:09:46Jadi ya, pengaturannya memang agak rumit.
00:09:49Oke, sangat rumit malahan.
00:09:51Seseorang tanpa latar belakang teknis atau bahkan pengembang junior akan kesulitan mengaturnya sendiri.
00:09:57Itulah alasan mengapa tim Tailscale mengizinkan karyawan mereka mengerjakan ini, karena saat ini tidak menimbulkan ancaman besar bagi perusahaan mereka.
00:10:07Maksud saya, hanya butuh seseorang menggunakan Claude Opus untuk membuat UI yang sangat bagus di sekitarnya dan mereka bisa menciptakan sesuatu yang keren, yang mungkin bisa terhambat oleh lisensi ini.
00:10:18Tapi setelah semuanya berjalan, Headscale bekerja dengan sangat luar biasa.
00:10:22Meskipun ada beberapa fitur yang belum didukung, seperti perintah funnel dan serve yang bisa digunakan untuk mengekspos server ke publik atau hanya ke jaringan Anda.
00:10:32Ini juga belum mendukung beberapa tailnet, node efemeral, dan log aliran jaringan asli.
00:10:38Tapi untuk sebuah alat sumber terbuka, ini benar-benar mengesankan.
00:10:42Dan jika saya sampai pada tahap di mana saya ingin OpenClaw saya berjalan sepenuhnya offline dengan LLM lokal, maka saya mungkin akan mempertimbangkannya.

Key Takeaway

Headscale menawarkan solusi VPN mesh bertenaga Tailscale yang sepenuhnya gratis dan mandiri bagi pengguna teknis yang menginginkan privasi maksimal tanpa biaya langganan.

Highlights

Headscale adalah implementasi open-source dari server kontrol Tailscale yang memungkinkan kontrol penuh atas jaringan terenkripsi secara mandiri.

Pengguna dapat menghindari biaya langganan dan ketergantungan pada vendor dengan meng-hosting Headscale di server pribadi (self-hosting).

Headscale dikembangkan oleh seorang karyawan Tailscale

Timeline

Pengenalan Headscale dan Keuntungannya

Bagian ini memperkenalkan Headscale sebagai versi open-source dari Tailscale yang dapat diinstal di server mana pun. Pembicara menekankan bahwa alat ini memberikan kendali penuh kepada pengguna atas jaringan terenkripsi mereka, terutama jika layanan utama mengalami gangguan atau kenaikan harga. Hal yang unik adalah Headscale justru dibangun oleh seorang karyawan dari Tailscale itu sendiri. Penonton diajak untuk memahami mengapa perusahaan tersebut membiarkan adanya kompetitor internal. Bagian ini menetapkan landasan tentang pentingnya kedaulatan data dalam jaringan pribadi.

Demonstrasi Konektivitas Antar Node

Pembicara menunjukkan cara kerja Headscale menggunakan tiga server Hetzner sebagai contoh simulasi jaringan. Melalui Docker, diperlihatkan bagaimana dua node (Ubuntu Test dan Ubuntu Test 2) dapat terhubung satu sama lain menggunakan alamat IP internal. Demonstrasi SSH membuktikan bahwa koneksi hanya bisa terjadi di dalam jaringan terenkripsi atau "tailnet". Jika mencoba mengakses dari luar jaringan, koneksi akan otomatis tertahan atau menggantung demi keamanan. Keunggulan utama yang ditonjolkan adalah kemampuan untuk bekerja tanpa internet jika dihubungkan ke perangkat lokal seperti Raspberry Pi.

Arsitektur Teknis dan Konfigurasi Docker

Bagian ini mendalami aspek teknis pengaturan Headscale menggunakan Docker Compose yang melibatkan tiga kontainer utama. Kontainer tersebut adalah Headscale itu sendiri, Headscale UI untuk tampilan web, dan Caddy yang berfungsi sebagai reverse proxy. Pembicara menjelaskan struktur direktori termasuk folder 'lib' untuk database SQLite dan folder 'config' untuk kebijakan akses (ACL). Pengaturan domain dilakukan melalui Cloudflare dengan rekam A yang diarahkan ke kontrol plane Headscale. Penjelasan ini sangat krusial bagi administrator sistem yang ingin mereplikasi lingkungan yang sama di server mereka.

Proses Pembuatan Pengguna dan Registrasi Node

Langkah-langkah praktis untuk menambahkan pengguna baru dan mendaftarkan perangkat dijelaskan secara mendetail di sini. Pembicara membuat pengguna bernama 'Tom' dan mendemonstrasikan cara instalasi klien Tailscale pada server baru menggunakan perintah CLI. Penggunaan kunci pra-otentikasi (pre-auth keys) sangat ditekankan agar klien dapat masuk ke server Headscale pribadi, bukan ke server publik Tailscale. Proses ini melibatkan perintah 'docker exec' untuk menghasilkan kunci yang kemudian ditempelkan pada konfigurasi node target. Akhirnya, kedua node berhasil terhubung dan dapat melakukan komunikasi SSH satu sama lain dalam lingkungan yang aman.

Manajemen Kebijakan Akses (ACL) dan Masalah UI

Pembicara menjelaskan pentingnya file JSON ACL untuk mengatur siapa yang boleh mengakses apa di dalam jaringan. Tanpa kebijakan yang tepat, koneksi antar node mungkin akan gagal meskipun pendaftaran berhasil dilakukan. Selain itu, bagian ini mengulas tentang Headscale UI yang ternyata masih memiliki banyak kekurangan dan bug teknis, seperti kesalahan TypeScript. Pembicara merasa bahwa antarmuka grafis saat ini belum cukup matang untuk menggantikan efisiensi baris perintah. Hal ini memberikan peringatan bagi pengguna baru bahwa pengalaman mengelola Headscale akan sangat bergantung pada terminal.

Kesimpulan: Kapan Harus Menggunakan Headscale?

Video diakhiri dengan evaluasi jujur mengenai kompleksitas Headscale yang mungkin menyulitkan pengembang pemula. Pembicara berpendapat bahwa Tailscale membiarkan proyek ini ada karena belum menjadi ancaman bisnis yang signifikan bagi pengguna awam. Meskipun ada beberapa fitur canggih yang absen seperti 'funnel' atau log aliran jaringan asli, performa intinya tetap sangat mengesankan. Headscale direkomendasikan bagi mereka yang ingin menjalankan sistem sepenuhnya offline dengan LLM lokal atau infrastruktur mandiri. Ini adalah solusi jangka panjang bagi pegiat privasi yang ingin melepaskan diri dari ketergantungan cloud publik.

Community Posts

View all posts