Cara Jadikan VPS Sebagai Tailscale Exit Node
Ketahui langkah mudah menjadikan VPS anda sebagai Tailscale exit node. Panduan ini merangkumi pemasangan, pengaktifan IP forwarding, serta konfigurasi route pada konsol.
Fungsi exit node Tailscale
Exit node Tailscale ialah mesin dalam tailnet anda yang membawa semua trafik internet untuk peranti anda yang lain. VPS (virtual private server) sangat sesuai untuk tujuan ini kerana ia mempunyai alamat awam yang tetap dan sentiasa dalam talian. Penyediaannya melibatkan lima langkah: pasang Tailscale pada pelayan, iklankan exit node tersebut, aktifkan IP forwarding, luluskan laluan (route) dalam konsol pentadbir, kemudian pilih nod tersebut pada komputer riba anda. Langkah keempat ialah togol dalam halaman web dan bukannya arahan, dan di sinilah kebanyakan pengguna tersangkut.
Setelah diaktifkan, komputer riba anda akan menyulitkan setiap paket dan menghantarnya ke VPS. VPS akan menggunakan source NAT (network address translation) dan menghantar paket tersebut dengan alamat IP awamnya sendiri. Laman web hanya melihat VPS tersebut. Wi-Fi kafe pula hanya melihat satu aliran UDP yang disulitkan ke VPS dan tiada maklumat lain.
Tailscale ialah WireGuard untuk laluan data ditambah dengan pelayan koordinasi yang mengedarkan kunci dan membantu dua mesin mencari satu sama lain melalui NAT. Pelayan koordinasi itulah sebabnya tiada penyalinan kunci diperlukan di bawah. Untuk perbandingan kelebihan dan kekurangan yang ditulis dengan terperinci, baca perbandingan antara Tailscale dan WireGuard biasa. Jika anda lebih suka mengurus setiap bahagian terowong sendiri, hos sendiri VPN WireGuard biasa pada VPS anda sebagai alternatif.
Langkah-langkah di bawah mengandaikan Tailscale sudah berjalan pada komputer riba anda, dan kedua-dua mesin telah mendaftar masuk ke tailnet yang sama. Tailnet ialah rangkaian Tailscale peribadi anda, dan setiap peranti di dalamnya mendapat alamat yang stabil dalam 100.64.0.0/10.
Memasang Tailscale pada VPS anda
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale upSkrip pemasangan akan memilih repositori pakej untuk pengedaran anda dan memasang daemon tailscaled. tailscale up kemudian akan memaparkan URL pengesahan. Buka URL tersebut dalam pelayar web dan log masuk menggunakan akaun yang sama dengan akaun pada komputer riba anda, kerana VPS yang log masuk ke tailnet berbeza tidak boleh berhubung dengan komputer riba anda sama sekali.
tailscale status
tailscale ip -4tailscale status kini sepatutnya menyenaraikan kedua-dua mesin. tailscale ip -4 akan memaparkan alamat tailnet VPS tersebut, iaitu alamat yang akan anda berikan kepada klien kemudian.
Tailscale memerlukan peranti TUN untuk membina terowong. Pada VPS KVM, peranti tersebut sudah tersedia. Pada pelan yang dibina dengan virtualisasi kontena yang berkongsi kernel hos, /dev/net/tun kadangkala tiada, dan tailscaled tidak dapat mencipta antaramuka tailscale0. Jalankan ls -l /dev/net/tun sebelum anda meneruskan langkah seterusnya.
Dayakan IP forwarding, atau VPS akan menggugurkan setiap paket
Mesin Linux akan menggugurkan sebarang paket yang tidak ditujukan kepadanya, kerana net.ipv4.ip_forward ditetapkan kepada 0 secara lalai. Exit node akan menerima trafik anda, menyahsulitnya, kemudian membuangnya. Tulis tetapan ini ke dalam fail supaya ia kekal selepas but semula.
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.conftee -a melakukan penambahan (append), jadi menjalankan baris ini buat kali kedua akan menulis kedua-dua tetapan sebanyak dua kali. Hasilnya masih berfungsi, tetapi cat /etc/sysctl.d/99-tailscale.conf akan kelihatan pelik. Sahkan nilai semasa (live value) dan jangan hanya mempercayai fail tersebut:
sysctl net.ipv4.ip_forwardIa mesti memaparkan net.ipv4.ip_forward = 1. Jika anda melangkau langkah ini dan menggunakan tailscale up --advertise-exit-node, klien akan memberitahu anda:
Warning: IP forwarding is disabled, subnet routing/exit nodes will not work.tailscale set --advertise-exit-node tidak menjalankan semakan tersebut, jadi ketiadaan output daripada set bukanlah bukti bahawa forwarding telah diaktifkan. Baca sendiri nilai sysctl tersebut.
Anda tidak perlu menulis peraturan masquerade secara manual. tailscaled memasang rantaian firewallnya sendiri, yang dinamakan ts-input, ts-forward dan ts-postrouting, dan peraturan NAT untuk trafik exit node terletak di dalam ts-postrouting. Lihat peraturan tersebut dengan sudo iptables-save | grep ts-, atau sudo nft list ruleset pada sistem yang menggunakan nftables.
Mengiklankan VPS sebagai nod keluar
sudo tailscale set --advertise-exit-nodetailscale set mengubah satu keutamaan dan membiarkan yang lain tidak berubah. tailscale up --advertise-exit-node turut mengiklankan nod tersebut, dan ia membawa kesan sampingan: up menganggap flag pada baris perintahnya sebagai set lengkap tetapan bukan lalai, jadi sudo tailscale up kosong yang dijalankan kemudian akan enggan berfungsi dan memaparkan
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 berterusan supaya anda tidak akan menemui mesej tersebut.
Pengiklanan ialah satu tawaran. VPS kini memberitahu pelayan penyelarasan bahawa ia bersedia untuk menjadi nod keluar. Tiada klien yang boleh menggunakannya lagi buat masa ini.
Luluskan exit node Tailscale dalam konsol pentadbir
Ini adalah langkah yang tidak melibatkan sebarang arahan. Buka halaman Machines dalam konsol pentadbir, cari VPS tersebut, buka menu tiga titik di hujung barisnya, pilih Edit route settings, dan aktifkan Use as exit node.
Selagi togol tersebut tidak diaktifkan, control plane akan menahan tawaran tersebut dan tidak memberikannya kepada sesiapa. tailscale exit-node list pada komputer riba anda tidak menunjukkan apa-apa, dan trafik anda terus menggunakan laluan biasa. Tiada mesej ralat pada mana-mana mesin. Exit node tersebut tidak akan muncul.
Anda boleh meluluskan exit node secara automatik dengan entri dalam fail polisi tailnet:
"autoApprovers": {
"exitNode": ["tag:exit"],
}Peranti yang dihidupkan dengan --advertise-tags=tag:exit kemudiannya akan diluluskan secara automatik, selagi tag:exit ditakrifkan di bawah tagOwners dalam fail polisi yang sama. Pelabelan (tagging) mengubah pemilikan: peranti yang dilabel menjadi milik tailnet dan bukannya milik akaun pengguna anda, dan peraturan akses yang terpakai padanya turut berubah. Untuk satu VPS, penggunaan togol adalah lebih mudah.
Pilih exit node pada komputer riba anda
Pada klien Linux:
tailscale exit-node list
sudo tailscale set --exit-node=vps.your-tailnet.ts.netexit-node list memaparkan senarai exit node yang diluluskan dalam tailnet anda berserta alamatnya. Senarai kosong bermakna langkah kelulusan belum dilakukan. Pada macOS, Windows, iOS dan Android, pilihan yang sama merupakan item menu di bawah Exit Node dalam aplikasi Tailscale.
Sahkan daripada klien, jangan sekali-kali daripada pelayan:
curl -4 https://ifconfig.meJalankan arahan ini sekali sebelum anda memilih exit node dan sekali lagi selepasnya. Alamat tersebut mesti berubah daripada alamat tempatan anda kepada IP awam VPS. Untuk berhenti menggunakan exit node:
sudo tailscale set --exit-node=Satu lagi flag penting pada hari pertama. Apabila exit node dipilih, klien menghantar segala trafik ke dalam tunnel, termasuk paket yang ditujukan kepada 192.168.1.50, menyebabkan pencetak dan storan rangkaian anda berhenti memberi respons. Kekalkan rangkaian tempatan pada laluan tempatan:
sudo tailscale set --exit-node=<name> --exit-node-allow-lan-access=trueMengapa DNS anda berubah sebaik sahaja exit node diaktifkan
Secara lalai, peranti yang menggunakan exit node juga akan menggunakan exit node tersebut sebagai penyelesai (resolver) DNS (domain name system) untuk setiap domain, dan ini mengatasi pelayan nama global serta split DNS yang dikonfigurasikan untuk tailnet anda. Gelagat ini adalah disengajakan. Jika pertanyaan terus dihantar ke penyelesai rangkaian tempatan, penghala (router) di kafe masih boleh melihat nama setiap laman yang anda lawati walaupun trafik itu sendiri adalah peribadi. Nama dan paket harus keluar dari tempat yang sama.
Satu kesan yang sering menjejaskan pengguna yang menjalankan penyelesai dalaman: pelayan nama tailnet yang anda harapkan berhenti digunakan semasa exit node diaktifkan. Hidupkan Use with exit node untuk pelayan nama tersebut pada halaman DNS di konsol pentadbir untuk mengaktifkannya semula.
Nama MagicDNS terus berfungsi kerana klien Tailscale menjawabnya secara setempat pada 100.100.100.100 sebelum sebarang data sampai ke exit node. Semak perkara ini dengan dig @100.100.100.100 your-vps.your-tailnet.ts.net, atau pada klien systemd-resolved dengan resolvectl status, di mana antara muka Tailscale menyenaraikan 100.100.100.100 sebagai pelayan DNSnya.
Jika anda melumpuhkan pengendalian DNS Tailscale dengan --accept-dns=false, klien akan mengekalkan penyelesai yang diperoleh daripada rangkaian tempatan. Trafik akan ditunnelkan manakala pertanyaan tidak, yang merupakan kebocoran DNS yang sama yang sering berlaku pada tunnel WireGuard binaan sendiri. Biarkan --accept-dns seperti asal kecuali anda mempunyai sebab khusus untuk mengubahnya.
IPv6 melalui exit node
Exit node mengiklankan kedua-dua laluan lalai, 0.0.0.0/0 dan ::/0. Jika VPS tidak mempunyai laluan IPv6 yang berfungsi ke internet, paket IPv6 akan sampai melalui tunnel dan terhenti di situ. Uji pada VPS sebelum anda mempercayainya:
ip -6 addr show
curl -6 https://ifconfig.mePermintaan yang gagal bermakna VPS tidak mempunyai upstream IPv6. Laman web dual stack biasanya masih boleh dimuatkan, kerana klien akan berputus asa dengan IPv6 dan mencuba semula melalui IPv4, walaupun percubaan semula itu menambah kelewatan pada sambungan pertama ke setiap laman. Destinasi yang hanya menyokong IPv6 akan kekal tidak boleh dicapai.
Bahagian kedua ialah forwarding. net.ipv4.ip_forward = 1 dengan net.ipv6.conf.all.forwarding dibiarkan pada 0 memberikan anda laluan IPv4 yang berfungsi tetapi menjadi lubang hitam untuk IPv6, yang akan dialami oleh pembaca sebagai "sesetengah laman perlahan" dan bukannya sebagai ralat yang boleh dicari oleh sesiapa pun. Kedua-dua baris tersebut perlu diletakkan dalam fail sysctl.
Adakah VPS perlu mengiklankan laluan subnet juga?
Exit node membawa semua trafik internet. Laluan subnet membawa satu julat peribadi yang berada di belakang mesin yang mengiklankannya. Ini adalah ciri yang berasingan dengan kelulusan yang berasingan, dan satu mesin boleh melakukan kedua-duanya.
sudo tailscale set --advertise-routes=10.0.0.0/24Iklankan subnet apabila VPS berkongsi rangkaian peribadi dengan pelayan lain yang anda ingin capai melalui alamat peribadi mereka. Luluskan ia dalam panel Edit route settings yang sama, pada togolnya yang tersendiri.
Pilih julat tersebut dengan teliti. Laluan yang diiklankan adalah lebih spesifik daripada laluan lalai komputer riba anda, jadi mengiklankan 192.168.1.0/24 daripada VPS akan mengambil alih alamat rangkaian rumah yang menggunakan julat yang sama, dan peranti di meja anda akan terputus sambungan. Gunakan julat yang anda pilih sendiri, bukan julat yang dipilih oleh penghala rumah anda untuk anda.
Tingkatkan kelajuan exit node dengan UDP GRO forwarding
Tailscale versi 1.54 ke atas, pada kernel Linux 6.2 atau lebih baharu, boleh menggunakan receive offload yang meningkatkan throughput untuk trafik yang diforward. GRO (generic receive offload) menggabungkan paket masuk sebelum kernel memprosesnya satu demi satu. Setakat Ogos 2026, ini masih merupakan langkah 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 offip -o route get 8.8.8.8 melaporkan antara muka yang benar-benar mencapai internet, jadi anda tidak perlu meneka antara eth0, ens3 dan enp1s0. Sahkan dengan ethtool -k $NETDEV | grep udp-gro-forwarding, yang sepatutnya kini memaparkan on.
Tetapan ini akan hilang selepas but semula. Pada sistem yang menjalankan networkd-dispatcher, jadikan ia automatik:
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-tailscalePastikan /etc/networkd-dispatcher/routable.d/ wujud terlebih dahulu. Jika tidak, mesin tersebut tidak menjalankan networkd-dispatcher, dan unit systemd kecil yang menjalankan baris ethtool semasa but akan melakukan tugas yang sama.
Apakah maksud polisi penggunaan boleh terima pembekal anda terhadap trafik keluar
Setiap paket yang dihantar oleh klien melalui exit node akan keluar menggunakan alamat IP awam VPS tersebut, maka ia dikaitkan dengan akaun anda. Laporan penyalahgunaan akan dihantar ke peti masuk anda: notis hak cipta, aduan imbasan port. Baca AUP (polisi penggunaan boleh terima) pembekal anda sebelum anda menghalakan trafik isi rumah atau pasukan melalui satu pelayan, dan jangan buka exit node kepada individu yang tidak boleh anda jamin.
Lebar jalur dikira dua kali. Trafik tiba di VPS melalui tunnel dan kemudian keluar semula ke internet, dan kedua-dua arah biasanya dikira terhadap had pemindahan data dalam pelan anda. Strim video yang ditonton melalui exit node merupakan penggunaan data yang lebih besar daripada jangkaan kebanyakan orang.
Julat alamat pusat data juga membawa reputasi tertentu. Sesetengah laman web memaparkan lebih banyak CAPTCHA kepada alamat tersebut, dan sesetengah perkhidmatan penstriman menolak akses secara terus. Tiada apa-apa dalam konfigurasi anda yang boleh mengubah perkara ini, kerana ia merupakan sifat blok alamat yang dimiliki oleh pembekal anda.
Mengapa trafik masih keluar melalui sambungan tempatan anda
Exit node diiklankan tetapi tidak diluluskan. tailscale exit-node list pada klien tidak memaparkan apa-apa, dan tiada mesin yang mencatatkan ralat. Pergi ke halaman Machines dan aktifkan Use as exit node.
Klien tidak pernah memilihnya. Kelulusan menjadikan nod tersedia kepada tailnet. Pemilihan adalah tindakan berasingan pada setiap peranti. Jalankan semula sudo tailscale set --exit-node=<name>, kemudian semak curl -4 https://ifconfig.me sekali lagi.
Forwarding dimatikan. Simptomnya adalah khusus: tailscale ping <vps> berjaya, terowong jelas aktif, dan setiap alamat luar mengalami tamat masa (timeout). sysctl net.ipv4.ip_forward membaca 0. Betulkan fail sysctl, kemudian jalankan sudo sysctl -p /etc/sysctl.d/99-tailscale.conf.
Firewall menggugurkan (drop) paket yang diforward. tailscaled memasukkan rantaian ts-forward miliknya sendiri, dan pada VPS yang bersih, itu sudah memadai. Mesin yang sudah menjalankan ufw atau Docker boleh berakhir dengan polisi FORWARD yang ditetapkan kepada DROP dan peraturan yang disusun sebelum peraturan Tailscale. Jangan meneka yang mana satu: jalankan sudo iptables -L FORWARD -n -v semasa klien cuba memuatkan halaman, dan perhatikan pembilang mana yang berubah. Pada mesin ufw, penyelesaian biasa ialah DEFAULT_FORWARD_POLICY="ACCEPT" dalam /etc/default/ufw diikuti dengan sudo ufw reload. Semak juga firewall rangkaian pembekal anda dalam panel kawalan, kerana itu adalah kawalan yang berasingan daripada apa-apa yang berjalan pada pelayan.
Ia berfungsi, tetapi perlahan. Jalankan tailscale netcheck pada kedua-dua mesin. Jika ia melaporkan UDP sebagai disekat, kedua-dua peranti tidak dapat membina laluan terus dan kembali menggunakan relay DERP, yang menambah kependaman (latency) pada setiap sambungan. Membenarkan UDP masuk pada port 41641 ke VPS dalam firewall rangkaian pembekal biasanya memulihkan laluan terus.
Bilakah anda perlu meninggalkan pelayan koordinasi Tailscale
Segala perkara di atas bergantung kepada pelayan koordinasi yang dihoskan oleh Tailscale untuk pertukaran kunci dan untuk kelulusan yang anda klik. Trafik anda masih bergerak terus dari komputer riba ke VPS, dan pelayan koordinasi tidak pernah membawanya, walaupun ia menentukan siapa yang boleh menyertai tailnet dan apa yang boleh dicapai oleh setiap peranti. Jika kebergantungan itu adalah perkara yang ingin anda hapuskan, jalankan Headscale sebagai pelayan kawalan Tailscale anda sendiri dan halakan kedua-dua klien kepadanya. Langkah-langkah exit node adalah sama selepas itu, dengan kelulusan laluan dilakukan melalui baris perintah Headscale dan bukannya konsol yang dihoskan. Headscale menukar satah kawalan tetapi mengekalkan anda pada klien Tailscale, jadi jika anda lebih suka menjalankan keseluruhan tindanan itu sendiri, NetBird menyediakan pelayan koordinasi dan kliennya sendiri yang anda hoskan pada satu VPS.
FAQ
Mengapa trafik saya masih menggunakan sambungan tempatan selepas saya memilih exit node?
Terdapat dua punca biasa. Exit node telah diiklankan tetapi tidak diluluskan: buka halaman Machines dalam konsol pentadbir, cari VPS tersebut, pilih Edit route settings, dan aktifkan Use as exit node. Kelulusan adalah tetapan dalam konsol, dan tiada arahan pada pelayan yang boleh melakukannya. Punca kedua kelihatan berbeza: IP forwarding dimatikan, jadi tunnel berjaya diwujudkan, tailscale ping ke VPS berfungsi, tetapi setiap alamat luar mengalami timeout. Semak dengan sysctl net.ipv4.ip_forward, yang mesti menunjukkan nilai 1.
Adakah saya perlu meluluskan exit node secara manual setiap kali?
Toggle tersebut adalah tindakan sekali sahaja untuk setiap mesin. Jika anda kerap membina semula VPS, tambahkan blok autoApprovers ke dalam fail polisi tailnet anda yang mengandungi "exitNode": ["tag:exit"], takrifkan tag:exit di bawah tagOwners, dan mulakan nod dengan --advertise-tags=tag:exit. Peranti yang ditag dimiliki oleh tailnet dan bukannya akaun pengguna anda, jadi peraturan akses yang terpakai padanya juga akan berubah.
Pelayan DNS manakah yang digunakan oleh komputer riba saya semasa exit node diaktifkan?
Exit node itu sendiri. Peranti yang menggunakan exit node menghantar semua pertanyaan DNS ke sana, dan ini mengatasi pelayan nama DNS global serta split yang ditetapkan untuk tailnet. Ia menghalang rangkaian tempatan daripada melihat nama yang anda cari. Untuk mengekalkan penggunaan satu pelayan nama tailnet, aktifkan Use with exit node untuknya pada halaman DNS dalam konsol pentadbir. Nama MagicDNS masih boleh diselesaikan kerana klien Tailscale menjawabnya secara tempatan pada 100.100.100.100.
Bolehkah satu VPS menjadi exit node dan subnet router pada masa yang sama?
Boleh. sudo tailscale set --advertise-exit-node dan sudo tailscale set --advertise-routes=10.0.0.0/24 adalah bebas, dan setiap satunya mempunyai toggle kelulusan sendiri di bawah Edit route settings. Kedua-duanya memerlukan IP forwarding diaktifkan pada VPS. Elakkan daripada mengiklankan julat yang sepadan dengan rangkaian rumah komputer riba anda, kerana laluan yang diiklankan adalah lebih spesifik daripada laluan lalai (default route) dan peranti tempatan anda akan menjadi tidak boleh dicapai.
Adakah exit node menyembunyikan trafik saya daripada penyedia VPS saya?
Tidak. Tunnel berakhir di VPS, jadi trafik meninggalkan pelayan dalam bentuk yang dijangkakan oleh destinasi, dan penyedia anda membawanya dalam bentuk jelas (clear) di mana-mana tapak yang tidak disulitkan. Exit node mengalihkan titik di mana trafik anda menyertai internet, daripada rangkaian yang anda gunakan sekarang kepada pelayan yang anda sewa. Ia menyembunyikan aktiviti pelayaran anda daripada Wi-Fi kafe dan ISP rumah anda, tetapi ia mendedahkan aktiviti yang sama kepada penyedia VPS anda dengan nama akaun anda dilampirkan.