Deel:𝕏LinkedInRedditFacebookKopieer link

Lokale LLM op afstand veilig benaderen via Tailscale: Complete Handleiding

Het draaien van een lokaal Large Language Model (LLM) zoals Llama 3, Mistral of Gemma op een eigen desktop of server biedt substantiële voordelen op het gebied van privacy, kostenbeheersing en aanpasbaarheid. Echter ontstaat er snel een praktische uitdaging wanneer u niet fysiek achter die krachtige computer zit. Hoe benadert u uw lokale LLM vanaf een laptop onderweg, een tablet, of een werkplek op afstand, zonder uw netwerk open te stellen voor onbevoegden?

Het direct openzetten van poorten via port forwarding op uw router is uitermate risicovol. Automatische scanners ontdekken open poorten binnen enkele minuten, wat leidt tot mogelijke indringing of misbruik van uw systeem middels onbeveiligde API-endpoints. Een elegante, robuuste en veilige oplossing voor dit probleem is het gebruik van Tailscale. In dit artikel behandelen we stap voor stap hoe u uw lokale LLM-infrastructuur via een versleuteld mesh-netwerk (Tailnet) overal ter wereld toegankelijk maakt.

Waarom Tailscale voor netwerktoegang op afstand?

Tailscale is een zero-configuratie VPN-dienst die gebouwd is op het moderne, efficiënte WireGuard-protocol. In tegenstelling tot traditionele VPN's, waarbij al het netwerkverkeer via een centrale VPN-server geleid wordt, bouwt Tailscale een direct peer-to-peer mesh-netwerk op tussen uw apparaten.

De belangrijkste voordelen van Tailscale voor het ontsluiten van een lokale LLM zijn:

Architectuur van een veilige lokale LLM-setup

Voordat we starten met de installatie, is het nuttig om het overzicht te bekijken van hoe de onderdelen samenwerken. Een typische architectuur bestaat uit drie lagen: de LLM-backend, de optionele web-interface en het Tailscale-netwerk.

Component Voorbeeldsoftware Standaard Poort Functie
LLM Host / Inference Server Ollama, LM Studio, vLLM 11434 (Ollama)
1234 (LM Studio)
Voert het AI-model uit op de GPU/CPU en verwerkt inferentie-verzoeken via REST API.
Web User Interface (Optioneel) Open WebUI, AnythingLLM 3000 of 8080 Biedt een grafische chat-interface in de browser voor de eindgebruiker.
Veilige Netwerklaag Tailscale Daemon N.v.t. (WireGuard UDP) Zorgt voor een geïsoleerde, versleutelde verbinding tussen cliënt en host.

Stap 1: Tailscale installeren op de host-machine en client

Om te beginnen dient Tailscale geïnstalleerd te worden op zowel de computer die de LLM draait (de host) als de apparaten vanaf waar u toegang wilt krijgen (de clients, zoals een laptop of telefoon).

1. Account aanmaken en installeren

Meld u aan op tailscale.com en maak een gratis account aan. Download en installeer vervolgens de Tailscale-client op de host-machine (geschikt voor Linux, Windows en macOS).

Voor Linux-servers gebruikt u het officiële installatiescript:

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

Volg de koppelingslink in de terminal om het apparaat toe te voegen aan uw persoonlijke Tailnet. Herhaal de installatie op uw laptop of mobiele telefoon en meld u aan met hetzelfde account.

Stap 2: De LLM-service configureren voor netwerktoegang

Standaard luisteren de meeste lokale LLM-engines uitsluitend naar de lokale loopback-interface (127.0.0.1 of localhost). Om verzoeken via het Tailscale-netwerk te accepteren, moet de server ingesteld worden om te luisteren op alle netwerkinterfaces (0.0.0.0) of specifiek op het Tailscale IP-adres.

Optie A: Ollama configureren

Indien u gebruikmaakt van Ollama, stelt u de omgevingsvariabele OLLAMA_HOST in op 0.0.0.0.

Op Linux (systemd): Bewerk de systemd service-configuratie met het commando:

sudo systemctl edit ollama.service

Voeg de volgende regels toe in het geopende bestand:

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

Sla het bestand op en herstart de Ollama-dienst:

sudo systemctl daemon-reload
sudo systemctl restart ollama

Op Windows / macOS: Stel de omgevingsvariabele OLLAMA_HOST=0.0.0.0 in binnen uw systeeminstellingen of start Ollama via de terminal:

OLLAMA_HOST=0.0.0.0 ollama serve

Belangrijke beveiligingswaarschuwing: Door de service te laten luisteren op 0.0.0.0 accepteert deze verbindingen vanaf elke netwerkinterface op de host. Zorg ervoor dat uw lokale OS-firewall (zoals ufw op Ubuntu of Windows Defender Firewall) directe inkomende verbindingen op de LLM-poort vanaf het lokale fysieke netwerk blokkeert, maar verkeer via de tailscale0 netwerkinterface wel toestaat.

Optie B: LM Studio configureren

In LM Studio gaat u naar het tabblad Local Server (het ontwikkelaarspictogram). Vink hier de optie "Serve on Local Network" aan en zet de bind-adres instelling op 0.0.0.0. Klik vervolgens op Start Server. De API is nu beschikbaar op poort 1234.

Stap 3: Verbinding maken vanaf het apparaat op afstand

Zodra Tailscale actief is op beide apparaten en uw LLM-server op de juiste interface luistert, kunt u de IP-adressen van uw Tailnet bekijken in het Tailscale Dashboard of via de terminal op de cliënt:

tailscale status

U ziet hier het specifieke IP-adres van uw host-machine (dit begint meestal met 100.x.y.z). Met MagicDNS kunt u ook de machinenaam gebruiken, bijvoorbeeld gpu-server.

De verbinding testen

Vanaf uw laptop op afstand kunt u nu een HTTP-verzoek sturen naar de LLM-server over het Tailscale-netwerk. Bijvoorbeeld voor Ollama:

curl http://100.x.y.z:11434/api/generate -d '{
"model": "llama3",
"prompt": "Waarom is de hemel blauw?"
}'

Als de installatie geslaagd is, ontvangt u direct een gestreamde JSON-respons terug van uw eigen server thuis of op kantoor.

Stap 4: Een grafische Web UI toevoegen (Open WebUI)

Het rechtstreeks aanroepen van de REST API is handig voor ontwikkelaars, maar voor dagelijks gebruik is een visuele interface zoals Open WebUI prettiger. U kunt Open WebUI op de host-machine draaien via Docker:

docker run -d -p 3000:8080 \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main

Vanaf elk apparaat binnen uw Tailnet navigeert u nu in de browser naar http://100.x.y.z:3000 of http://gpu-server:3000 om gebruik te maken van uw persoonlijke ChatGPT-achtige interface.

Geavanceerde beveiliging en opties: Tailscale Serve & ACL's

Voor gebruikers die extra beveiligingslagen of vereenvoudigde URL's zonder poortnummers wensen, biedt Tailscale twee krachtige ingebouwde functionaliteiten:

1. Tailscale Serve voor automatische HTTPS-certificaten

Met Tailscale Serve kunt u verkeer automatisch laten doorsturen en voorzien van een geldig Let's Encrypt TLS-certificaat binnen uw privénetwerk. U hoeft geen poort :11434 of :3000 meer te onthouden:

sudo tailscale serve --bg 3000

Uw Open WebUI-interface is nu direct bereikbaar op https://gpu-server.your-tailnet.ts.net over een volledig versleutelde HTTPS-verbinding.

2. Access Control Lists (ACL's) instellen

Als u uw Tailnet deelt met familieleden of collega's, wilt u wellicht niet dat iedereen volledige toegang heeft tot de instellingen van de LLM-host. Via het Tailscale Admin Console kunt u ACL-regels definiëren om toegang tot specifieke poorten (zoals poort 11434) af te schermen:

// Voorbeeld ACL JSON-snippet
"acls": [
  {
    "action": "accept",
    "src": ["group:developers"],
    "dst": ["gpu-server:11434", "gpu-server:3000"]
  }
]

Veelvoorkomende problemen en oplossingen (Troubleshooting)

Conclusie

Het ontsluiten van een lokale LLM via Tailscale is de meest elegante en veilige manier om overal de beschikking te hebben over uw eigen AI-modellen. Het elimineert de beveiligingsrisico's van open poorten en biedt een naadloze, versleutelde ervaring op laptops, smartphones en tablets. Door Tailscale te combineren met tools zoals Ollama en Open WebUI bouwt u een volledig privé, hoogwaardig AI-platform in eigen beheer.

Voor meer diepgaande handleidingen over het optimaliseren van uw lokale inferentie-setup, bekijk onze artikelen over Ollama op macOS installeren en configureren en de hardware-eisen voor lokale LLM's, of de bredere vergelijking bij het kiezen van een lokaal model op gids.llmnet.nl.