SSD Nodes Learn 🎉 VPS mulai $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-13

Cara Menjadikan VPS sebagai Exit Node Tailscale

Pelajari cara menjadikan VPS sebagai exit node Tailscale, termasuk instalasi, IP forwarding, persetujuan rute di konsol admin, serta perbaikan DNS dan IPv6.

Fungsi exit node Tailscale

Exit node Tailscale adalah mesin di tailnet yang meneruskan seluruh trafik Internet dari perangkat lain. VPS (virtual private server) cocok digunakan karena memiliki alamat publik tetap dan selalu aktif. Konfigurasinya terdiri dari lima langkah: menginstal Tailscale di server, mengiklankan exit node, mengaktifkan IP forwarding, menyetujui rute di konsol admin, lalu memilih node tersebut di laptop. Langkah keempat dilakukan dengan mengaktifkan toggle pada halaman web, bukan dengan menjalankan perintah. Di sinilah sebagian besar pengguna mengalami kendala.

Setelah aktif, laptop mengenkripsi setiap paket dan mengirimkannya ke VPS. VPS menerapkan source NAT (network address translation), lalu meneruskan paket menggunakan alamat IP publiknya sendiri. Situs web akan melihat VPS. Wi-Fi kafe hanya melihat satu aliran UDP terenkripsi menuju VPS dan tidak melihat lalu lintas lainnya.

Tailscale menggunakan WireGuard untuk jalur data, serta server koordinasi yang mendistribusikan key dan membantu dua mesin menemukan satu sama lain melalui NAT. Server koordinasi tersebut membuat Anda tidak perlu menyalin key pada langkah-langkah di bawah ini. Untuk penjelasan lengkap tentang komprominya, baca perbandingan Tailscale dan WireGuard biasa. Jika Anda ingin mengelola seluruh bagian tunnel sendiri, gunakan self-host VPN WireGuard biasa di VPS Anda.

Langkah-langkah di bawah ini mengasumsikan Tailscale sudah berjalan di laptop Anda dan kedua mesin masuk ke tailnet yang sama. Tailnet adalah jaringan Tailscale privat Anda. Setiap perangkat di dalamnya memperoleh alamat stabil di dalam 100.64.0.0/10.

Instal Tailscale pada VPS

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

Skrip instalasi memilih repositori paket untuk distribusi Anda lalu menginstal daemon tailscaled. Setelah itu, tailscale up menampilkan URL autentikasi. Buka URL tersebut di browser dan masuk menggunakan akun yang sama dengan yang digunakan laptop Anda, karena VPS yang masuk ke tailnet berbeda sama sekali tidak dapat melayani laptop Anda.

tailscale status
tailscale ip -4

tailscale status kini seharusnya menampilkan kedua mesin. tailscale ip -4 menampilkan alamat tailnet VPS, yang nantinya Anda berikan kepada klien.

Tailscale memerlukan perangkat TUN untuk membangun tunnel. Pada VPS KVM, perangkat tersebut tersedia. Pada paket yang menggunakan virtualisasi berbasis container dan berbagi kernel host, /dev/net/tun terkadang tidak tersedia sehingga tailscaled tidak dapat membuat antarmuka tailscale0. Jalankan ls -l /dev/net/tun sebelum melanjutkan.

Aktifkan IP forwarding, atau VPS akan membuang semua paket

Mesin Linux membuang paket apa pun yang tidak ditujukan kepadanya, karena net.ipv4.ip_forward secara default bernilai 0. Exit node akan menerima trafik Anda, mendekripsinya, lalu membuangnya. Tulis pengaturan ini ke file agar tetap berlaku setelah reboot.

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

tee -a menambahkan isi, sehingga menjalankan baris ini untuk kedua kalinya akan menulis kedua pengaturan dua kali. Hasilnya tetap berfungsi, tetapi cat /etc/sysctl.d/99-tailscale.conf akan terlihat aneh. Konfirmasikan nilai yang sedang aktif, bukan hanya mengandalkan file:

sysctl net.ipv4.ip_forward

Perintah tersebut harus mencetak net.ipv4.ip_forward = 1. Jika langkah ini dilewati dan Anda menggunakan tailscale up --advertise-exit-node, client akan memberi tahu Anda:

Warning: IP forwarding is disabled, subnet routing/exit nodes will not work.

tailscale set --advertise-exit-node tidak menjalankan pemeriksaan tersebut, sehingga tidak adanya output dari set bukan bukti bahwa forwarding aktif. Baca sendiri nilai sysctl tersebut.

Anda tidak perlu menulis aturan masquerade secara manual. tailscaled memasang chain firewall-nya sendiri, yang bernama ts-input, ts-forward, dan ts-postrouting. Aturan NAT untuk trafik exit node berada di ts-postrouting. Tampilkan aturan tersebut dengan sudo iptables-save | grep ts-, atau gunakan sudo nft list ruleset pada mesin yang memakai nftables.

Iklankan VPS sebagai exit node

sudo tailscale set --advertise-exit-node

tailscale set mengubah satu preferensi dan membiarkan preferensi lainnya tetap. tailscale up --advertise-exit-node juga mengiklankan node, tetapi memiliki efek samping: up menganggap flag pada baris perintahnya sebagai seluruh kumpulan pengaturan non-default. Akibatnya, sudo tailscale up tanpa argumen berikutnya gagal dijalankan dan menampilkan

changing settings via 'tailscale up' requires mentioning all
non-default flags. To proceed, either re-run your command with --reset or
use the command below to explicitly mention the current value of
all non-default settings:

Gunakan set untuk perubahan berikutnya agar pesan tersebut tidak muncul.

Pengiklanan merupakan penawaran. VPS kini memberi tahu server koordinasi bahwa VPS tersebut bersedia menjadi exit node. Belum ada client yang dapat menggunakannya.

Setujui exit node Tailscale di konsol admin

Ini adalah langkah yang tidak memiliki perintah. Buka halaman Machines di konsol admin, cari VPS tersebut, buka menu tiga titik di ujung barisnya, pilih Edit route settings, lalu aktifkan Use as exit node.

Sebelum opsi tersebut diaktifkan, control plane menyimpan tawaran itu dan tidak memberikannya kepada siapa pun. tailscale exit-node list di laptop Anda tidak menampilkan apa pun, dan trafik Anda tetap menggunakan rute normal. Tidak ada pesan error pada kedua mesin. Exit node tersebut tidak pernah muncul.

Anda dapat menyetujui exit node secara otomatis dengan menambahkan entri ke file kebijakan tailnet:

"autoApprovers": {
  "exitNode": ["tag:exit"],
}

Perangkat yang diaktifkan dengan --advertise-tags=tag:exit akan disetujui secara otomatis, selama tag:exit ditetapkan di bawah tagOwners dalam file kebijakan yang sama. Pemberian tag mengubah kepemilikan: perangkat bertag menjadi milik tailnet, bukan akun pengguna Anda, dan aturan akses yang berlaku untuk perangkat tersebut ikut berubah. Untuk satu VPS, opsi tersebut lebih sederhana.

Pilih exit node pada laptop Anda

Pada klien Linux:

tailscale exit-node list
sudo tailscale set --exit-node=vps.your-tailnet.ts.net

exit-node list menampilkan exit node yang disetujui di tailnet Anda beserta alamatnya. Daftar kosong berarti proses persetujuan belum dilakukan. Pada macOS, Windows, iOS, dan Android, pilihan yang sama tersedia sebagai item menu di bawah Exit Node pada aplikasi Tailscale.

Verifikasi dari klien, bukan dari server:

curl -4 https://ifconfig.me

Jalankan perintah ini satu kali sebelum memilih exit node dan satu kali setelahnya. Alamat tersebut harus berubah dari alamat lokal Anda menjadi IP publik VPS. Untuk berhenti menggunakan exit node:

sudo tailscale set --exit-node=

Ada satu flag lain yang penting sejak hari pertama. Saat exit node dipilih, klien mengirimkan semua trafik melalui tunnel, termasuk paket yang ditujukan ke 192.168.1.50, sehingga printer dan penyimpanan jaringan Anda tidak lagi merespons. Pertahankan jaringan lokal pada rute lokal:

sudo tailscale set --exit-node=<name> --exit-node-allow-lan-access=true

Mengapa DNS berubah saat exit node diaktifkan

Secara default, perangkat yang menggunakan exit node juga menggunakan exit node tersebut sebagai resolver DNS (domain name system) untuk setiap domain. Pengaturan ini menggantikan nameserver global dan split DNS yang dikonfigurasi untuk tailnet Anda. Perilaku ini memang disengaja. Jika query tetap dikirim ke resolver jaringan lokal, router kafe masih dapat melihat nama setiap situs yang Anda kunjungi, meskipun trafiknya bersifat privat. Nama domain dan paket seharusnya keluar dari tempat yang sama.

Salah satu dampaknya dirasakan oleh pengguna yang menjalankan resolver internal: nameserver tailnet yang Anda perlukan tidak lagi digunakan saat exit node aktif. Aktifkan Use with exit node untuk nameserver tersebut pada halaman DNS di konsol admin agar dapat digunakan kembali.

Nama MagicDNS tetap berfungsi karena client Tailscale menjawabnya secara lokal di 100.100.100.100 sebelum apa pun mencapai exit node. Periksa dengan dig @100.100.100.100 your-vps.your-tailnet.ts.net, atau pada client systemd-resolved dengan resolvectl status. Pada output tersebut, interface Tailscale mencantumkan 100.100.100.100 sebagai server DNS-nya.

Jika Anda menonaktifkan pengelolaan DNS Tailscale dengan --accept-dns=false, client tetap menggunakan resolver yang diperolehnya dari jaringan lokal. Trafik diteruskan melalui tunnel, tetapi query DNS tidak. Kondisi ini merupakan kebocoran DNS yang sama seperti pada tunnel WireGuard yang dibuat secara manual. Biarkan --accept-dns apa adanya, kecuali Anda memiliki alasan khusus untuk mengubahnya.

IPv6 melalui exit node

Exit node mengiklankan kedua rute default, 0.0.0.0/0 dan ::/0. Jika VPS tidak memiliki jalur IPv6 yang berfungsi ke Internet, paket IPv6 tiba melalui tunnel lalu berhenti di sana. Uji pada VPS sebelum mengandalkannya:

ip -6 addr show
curl -6 https://ifconfig.me

Permintaan yang gagal berarti VPS tidak memiliki upstream IPv6. Situs dual-stack biasanya tetap dapat dimuat karena client menyerah menggunakan IPv6 lalu mencoba kembali melalui IPv4, meskipun percobaan ulang tersebut menambah jeda pada koneksi pertama ke setiap situs. Destinasi yang hanya mendukung IPv6 tetap tidak dapat dijangkau.

Bagian lainnya adalah forwarding. net.ipv4.ip_forward = 1 dengan net.ipv6.conf.all.forwarding yang tetap bernilai 0 menghasilkan jalur IPv4 yang berfungsi dan black hole untuk IPv6. Bagi pengguna, kondisi ini tampak sebagai "sejumlah situs lambat", bukan sebagai error yang dapat dicari. Kedua baris tersebut harus dimasukkan ke file sysctl.

Haruskah VPS juga mengiklankan rute subnet?

Exit node membawa seluruh trafik Internet. Rute subnet membawa satu rentang privat yang berada di belakang mesin yang mengiklankannya. Keduanya merupakan fitur terpisah dengan persetujuan terpisah, dan satu mesin dapat menjalankan keduanya.

sudo tailscale set --advertise-routes=10.0.0.0/24

Iklankan subnet jika VPS berbagi jaringan privat dengan server lain yang ingin Anda akses melalui alamat privatnya. Setujui rute tersebut pada panel Edit route settings yang sama, menggunakan toggle tersendiri.

Pilih rentangnya dengan cermat. Rute yang diiklankan lebih spesifik daripada rute default laptop Anda. Karena itu, jika VPS mengiklankan 192.168.1.0/24, rute tersebut akan mengambil alih alamat pada jaringan rumah yang menggunakan rentang yang sama, sehingga perangkat di meja Anda tidak lagi dapat berkomunikasi. Gunakan rentang yang Anda pilih sendiri, bukan rentang yang dipilihkan oleh router rumah.

Percepat exit node dengan penerusan UDP GRO

Tailscale 1.54 dan yang lebih baru, pada kernel Linux 6.2 atau yang lebih baru, dapat menggunakan receive offload untuk meningkatkan throughput trafik yang diteruskan. GRO (generic receive offload) menggabungkan paket yang masuk sebelum kernel memprosesnya satu per satu. Per Agustus 2026, langkah ini masih harus dilakukan secara manual pada exit node.

sudo apt install -y ethtool
NETDEV=$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")
sudo ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list off

ip -o route get 8.8.8.8 melaporkan interface yang benar-benar terhubung ke Internet, sehingga Anda tidak perlu menebak antara eth0, ens3, dan enp1s0. Konfirmasikan dengan ethtool -k $NETDEV | grep udp-gro-forwarding, yang sekarang seharusnya menampilkan on.

Pengaturan ini hilang setelah reboot. Pada sistem yang menjalankan networkd-dispatcher, otomatisasi pengaturan tersebut:

printf '#!/bin/sh\n\nethtool -K %s rx-udp-gro-forwarding on rx-gro-list off \n' "$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")" | sudo tee /etc/networkd-dispatcher/routable.d/50-tailscale
sudo chmod 755 /etc/networkd-dispatcher/routable.d/50-tailscale

Periksa terlebih dahulu apakah /etc/networkd-dispatcher/routable.d/ ada. Jika tidak ada, mesin tersebut tidak menjalankan networkd-dispatcher. Gunakan systemd unit kecil yang menjalankan baris ethtool saat boot untuk mendapatkan hasil yang sama.

Makna kebijakan penggunaan yang dapat diterima provider Anda terhadap trafik keluar

Setiap paket yang dikirim client melalui exit node keluar dengan alamat IP publik VPS, sehingga paket tersebut dikaitkan dengan akun Anda. Laporan penyalahgunaan masuk ke inbox Anda, misalnya pemberitahuan hak cipta dan keluhan tentang pemindaian port. Baca AUP (acceptable use policy) provider Anda sebelum merutekan trafik rumah tangga atau tim melalui satu server, dan jangan membuka exit node untuk orang yang tidak dapat Anda pertanggungjawabkan.

Penggunaan bandwidth dihitung dua kali. Trafik masuk ke VPS melalui tunnel, lalu keluar lagi menuju Internet. Kedua arah tersebut biasanya dihitung terhadap kuota transfer pada paket. Streaming video yang ditonton melalui exit node menggunakan bandwidth lebih besar daripada yang diperkirakan kebanyakan orang.

Rentang alamat datacenter juga memiliki reputasi tertentu. Beberapa situs menampilkan lebih banyak CAPTCHA untuk alamat tersebut, dan beberapa layanan streaming langsung menolaknya. Tidak ada konfigurasi Anda yang dapat mengubah hal itu karena hal tersebut merupakan karakteristik blok alamat yang dimiliki provider Anda.

Mengapa trafik tetap keluar melalui koneksi lokal Anda

Exit node sudah diiklankan, tetapi belum disetujui. tailscale exit-node list pada client tidak menampilkan apa pun, dan tidak ada mesin yang mencatat error. Buka halaman Machines, lalu aktifkan Use as exit node.

Client belum memilihnya. Persetujuan membuat node tersedia untuk tailnet. Pemilihan node merupakan tindakan terpisah pada setiap perangkat. Jalankan kembali sudo tailscale set --exit-node=<name>, lalu periksa curl -4 https://ifconfig.me sekali lagi.

Forwarding dinonaktifkan. Gejalanya spesifik: tailscale ping <vps> berhasil, tunnel jelas sudah aktif, tetapi setiap alamat eksternal mengalami timeout. sysctl net.ipv4.ip_forward menampilkan nilai 0. Perbaiki file sysctl, lalu jalankan sudo sysctl -p /etc/sysctl.d/99-tailscale.conf.

Firewall menjatuhkan paket yang diteruskan. tailscaled membuat chain ts-forward sendiri, dan pada VPS yang bersih hal itu sudah cukup. Server yang sudah menjalankan ufw atau Docker dapat memiliki kebijakan FORWARD DROP, dengan rules yang ditempatkan sebelum rules milik Tailscale. Jangan menebak penyebabnya: jalankan sudo iptables -L FORWARD -n -v saat client mencoba memuat halaman, lalu pantau counter mana yang berubah. Pada server yang menggunakan ufw, perbaikan yang biasanya diperlukan adalah DEFAULT_FORWARD_POLICY="ACCEPT" dalam /etc/default/ufw, lalu sudo ufw reload. Periksa juga network firewall milik provider pada control panel karena firewall tersebut merupakan kontrol terpisah dari semua firewall yang berjalan di server.

Koneksi berfungsi, tetapi lambat. Jalankan tailscale netcheck pada kedua mesin. Jika hasilnya menunjukkan UDP diblokir, kedua perangkat tidak dapat membuat jalur langsung dan akan beralih ke relay DERP, yang menambah latensi pada setiap koneksi. Mengizinkan UDP masuk pada port 41641 ke VPS melalui network firewall provider biasanya memulihkan jalur langsung.

Kapan perlu meninggalkan coordination server Tailscale

Semua langkah di atas bergantung pada coordination server yang di-host Tailscale untuk pertukaran key dan persetujuan yang Anda klik. Trafik Anda tetap berjalan langsung dari laptop ke VPS, dan coordination server tidak pernah membawanya. Namun, server tersebut menentukan siapa yang boleh bergabung ke tailnet dan perangkat mana yang dapat dijangkau setiap perangkat. Jika dependensi itu yang ingin Anda hapus, jalankan Headscale sebagai control server Tailscale milik Anda sendiri dan arahkan kedua client ke server tersebut. Setelah itu, langkah exit node tetap sama. Persetujuan route dilakukan melalui command line Headscale, bukan melalui console yang di-host Tailscale. Headscale menggantikan control plane, tetapi Anda tetap menggunakan client Tailscale. Jika Anda ingin menjalankan seluruh stack sendiri, NetBird menyediakan coordination server dan client-nya sendiri yang dapat Anda host pada satu VPS.

FAQ

Mengapa trafik saya tetap menggunakan koneksi lokal setelah memilih exit node?

Ada dua penyebab umum. Exit node telah diiklankan, tetapi belum disetujui: buka halaman Machines di konsol admin, cari VPS, pilih Edit route settings, lalu aktifkan Use as exit node. Persetujuan dilakukan dengan toggle di konsol. Tidak ada perintah di server yang dapat melakukan persetujuan tersebut. Penyebab kedua berbeda: IP forwarding nonaktif. Tunnel berhasil dibuat, tailscale ping ke VPS berfungsi, tetapi semua alamat eksternal mengalami timeout. Periksa dengan sysctl net.ipv4.ip_forward. Nilainya harus 1.

Apakah saya harus menyetujui exit node secara manual setiap kali?

Toggle tersebut hanya perlu diaktifkan sekali untuk setiap mesin. Jika Anda sering membangun ulang VPS, tambahkan blok autoApprovers ke file kebijakan tailnet yang berisi "exitNode": ["tag:exit"], tetapkan tag:exit di bawah tagOwners, lalu aktifkan node dengan --advertise-tags=tag:exit. Perangkat bertag dimiliki oleh tailnet, bukan oleh akun pengguna Anda. Karena itu, aturan akses yang berlaku untuk perangkat tersebut juga berubah.

Server DNS mana yang digunakan laptop saya saat exit node aktif?

Exit node itu sendiri. Perangkat yang menggunakan exit node mengirimkan semua kueri DNS ke sana. Hal ini mengesampingkan nameserver DNS global dan split DNS yang ditetapkan untuk tailnet. Jaringan lokal tidak lagi dapat melihat nama yang Anda cari. Agar satu nameserver tailnet tetap berlaku, aktifkan Use with exit node untuk nameserver tersebut pada halaman DNS di konsol admin. Nama MagicDNS tetap dapat di-resolve karena klien Tailscale menjawabnya secara lokal pada 100.100.100.100.

Apakah satu VPS dapat menjadi exit node dan subnet router secara bersamaan?

Ya. sudo tailscale set --advertise-exit-node dan sudo tailscale set --advertise-routes=10.0.0.0/24 bersifat independen, dan masing-masing memiliki toggle persetujuan sendiri di bawah Edit route settings. IP forwarding harus diaktifkan pada VPS untuk keduanya. Hindari mengiklankan rentang yang sama dengan jaringan rumah laptop Anda. Rute yang diiklankan lebih spesifik daripada rute default, sehingga perangkat lokal Anda menjadi tidak dapat dijangkau.

Apakah exit node menyembunyikan trafik saya dari penyedia VPS?

Tidak. Tunnel berakhir di VPS. Karena itu, trafik meninggalkan server dalam bentuk yang diharapkan oleh tujuan, dan penyedia Anda membawanya tanpa enkripsi jika situs tujuan itu sendiri tidak menggunakan enkripsi. Exit node memindahkan titik tempat trafik Anda bergabung ke Internet, dari jaringan tempat Anda berada ke server yang Anda sewa. Exit node menyembunyikan aktivitas penelusuran Anda dari Wi-Fi kafe dan ISP rumah, tetapi aktivitas yang sama terlihat oleh penyedia VPS bersama nama akun Anda.