SSD Nodes Learn 🎉 VPS vanaf $5.50/mnd
Gidsen Matt ConnorDoor Matt Connor · Bijgewerkt 2026-08-13

VPS instellen als Tailscale exit node

Maak van uw VPS een Tailscale exit node. Volg de stappen voor IP forwarding en route-goedkeuring in de admin console om veilig internetverkeer via uw eigen server te leiden.

Wat een Tailscale exit node doet

Een Tailscale exit node is een machine in uw tailnet die al het internetverkeer voor uw andere apparaten afhandelt. Een VPS (virtual private server) is hiervoor zeer geschikt omdat deze een vast openbaar adres heeft en altijd online blijft. Het opzetten hiervan bestaat uit vijf stappen: installeer Tailscale op de server, adverteer de exit node, schakel IP forwarding in, keur de route goed in de admin console en selecteer vervolgens de node op uw laptop. De vierde stap is een schakelaar op een webpagina en geen commando; dit is het punt waar de meeste gebruikers vastlopen.

Zodra de node is ingeschakeld, versleutelt uw laptop elk pakket en verstuurt dit naar de VPS. De VPS past source NAT (network address translation) toe en stuurt het pakket door met zijn eigen openbare IP-adres. Websites zien de VPS. Het wifi-netwerk in een café ziet slechts één versleutelde UDP-stroom naar de VPS en verder niets.

Tailscale is WireGuard voor het datapad, aangevuld met een coördinatieserver die sleutels distribueert en machines helpt elkaar te vinden via NAT. Die coördinatieserver is de reden waarom er hieronder nergens sleutels gekopieerd hoeven te worden. Voor een correct overzicht van de afwegingen, lees hoe Tailscale en standaard WireGuard zich verhouden. Als u liever elk onderdeel van de tunnel zelf in beheer heeft, host dan zelf een standaard WireGuard VPN op uw VPS.

De onderstaande stappen gaan ervan uit dat Tailscale al op uw laptop draait en dat beide machines zijn aangemeld bij hetzelfde tailnet. Een tailnet is uw private Tailscale-netwerk en elk apparaat daarin krijgt een stabiel adres binnen 100.64.0.0/10.

Tailscale installeren op uw VPS

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

Het installatiescript selecteert de pakketrepository voor uw distributie en installeert de tailscaled-daemon. tailscale up toont vervolgens een authenticatie-URL. Open deze in een browser en meld u aan met hetzelfde account als dat van uw laptop; een VPS die is aangemeld bij een ander tailnet kan namelijk geen verbinding maken met uw laptop.

tailscale status
tailscale ip -4

tailscale status hoort nu beide machines weer te geven. tailscale ip -4 toont het tailnet-adres van de VPS; dit is het adres dat u later aan de client doorgeeft.

Tailscale heeft een TUN-device nodig om de tunnel op te bouwen. Op een KVM VPS is dit device aanwezig. Bij abonnementen die gebruikmaken van containervirtualisatie en de kernel van de host delen, ontbreekt /dev/net/tun soms en kan tailscaled de tailscale0-interface niet aanmaken. Voer ls -l /dev/net/tun uit voordat u verdergaat.

IP-forwarding inschakelen, anders verwerpt de VPS elk pakket

Een Linux-machine verwerpt elk pakket dat niet aan het eigen adres is gericht, omdat net.ipv4.ip_forward standaard op 0 staat. Het exit-node zou uw verkeer accepteren, ontsleutelen en vervolgens weggooien. Schrijf de instelling naar een bestand zodat deze na een herstart behouden blijft.

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 voegt tekst toe aan het einde van een bestand, dus het opnieuw uitvoeren van deze regels schrijft beide instellingen twee keer weg. Het resultaat werkt nog steeds, maar cat /etc/sysctl.d/99-tailscale.conf ziet er dan vreemd uit. Controleer de actieve waarde in plaats van op het bestand te vertrouwen:

sysctl net.ipv4.ip_forward

Dit moet net.ipv4.ip_forward = 1 weergeven. Als u dit overslaat en tailscale up --advertise-exit-node gebruikt, meldt de client het volgende:

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

tailscale set --advertise-exit-node voert die controle niet uit, dus stilte van set is geen bewijs dat forwarding is ingeschakeld. Lees de sysctl-waarde zelf uit.

U hoeft niet handmatig een masquerade-regel te schrijven. tailscaled installeert zijn eigen firewall-chains, genaamd ts-input, ts-forward en ts-postrouting, en de NAT-regel voor exit-node-verkeer bevindt zich in ts-postrouting. Bekijk deze met sudo iptables-save | grep ts-, of sudo nft list ruleset op een systeem dat nftables gebruikt.

De VPS adverteren als exit node

sudo tailscale set --advertise-exit-node

tailscale set wijzigt één voorkeur en laat de overige instellingen ongemoeid. tailscale up --advertise-exit-node adverteert de node ook, maar dit heeft een bijwerking: up beschouwt de vlaggen op de opdrachtregel als de volledige set niet-standaardinstellingen. Hierdoor weigert een latere kale sudo tailscale up om uit te voeren en verschijnt de melding

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:

Gebruik set voor doorlopende wijzigingen om deze melding te voorkomen.

Adverteren is een aanbod. De VPS geeft nu aan de coördinatieserver door dat deze bereid is om als exit node te fungeren. Geen enkele client kan hier echter al gebruik van maken.

Keur de Tailscale exit node goed in de admin console

Dit is de stap waarvoor geen commando nodig is. Open de Machines-pagina in de admin console, zoek de VPS, open het menu met de drie puntjes aan het einde van de rij, kies Edit route settings en schakel Use as exit node in.

Zolang deze schakelaar uit staat, houdt het control plane het aanbod vast en wordt dit aan niemand verstrekt. tailscale exit-node list op uw laptop toont niets en uw verkeer volgt de normale route. Er verschijnt op geen van beide machines een foutmelding. De exit node verschijnt simpelweg niet.

U kunt exit nodes automatisch goedkeuren met een vermelding in het tailnet-beleidsbestand:

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

Een apparaat dat met --advertise-tags=tag:exit wordt opgestart, wordt vervolgens automatisch goedgekeurd, zolang tag:exit is gedefinieerd onder tagOwners in hetzelfde beleidsbestand. Het toevoegen van tags wijzigt het eigenaarschap: een getagd apparaat behoort toe aan het tailnet in plaats van aan uw gebruikersaccount, en de toegangsregels die erop van toepassing zijn, veranderen daarmee. Voor een enkele VPS is de schakelaar eenvoudiger.

Selecteer het exit node op uw laptop

Op een Linux-client:

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

exit-node list toont de goedgekeurde exit nodes in uw tailnet met hun adressen. Een lege lijst betekent dat de goedkeuringsstap niet is uitgevoerd. Op macOS, Windows, iOS en Android is dezelfde keuze een menu-item onder Exit Node in de Tailscale-app.

Controleer dit vanaf de client, nooit vanaf de server:

curl -4 https://ifconfig.me

Voer dit eenmaal uit voordat u het exit node selecteert en eenmaal daarna. Het adres moet veranderen van uw lokale adres naar het publieke IP-adres van de VPS. Om het gebruik van het exit node te stoppen:

sudo tailscale set --exit-node=

Nog één vlag is belangrijk bij de eerste ingebruikname. Met een geselecteerd exit node stuurt de client al het verkeer de tunnel in, inclusief pakketten die geadresseerd zijn aan 192.168.1.50, waardoor uw printer en netwerkopslag niet meer reageren. Houd het lokale netwerk op de lokale route:

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

Waarom uw DNS wijzigt zodra het exit node is ingeschakeld

Standaard gebruikt een apparaat dat een exit node gebruikt, die exit node ook als zijn DNS-resolver (domain name system) voor elk domein. Dit overschrijft de globale en split DNS-nameservers die voor uw tailnet zijn geconfigureerd. Dit gedrag is bewust gekozen. Als zoekopdrachten naar de resolver van het lokale netwerk zouden blijven gaan, zou de router in een café nog steeds de naam zien van elke site die u bezoekt, terwijl het verkeer zelf privé is. Namen en pakketten moeten vanaf dezelfde locatie vertrekken.

Eén gevolg treft gebruikers die een interne resolver draaien: een tailnet-nameserver waar u afhankelijk van bent, wordt niet meer gebruikt terwijl de exit node is ingeschakeld. Schakel Use with exit node in voor die nameserver op de DNS-pagina van de admin console om deze weer beschikbaar te maken.

MagicDNS-namen blijven werken, omdat de Tailscale-client deze lokaal beantwoordt op 100.100.100.100 voordat er iets de exit node bereikt. Controleer dit met dig @100.100.100.100 your-vps.your-tailnet.ts.net, of op een systemd-resolved client met resolvectl status, waar de Tailscale-interface 100.100.100.100 als DNS-server vermeldt.

Als u de DNS-afhandeling van Tailscale uitschakelt met --accept-dns=false, behoudt de client de resolver die deze van het lokale netwerk heeft geleerd. Het verkeer wordt getunneld, maar de zoekopdrachten niet; dit is hetzelfde DNS-lek dat handmatig opgezette WireGuard-tunnels treft. Wijzig --accept-dns niet, tenzij u een specifieke reden heeft om dit aan te passen.

IPv6 via de exit node

Een exit node adverteert beide standaardroutes, 0.0.0.0/0 en ::/0. Als de VPS geen werkend IPv6-pad naar het internet heeft, komen IPv6-pakketten via de tunnel aan en stoppen daar. Test dit op de VPS voordat u erop vertrouwt:

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

Een mislukt verzoek betekent dat de VPS geen IPv6-upstream heeft. Dual-stack websites laden meestal alsnog, omdat de client het opgeeft bij IPv6 en het opnieuw probeert via IPv4, hoewel die herpoging voor vertraging zorgt bij de eerste verbinding met elke site. Bestemmingen die alleen via IPv6 bereikbaar zijn, blijven onbereikbaar.

Het andere deel is forwarding. net.ipv4.ip_forward = 1 met net.ipv6.conf.all.forwarding op 0 laten staan, geeft u een werkend IPv4-pad en een 'black hole' voor IPv6, wat de gebruiker ervaart als "sommige sites zijn traag" in plaats van als een foutmelding waar iemand naar kan zoeken. Beide regels horen thuis in het sysctl-bestand.

Moet de VPS ook subnetroutes adverteren?

Een exit node verwerkt al het internetverkeer. Een subnetroute verwerkt één privaat bereik dat zich achter de machine bevindt die de route adverteert. Dit zijn afzonderlijke functies met afzonderlijke goedkeuringen, en één machine kan beide taken uitvoeren.

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

Adverteer een subnet wanneer de VPS een privaat netwerk deelt met andere servers die u via hun private adressen wilt bereiken. Keur dit goed in hetzelfde Edit route settings-paneel, via de bijbehorende schakelaar.

Kies het bereik zorgvuldig. Een geadverteerde route is specifieker dan de standaardroute van uw laptop. Het adverteren van 192.168.1.0/24 vanaf de VPS neemt daarom de adressen over van een thuisnetwerk dat hetzelfde bereik gebruikt, waardoor de apparaten op uw bureau onbereikbaar worden. Gebruik een bereik dat u zelf heeft gekozen, niet het bereik dat uw thuisrouter voor u heeft geselecteerd.

Versnel de exit node met UDP GRO forwarding

Tailscale 1.54 en nieuwer kunnen, op een Linux 6.2-kernel of nieuwer, gebruikmaken van een receive offload die de doorvoer voor geforward verkeer verhoogt. GRO (generic receive offload) voegt inkomende pakketten samen voordat de kernel ze stuk voor stuk verwerkt. Sinds augustus 2026 is dit op de exit node nog een handmatige stap.

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 rapporteert de interface die daadwerkelijk verbinding maakt met het internet, waardoor u nooit hoeft te gissen tussen eth0, ens3 en enp1s0. Bevestig dit met ethtool -k $NETDEV | grep udp-gro-forwarding, wat nu on zou moeten weergeven.

De instelling gaat verloren bij een reboot. Maak dit automatisch op een systeem dat networkd-dispatcher gebruikt:

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

Controleer eerst of /etc/networkd-dispatcher/routable.d/ bestaat. Als dit niet het geval is, draait de machine geen networkd-dispatcher en kan een kleine systemd-unit die de regel ethtool bij het opstarten uitvoert, hetzelfde resultaat bereiken.

Wat het acceptabel gebruik-beleid van uw provider betekent voor uitgaand verkeer

Elk pakket dat een client via de exit node verstuurt, verlaat het netwerk met het publieke IP-adres van de VPS; dit wordt daarom aan uw account toegeschreven. Misbruikmeldingen komen in uw inbox terecht: denk aan auteursrechtelijke waarschuwingen of klachten over poortscans. Lees het AUP (acceptable use policy) van uw provider voordat u het verkeer van een huishouden of team via één server leidt, en stel een exit node niet open voor personen voor wie u niet kunt instaan.

Bandbreedte telt dubbel. Verkeer komt via de tunnel aan op de VPS en verlaat deze vervolgens weer richting het internet; beide richtingen worden doorgaans verrekend met de datalimiet van uw abonnement. Een videostream die via een exit node wordt bekeken, verbruikt meer data dan de meeste mensen verwachten.

IP-reeksen van datacenters hebben bovendien een bepaalde reputatie. Sommige websites tonen vaker CAPTCHA's aan deze adressen, en sommige streamingdiensten blokkeren ze volledig. Niets in uw configuratie verandert dit, aangezien dit een eigenschap is van het IP-blok dat eigendom is van uw provider.

Waarom verkeer nog steeds via uw lokale verbinding verloopt

De exit node is geadverteerd, maar niet goedgekeurd. tailscale exit-node list op de client geeft geen uitvoer, en op geen van beide machines verschijnt een foutmelding in de logs. Ga naar de pagina Machines en schakel Use as exit node in.

De client heeft de node niet geselecteerd. Goedkeuring maakt de node beschikbaar voor het tailnet. Selectie is een afzonderlijke actie op elk apparaat. Voer sudo tailscale set --exit-node=<name> opnieuw uit en controleer daarna curl -4 https://ifconfig.me nogmaals.

Forwarding staat uit. Het symptoom is specifiek: tailscale ping <vps> slaagt, de tunnel is duidelijk actief, maar elk extern adres geeft een time-out. sysctl net.ipv4.ip_forward geeft 0 aan. Corrigeer het sysctl-bestand en voer daarna sudo sysctl -p /etc/sysctl.d/99-tailscale.conf uit.

Een firewall blokkeert de geforwarde pakketten. tailscaled voegt zijn eigen ts-forward-chain toe; op een schone VPS is dat voldoende. Een server waarop al ufw of Docker draait, kan echter eindigen met een FORWARD-policy van DROP en regels die vóór die van Tailscale worden verwerkt. Ga niet gissen: voer sudo iptables -L FORWARD -n -v uit terwijl de client een pagina probeert te laden en kijk welke tellers oplopen. Op een systeem met ufw is de gebruikelijke oplossing DEFAULT_FORWARD_POLICY="ACCEPT" in /etc/default/ufw, gevolgd door sudo ufw reload. Controleer ook de netwerkfirewall van uw provider in het configuratiescherm, aangezien dit een afzonderlijke instelling is die losstaat van de software op de server zelf.

Het werkt, maar het is traag. Voer tailscale netcheck uit op beide machines. Als hieruit blijkt dat UDP is geblokkeerd, kunnen de twee apparaten geen direct pad opbouwen en vallen ze terug op een DERP-relay, wat de latentie van elke verbinding verhoogt. Het toestaan van inkomend UDP-verkeer op poort 41641 naar de VPS in de netwerkfirewall van de provider herstelt doorgaans het directe pad.

Wanneer u de coordination server van Tailscale verlaat

Alles hierboven is afhankelijk van de gehoste coordination server van Tailscale voor sleuteluitwisseling en voor de goedkeuring waar u op heeft geklikt. Uw verkeer gaat nog steeds rechtstreeks van laptop naar VPS en de coordination server transporteert dit nooit, hoewel deze wel bepaalt wie er lid mag worden van het tailnet en wat elk apparaat mag bereiken. Als u deze afhankelijkheid wilt verwijderen, draai Headscale als uw eigen Tailscale control server en laat beide clients hiernaar verwijzen. De stappen voor de exit node zijn daarna hetzelfde, waarbij de routegoedkeuring via de command line van Headscale verloopt in plaats van via de gehoste console. Headscale vervangt het control plane, maar u blijft de Tailscale-clients gebruiken. Als u liever de volledige stack zelf beheert, levert NetBird een eigen coordination server en clients die u op één VPS host.

FAQ

Waarom verloopt mijn verkeer nog steeds via mijn lokale verbinding nadat ik het exit node heb geselecteerd?

Er zijn twee veelvoorkomende oorzaken. Het exit node is wel geadverteerd, maar niet goedgekeurd: open de pagina Machines in de admin console, zoek de VPS, kies Edit route settings en schakel Use as exit node in. Goedkeuring is een instelling in de console; er is geen commando op de server die dit uitvoert. De tweede oorzaak ziet er anders uit: IP forwarding staat uit, waardoor de tunnel wel tot stand komt, tailscale ping naar de VPS werkt, maar elk extern adres een time-out geeft. Controleer dit met sysctl net.ipv4.ip_forward, wat 1 moet zijn.

Moet ik het exit node elke keer handmatig goedkeuren?

De schakelaar is een eenmalige actie per machine. Als u de VPS vaak opnieuw opbouwt, voeg dan een autoApprovers-blok toe aan uw tailnet-beleidsbestand met "exitNode": ["tag:exit"], definieer tag:exit onder tagOwners en start het node met --advertise-tags=tag:exit. Een getagd apparaat is eigendom van het tailnet in plaats van uw gebruikersaccount, waardoor ook de toegangsregels die erop van toepassing zijn, veranderen.

Welke DNS-server gebruikt mijn laptop terwijl een exit node actief is?

Het exit node zelf. Een apparaat dat een exit node gebruikt, stuurt alle DNS-query's daarheen, wat de globale en split DNS-nameservers die voor het tailnet zijn ingesteld, overrulet. Dit voorkomt dat het lokale netwerk de namen ziet die u opzoekt. Om één tailnet-nameserver van toepassing te laten blijven, schakelt u Use with exit node in op de DNS-pagina van de admin console. MagicDNS-namen worden nog steeds omgezet, omdat de Tailscale-client deze lokaal beantwoordt op 100.100.100.100.

Kan één VPS tegelijkertijd een exit node en een subnet router zijn?

Ja. sudo tailscale set --advertise-exit-node en sudo tailscale set --advertise-routes=10.0.0.0/24 zijn onafhankelijk van elkaar en beide krijgen hun eigen goedkeuringsschakelaar onder Edit route settings. Voor beide moet IP forwarding op de VPS zijn ingeschakeld. Vermijd het adverteren van een bereik dat overeenkomt met het thuisnetwerk van uw laptop, omdat de geadverteerde route specifieker is dan de standaardroute en uw lokale apparaten onbereikbaar worden.

Verbergt een exit node mijn verkeer voor mijn VPS-provider?

Nee. De tunnel eindigt bij de VPS, dus het verkeer verlaat de server in de vorm die de bestemming verwacht, en uw provider transporteert het in onversleutelde vorm waar de site zelf niet versleuteld is. Een exit node verplaatst het punt waar uw verkeer het internet opgaat: van het netwerk waar u zich bevindt naar de server die u huurt. Het verbergt uw surfgedrag voor café-wifi en uw eigen internetprovider, maar toont datzelfde surfgedrag aan uw VPS-provider, gekoppeld aan uw accountnaam.