SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor

Tailscale vs Twingate untuk VPS: pilih yang mana?

Tailscale menaruh node WireGuard di VPS Anda, Twingate memakai Connector yang memulai koneksi keluar. Bedah arsitektur, tier gratis, dan mana yang cocok untuk VPS Anda.

Jawaban singkat: Tailscale vs Twingate di depan VPS

Tailscale vs Twingate adalah dua jawaban berbeda untuk satu pertanyaan yang sama: bagaimana masuk ke VPS tanpa membuka satu pun port ke internet. Tailscale memasang node WireGuard di VPS Anda, sehingga VPS itu menjadi anggota jaringan pribadi Anda (Tailscale menyebutnya tailnet). Twingate tidak memasukkan VPS ke jaringan mana pun. Anda memasang Connector di sisi privat, lalu Connector itulah yang memulai koneksi keluar ke layanan Twingate.

Perbedaan itu yang menentukan semua hal lain di bawah ini. Jadi pilihannya sederhana. Ambil Tailscale kalau Anda ingin VPS terasa seperti mesin di jaringan lokal Anda sendiri: SSH, panel admin, database, semuanya lewat satu alamat tetap. Ambil Twingate kalau yang Anda mau adalah membuka satu layanan tertentu kepada orang tertentu, dan sisanya tetap tidak terlihat oleh perangkat mereka.

Kalau Anda belum pernah memakai keduanya, mulai dari penjelasan dasar apa itu Tailscale dan cara kerjanya dulu, karena sisa artikel ini menganggap Anda sudah paham istilah tailnet dan node.

Arsitektur yang menentukan segalanya

Tailscale membangun mesh, yaitu jaringan di mana setiap mesin bisa terhubung langsung ke mesin lain. Setiap mesin memasang daemon tailscaled dan mendapat satu alamat tetap di rentang 100.64.0.0/10. Alamat itu tidak berubah walau VPS pindah IP publik. Server koordinasi Tailscale hanya menukar kunci publik dan daftar peer. Data Anda tetap dienkripsi WireGuard dari ujung ke ujung, jadi server koordinasi tidak bisa membacanya. Kalau Anda ingin tahu mekanisme kunci dan routingnya, cryptokey routing adalah bagian WireGuard yang perlu Anda pahami, dan soal siapa memegang apa dibahas terpisah di apa yang sebenarnya dilihat dan tidak dilihat Tailscale.

Twingate memakai model yang berbeda secara mendasar. Perangkat Anda tidak pernah masuk ke jaringan privat. Client Twingate di laptop Anda menangkap trafik yang tujuannya cocok dengan sebuah Resource, lalu mengirimkannya ke Connector yang berjalan di sisi privat. Connector itu yang membuka soket ke layanan tujuan. Resource adalah satu alamat, misalnya 10.20.0.5:5432 atau panel.internal, bukan seluruh subnet. Karena itu Twingate disebut resource scoped: yang diberikan bukan jaringan, melainkan satu pintu.

Akibat praktisnya di VPS Anda begini. Dengan Tailscale, VPS menjadi anggota tailnet dan siapa pun di tailnet itu bisa mencoba mengetuk semua portnya, kecuali Anda menulis ACL (access control list, daftar aturan akses) untuk membatasinya. Dengan Twingate, VPS tetap berdiri di belakang Connector, dan orang hanya melihat Resource yang sudah Anda daftarkan. Yang satu memberi jaringan lalu Anda persempit. Yang satu memberi satu layanan lalu Anda perlebar.

Kenapa keduanya sering tertukar

Keduanya sama sama tidak butuh port masuk. Itu saja alasannya, dan itu memang alasan yang kuat. Baik tailscaled maupun Connector Twingate hanya membuka koneksi keluar, jadi firewall VPS Anda boleh tetap menolak semua trafik masuk kecuali yang sudah ada sesinya. Tidak ada lagi port 22 terbuka yang dipindai bot sepanjang hari, dan tidak ada lagi panel admin nyangkut di 0.0.0.0. Prinsip yang sama juga dipakai produk lain, misalnya Cloudflare Tunnel yang mengekspos layanan tanpa membuka port.

Karena manfaat paling terasa itu identik, orang menyimpulkan produknya juga mirip. Tidak. Yang identik adalah arah koneksinya, bukan apa yang Anda dapat setelah koneksi berdiri. Kalau Anda datang dari kebiasaan port forwarding di router, latar belakangnya ada di kenapa port forwarding bisa diganti seluruhnya.

Memasang Tailscale di VPS

Skrip resminya satu baris.

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

tailscale up akan mencetak baris seperti To authenticate, visit: https://login.tailscale.com/a/xxxxxxxx. Buka tautan itu di browser, login, dan VPS langsung muncul di tailnet. Periksa hasilnya:

tailscale status
systemctl status tailscaled

tailscale status yang sehat menampilkan satu baris per mesin dengan alamat 100.x.y.z dan kata direct diikuti alamat serta port. Kalau yang tertulis relay "sin", trafik Anda sedang lewat server relay Tailscale (DERP), bukan jalur langsung. Itu tetap jalan, tapi lebih lambat, dan penyebabnya dibahas di kenapa koneksi jadi relayed dan bukan direct.

Satu langkah yang sering dilupakan di VPS: firewall lokal tetap berlaku untuk trafik yang masuk lewat interface tailscale0. Kalau ufw Anda menolak semua trafik masuk, tambahkan sudo ufw allow in on tailscale0 atau SSH lewat tailnet akan tetap gagal walau statusnya online.

Memasang Connector Twingate di VPS

Di Twingate, Anda membuat Remote Network dan sebuah Connector di Admin Console, lalu console itu yang menghasilkan sepasang token. Perintah Docker resminya seperti ini.

docker run -d \
  --sysctl net.ipv4.ping_group_range="0 2147483647" \
  --env TWINGATE_NETWORK="nama-network-anda" \
  --env TWINGATE_ACCESS_TOKEN="<access token>" \
  --env TWINGATE_REFRESH_TOKEN="<refresh token>" \
  --name twingate-connector \
  --restart=unless-stopped \
  --pull=always \
  twingate/connector:1

Token tidak bisa ditebak atau dibuat sendiri. Keduanya lahir di Admin Console, jadi jangan menyalin token dari tutorial mana pun. Setelah container jalan, Connector akan berubah status menjadi online di Admin Console dalam beberapa detik. Kalau tetap Offline, baca lognya dengan docker logs twingate-connector. Penyebab yang paling sering adalah token tertukar antara access dan refresh, atau Connector dipasang ulang tanpa membuat token baru padahal token lama sudah dipakai.

Ada satu jebakan yang khas VPS. Kalau Anda mendaftarkan Resource dengan alamat 127.0.0.1:3000 sementara Connector jalan di dalam container Docker biasa, koneksi akan timeout. Sebabnya 127.0.0.1 di dalam container menunjuk ke container itu sendiri, bukan ke host, sehingga Connector mengetuk loopback miliknya yang kosong. Perbaikannya: arahkan Resource ke IP privat VPS, atau jalankan Connector dengan --network host agar loopbacknya sama dengan loopback host.

Kasus 1: VPS dengan panel admin yang tidak mau Anda buka

Anda punya Portainer, phpMyAdmin, atau dashboard aplikasi yang hanya boleh diakses Anda sendiri. Dua duanya sanggup, tapi hasil akhirnya berbeda.

Dengan Tailscale, bind layanan itu ke alamat tailnet VPS lalu akses dari laptop yang sudah join. Anda praktis mendapat LAN pribadi lintas negara. Bonusnya, sekali VPS jadi anggota tailnet, semua port lain ikut bisa Anda jangkau tanpa konfigurasi tambahan, termasuk SSH dan database. Itu nyaman, dan itu juga persis risikonya.

Dengan Twingate, Anda daftarkan satu Resource pada port panel saja. Laptop Anda tidak mendapat rute ke VPS, jadi port 5432 di mesin yang sama tetap tidak bisa disentuh walau Anda ingin. Untuk panel yang dipakai bersama orang non teknis, ini lebih tenang: tidak ada yang perlu paham subnet, dan tidak ada akses nyasar yang tidak sengaja Anda berikan.

Rekomendasi: panel pribadi milik sendiri, pakai Tailscale. Panel yang dipakai beberapa orang dengan peran berbeda, pakai Twingate.

Kasus 2: server di rumah di balik CGNAT IndiHome

Banyak koneksi rumahan di Indonesia berada di balik CGNAT (carrier grade NAT), yaitu NAT bertingkat di sisi operator. Artinya Anda tidak punya IP publik sendiri dan port forwarding di router tidak ada gunanya, karena port yang Anda buka bukan port yang dilihat internet.

Tailscale menyelesaikan ini dengan NAT traversal, dan kalau jalur langsung gagal, trafik jatuh ke relay DERP. Tetap tersambung, hanya lebih lambat. Twingate juga menyelesaikannya, karena Connector di rumah yang memulai koneksi keluar, sehingga CGNAT tidak pernah jadi masalah.

Bedanya ada di arah pemakaian. Kalau Anda ingin server rumah dan VPS saling bicara dua arah, Tailscale lebih pas, dan pola yang lebih luas dibahas di cara menyambungkan dua server lewat jaringan privat. Kalau Anda hanya ingin mengakses NAS di rumah dari kantor, Twingate cukup. Untuk memperkenalkan seluruh subnet rumah ke tailnet, caranya lewat subnet router yang mengumumkan rentang privat Anda.

Kasus 3: tim kecil, satu orang resign bulan depan

Ini pertanyaan operasional, dan di sini Twingate memang lebih rapi secara bawaan.

Di Twingate, akses diberikan ke Resource untuk Group tertentu. Anda cabut orangnya dari Group, dan akses ke Resource itu hilang saat itu juga. Tidak ada kunci yang tertinggal di laptopnya, karena yang dipegang klien hanyalah sesi yang bergantung pada identitas.

Di Tailscale, mencabut satu orang berarti menghapus user itu dari tailnet lewat Admin Console dan memastikan perangkatnya ikut terhapus. Selama devicenya masih terdaftar, kunci di mesin itu masih valid. ACL Tailscale sanggup membatasi siapa boleh ke mana, tapi ACL adalah pekerjaan yang harus Anda tulis. Bawaan tailnet adalah semua mesin saling terhubung.

Satu tambahan yang sering menolong: di Tailscale, VPS sebaiknya di join dengan auth key bertag, bukan dengan akun pribadi seseorang. Kalau VPS di join memakai akun karyawan yang resign, menghapus akun itu ikut menjatuhkan servernya.

Bentuk tier gratis, dan soal tagihan dolar

Jangan hafalkan angkanya, hafalkan bentuknya, karena harga berubah dan halaman resmi selalu lebih benar daripada artikel.

Tier gratis Tailscale dihitung per pengguna dengan perangkat pribadi tanpa batas, ditambah kuota tagged resource untuk mesin server. Per September 2026, batasnya enam pengguna dengan sekitar 50 tagged resource. Jadi biaya Anda naik saat jumlah orang bertambah, bukan saat jumlah VPS bertambah. Rinciannya, termasuk apa yang dihitung sebagai tagged resource, ada di batas paket gratis Tailscale dan sisi berbayarnya di cara Tailscale menghitung tagihan per seat.

Tier gratis Twingate (Starter) dihitung per pengguna juga, tetapi dengan plafon tambahan pada jumlah Remote Network dan jumlah Resource. Per September 2026 angkanya lima pengguna, lima perangkat per pengguna, sepuluh Remote Network, dan 50 Resource. Bentuk ini menekan Anda dari dua arah: jumlah orang, dan jumlah pintu yang Anda daftarkan. Kalau satu VPS Anda punya belasan layanan yang semuanya ingin diakses, hitungan Resource habis lebih cepat daripada yang Anda kira. Cek tailscale.com/pricing dan twingate.com/pricing sebelum memutuskan, bukan artikel ini.

Satu kalimat jujur soal anggaran: keduanya menagih dalam dolar Amerika. Biaya rupiah Anda ikut bergerak mengikuti kurs setiap bulan, dan pembayaran biasanya minta kartu berlogo internasional. Untuk tim kecil di Indonesia, selisih kurs kadang lebih menentukan daripada selisih fitur. Kalau ini jadi penghalang, Headscale sebagai control server Tailscale yang Anda hosting sendiri menghapus biaya langganan dengan menukarnya jadi pekerjaan operasional, dan opsi lain terkumpul di daftar alternatif Tailscale.

Model ancaman: apa yang dijaga, dan apa yang tidak

Tailscale menjaga satu hal dengan sangat baik: layanan Anda tidak lagi punya permukaan di internet publik. Yang tidak dijaganya secara bawaan adalah gerakan lateral di dalam tailnet. Satu laptop yang disusupi berarti penyerang berada di jaringan yang sama dengan semua server Anda. ACL memperbaiki ini, dan ACL wajib Anda tulis sendiri. Jangan anggap tailnet otomatis aman hanya karena tertutup dari luar. Soal apakah Tailscale sendiri layak disebut VPN dalam arti yang biasa orang pakai, ada bahasan terpisah di Tailscale itu VPN atau bukan.

Twingate menjaga hal yang berbeda: akses selalu terikat pada satu Resource dan satu identitas. Gerakan lateral jauh lebih sempit karena memang tidak ada rute jaringan untuk dijelajahi. Yang tidak dijaganya adalah apa yang terjadi setelah trafik sampai di Connector. Connector punya akses jaringan penuh ke sisi privat, jadi mesin yang menjalankan Connector adalah aset yang harus Anda jaga seketat mungkin. Selain itu, Twingate menambah ketergantungan pada layanan vendor untuk setiap koneksi, dan kalau layanan itu terganggu, akses Anda ikut terganggu.

Saya menulis lebih sering tentang model mesh, dan itu bukan berarti model mesh lebih unggul. Untuk satu admin dengan beberapa VPS, mesh lebih sederhana dan lebih murah. Untuk lima belas orang dengan peran berbeda dan audit yang harus dilaporkan, model resource scoped memberi Anda jawaban yang lebih pendek saat ditanya siapa bisa mengakses apa.

Kegagalan umum dan pesan yang akan Anda lihat

Node Tailscale hilang sendiri setelah beberapa bulan. Kunci node punya masa berlaku bawaan, dan saat habis, VPS keluar dari tailnet tanpa ada yang error di aplikasi Anda. Admin Console menandainya sebagai key expired. Untuk server, matikan key expiry pada device itu, atau join memakai auth key yang tidak kedaluwarsa.

SSH lewat tailnet timeout padahal status online. Biasanya firewall lokal. Uji dengan tailscale ping <nama-mesin>, yang berjalan di luar jalur TCP biasa. Kalau ping tailnet berhasil tapi SSH tidak, masalahnya di ufw atau nftables VPS, bukan di Tailscale. Beda gejala timeout dan connection refused dijelaskan di dua pesan error SSH yang artinya berbeda jauh.

Connector Twingate online tapi Resource tidak bisa dibuka. Periksa alamat Resource dari sudut pandang Connector, bukan dari sudut pandang Anda. Masuk ke mesin Connector dan jalankan curl -v <alamat resource> di sana. Kalau dari mesin itu saja gagal, masalahnya di jaringan privat Anda dan Twingate tidak akan bisa memperbaikinya.

FAQ

Apakah Twingate memakai WireGuard seperti Tailscale?

Tidak. Tailscale dibangun di atas WireGuard, sehingga enkripsinya adalah enkripsi WireGuard dan Anda bisa memeriksanya dengan alat WireGuard biasa. Twingate memakai protokol buatannya sendiri antara Client, layanan Twingate, dan Connector. Artinya Anda tidak bisa menyambung ke Twingate dengan klien WireGuard standar, dan Anda tidak bisa memindahkan konfigurasi dari satu produk ke produk lain.

Server rumah saya di balik CGNAT IndiHome. Apakah keduanya tetap bisa dipakai?

Bisa, keduanya. CGNAT hanya melarang koneksi masuk, sedangkan Tailscale dan Twingate sama sama memulai koneksi keluar. Pada Tailscale, kalau NAT traversal gagal menemukan jalur langsung, trafik jatuh ke relay DERP dan tailscale status akan menampilkan kata relay alih alih direct. Koneksi tetap hidup, hanya latensinya naik.

Apakah saya perlu membuka port di firewall VPS?

Tidak ada port masuk yang perlu dibuka untuk keduanya. Yang perlu Anda pastikan adalah trafik keluar tidak diblokir, terutama HTTPS pada port 443 dan trafik UDP. Yang sering terlewat justru firewall lokal pada interface baru: untuk Tailscale, trafik masuk dari tailnet tetap melewati ufw, jadi tambahkan sudo ufw allow in on tailscale0 kalau kebijakan bawaan Anda menolak semua koneksi masuk.

Bagaimana cara mencabut akses saat satu anggota tim keluar?

Di Twingate, hapus orang itu dari Group yang memegang Resource, dan aksesnya berhenti seketika karena setiap koneksi diperiksa terhadap identitasnya. Di Tailscale, hapus user tersebut di Admin Console dan pastikan semua devicenya ikut terhapus, karena kunci yang masih terdaftar masih berlaku. Untuk VPS, join memakai auth key bertag sejak awal agar server tidak ikut hilang saat akun pribadi seseorang dihapus.