Tailscale Serve vs. Funnel erklärt
Tailscale Serve teilt einen Dienst nur im Tailnet; Funnel macht ihn öffentlich. Die echten Befehle, die nötigen TLS-Voraussetzungen und der häufigste Grund für einen 404-Fehler.

Jellyfin läuft endlich im Homelab, und ein Familienmitglied ohne eigenen Laptop mit Tailscale möchte heute Abend etwas schauen. tailscale serve hilft hier nicht weiter. tailscale funnel vielleicht schon — aber welcher Befehl ist der richtige, und was geht sonst noch kaputt, wenn man sich falsch entscheidet?
TL;DR — Tailscale Serve vs. Funnel
- Serve teilt einen lokalen Dienst nur mit Ihrem Tailnet — nichts verlässt Ihr privates Netzwerk.
- Funnel erweitert das auf das öffentliche Internet, für genau einen Dienst, den Sie bewusst auswählen.
- Beide benötigen vorher aktiviertes MagicDNS und HTTPS-Zertifikate — sonst liefert die URL einen 404-Fehler, obwohl der Befehl im Terminal "erfolgreich" war.
- Funnel spricht ausschließlich über die Ports 443, 8443 oder 10000 — sonst keine.
- Begrenzen Sie Funnel auf einen einzelnen Pfad statt auf den gesamten Host, wenn der Dienst mehr als eine Sache bereitstellt.
Serve vs. Funnel in einem Satz
Beide Befehle gehören zum selben tailscale serve-Subsystem — Funnel ist ein Flag darauf, kein eigenständiges Werkzeug. Tailscales eigene Ankündigung beschreibt Serve als „Teilen innerhalb Ihres Tailnets" und Funnel als „Teilen mit der Welt".
| Serve | Funnel | |
|---|---|---|
| Zielgruppe | Nur Geräte in Ihrem Tailnet | Jeder mit der URL, öffentlich im Internet |
| Benötigte Authentifizierung | Tailscale-Identität (WireGuard) | Keine — es ist ein öffentlicher HTTPS-Endpunkt |
| TLS | Automatisches Tailnet-Zertifikat | Automatisches öffentliches Zertifikat |
| Ports | Jeder beliebige lokale Port | Nur 443, 8443 oder 10000 |
| Typische Nutzung | Admin-Dashboards, Immich, Grafana | Ein Dienst für jemanden außerhalb Ihres Tailnets |
| Risiko bei Fehlgebrauch | Gering — weiterhin durch Tailnet-Mitgliedschaft begrenzt | Exponiert genau das, was Sie freigeben, für jeden |
Voraussetzungen, die beide Funktionen teilen
Keiner der beiden Befehle funktioniert allein. Laut Tailscales HTTPS-Einrichtungsdokumentation und den Tailscale-Funnel-Feature-Docs brauchen Sie, in dieser Reihenfolge:
- MagicDNS für das Tailnet aktiviert (Admin-Konsole → DNS).
- HTTPS-Zertifikate aktiviert (Admin-Konsole → DNS → HTTPS Certificates) — das veröffentlicht den DNS-Namen Ihres Tailnets in einem öffentlichen Zertifikats-Log; bestätigen Sie diesen Hinweis.
- Ein
funnel-Node-Attribut in der Tailnet-Policy-Datei — die CLI fügt es beim erstentailscale funnel-Aufruf automatisch hinzu, aber wenn Ihre Policy-Datei gesperrt oder separat verwaltet wird, tragen Sie es von Hand ein:"nodeAttrs": [{"target": ["autogroup:member"], "attr": ["funnel"]}]. Serve braucht dieses Attribut nicht — es ist reine Funnel-Sache.
Warning
Überspringen Sie Schritt 2, meldet tailscale funnel im Terminal trotzdem Erfolg — die URL liefert dann im Browser einen 404-Fehler oder einen TLS-Fehler. Genau diese Kombination — Befehl läuft durch, URL funktioniert nicht — ist die häufigste Funnel-Beschwerde in den Unraid-Foren. Aktivieren Sie HTTPS-Zertifikate, bevor Sie einen der beiden Befehle anfassen.
Tailscale Serve: auf dem Tailnet bleiben
Serve mappt einen lokalen Port auf einen Pfad des HTTPS-Endpunkts Ihres Tailnets. Für Immich auf Port 2283:
tailscale serve https / http://localhost:2283
Das war's — https://<ihr-gerät>.<tailnet-name>.ts.net/ erreicht jetzt Immich, aber nur von Geräten aus, die in Ihrem Tailnet eingeloggt sind. Kein offener Port am Router, kein Reverse Proxy, kein Zertifikat, das Sie von Hand erneuern müssen.
Nutzen Sie Serve für alles, das außerhalb Ihres Haushalts nichts zu suchen hat: Admin-Panels, Grafana, Proxmoxʼ eigene Web-UI, ein Staging-Build. Die Zugriffskontrolle lautet schlicht „ist dieses Gerät in meinem Tailnet" — bei den meisten Homelabs schon enger als ein Passwort.
Tailscale Funnel: einen öffentlichen Link herausgeben
Funnel übernimmt dasselbe Serve-Mapping und öffnet es zusätzlich für das Internet. Zwei Befehle, einmalig ausgeführt:
tailscale funnel 443 on
tailscale serve https / http://localhost:8096
Die CLI-Referenz zu tailscale serve und die CLI-Referenz zu tailscale funnel bestätigen das Muster: serve definiert, was gezeigt wird, funnel schaltet den Schalter um, ob es öffentlich ist. tailscale funnel status listet danach jeden aktuell freigegebenen Port auf — es lohnt sich, das regelmäßig zu prüfen, damit Sie genau wissen, was öffentlich ist.
Das mappt Jellyfin (Port 8096) auf eine öffentliche HTTPS-URL. Schicken Sie den Link an alle, die ihn brauchen — sie installieren kein Tailscale, brauchen kein Konto und sehen nichts anderes auf dem Gerät.
Note
Funnel-Traffic erreicht Ihre App als Proxy-Traffic, nicht als Tailnet-Peer — App-Logs zeigen also nicht die echte IP des Besuchers, wie es bei Tailnet-Traffic der Fall wäre. Das ist erwartetes Verhalten, kein Bug.
Pfad-beschränktes Funnel: nicht den ganzen Host exponieren
Stellt ein Dienst mehr als eine Route bereit — ein Dateiserver, mehrere über einen Reverse Proxy laufende Apps auf einer Maschine — macht das Freigeben des Host-Roots alles auf diesem Port öffentlich, nicht nur das eine, was Sie teilen wollten. Begrenzen Sie stattdessen auf einen einzelnen Pfad:
tailscale serve https:443/shared/ http://localhost:8080/shared/
tailscale funnel 443 on
Nur /shared/ wird vom öffentlichen Internet aus erreichbar; jeder andere Pfad auf demselben lokalen Port bleibt Tailnet-only, weil Serves Pfad-Mapping das ist, was Funnel exponiert — niemals der rohe Port selbst.
Dauerhaft einrichten — und wieder zurücknehmen
Führen Sie einen der Befehle mit --bg aus, damit er einen Neustart oder tailscale down && tailscale up überlebt:
tailscale funnel --bg 443 on
Ohne --bg gilt das Mapping nur für die laufende Terminal-Sitzung. Laut der CLI-Referenz zu tailscale funnel wird die Konfiguration auf die Festplatte geschrieben, und tailscaled stellt sie beim Start wieder her — --bg ist also die richtige Wahl für alles Langlebige wie Jellyfin.
Um alles zurückzusetzen:
tailscale funnel reset
tailscale serve reset
Oder hängen Sie off an ein bestimmtes Mapping an, um nur dieses eine zu entfernen:
tailscale funnel 443 off
Prüfen, was aktuell tatsächlich exponiert ist
Es ist leicht, etwas einmalig freizugeben und Wochen später zu vergessen, dass es noch öffentlich ist. tailscale funnel status listet jeden aktiven Funnel auf dem aktuellen Node; tailscale serve status zeigt die komplette Menge der Serve-Mappings, öffentlich oder nicht. Führen Sie beides nach jeder Homelab-Änderung aus — ein neuer Container, ein getauschter Reverse Proxy, ein docker compose up, das versehentlich einen alten Port wiederverwendet hat — und vergleichen Sie die Liste mit dem, was tatsächlich von außerhalb Ihres Tailnets erreichbar sein soll. Behandeln Sie einen unerwarteten Eintrag genauso wie einen unerwarteten offenen Port am Router: erst prüfen, nicht einfach als harmlos annehmen.
Entscheidungsregel: was Sie tatsächlich nutzen sollten
Setzen Sie standardmäßig auf Serve. Es kostet nichts an Exposition und deckt die meisten Homelab-Freigaben ab — alles, was Sie sonst über einen offenen Port oder einen Reverse Proxy lösen würden. Greifen Sie nur für den einen konkreten Dienst zu Funnel, den eine Person außerhalb Ihres Tailnets wirklich braucht, und begrenzen Sie ihn auf einen Pfad statt auf den ganzen Host. Wenn Sie in Versuchung sind, etwas „für den Fall, dass es später jemand braucht" zu funneln, ist das ein Zeichen, dass es bei Serve bleiben sollte, bis ein echter externer Besucher existiert.
Für die Netzwerk-Ebene unter beiden Funktionen siehe unsere Anleitung zur Installation von Tailscale im Homelab und, falls Sie ausgehenden Traffic stattdessen nach Hause routen wollen statt Split-Tunneling zu nutzen, wie Tailscale-Exit-Nodes funktionieren. Der komplette Mesh-VPN-Guide zeigt, wo Serve und Funnel im größeren Tailscale-Funktionsumfang stehen.
FAQ
Ist Tailscale Funnel kostenlos?
Ja — Funnel ist im kostenlosen Tailscale-Personal-Plan enthalten, genau wie Serve. Beide gehören zum Kernprodukt, nicht zu einem kostenpflichtigen Zusatz.
Exponiert Tailscale Funnel mein gesamtes Gerät ins Internet?
Nein. Funnel exponiert ausschließlich den konkreten Port und Pfad, den Sie mit tailscale serve mappen — alles andere auf dem Gerät bleibt genauso wie vorher nur aus Ihrem Tailnet erreichbar.
Warum liefert meine Tailscale-Funnel-URL einen 404-Fehler?
Fast immer, weil MagicDNS oder HTTPS Certificates in der Tailnet-Admin-Konsole noch nicht aktiviert sind. Aktivieren Sie beides, bevor Sie tailscale funnel ausführen, siehe Tailscales HTTPS-Einrichtungsdokumentation.
Kann ich Tailscale Funnel ohne MagicDNS nutzen?
Nein — Funnel hängt vom Tailnet-DNS-Namen ab, den MagicDNS vergibt, und vom HTTPS-Zertifikat, das an diesen Namen gebunden ist. Beides muss vorher aktiviert sein.
Mehr aus Self-Hosting & Privatsphäre

Jeder Passwort-Manager behauptet es: „Zero-Knowledge“. Was das technisch wirklich bedeutet, wie clientseitige Schlüsselableitung funktioniert, und eine Checkliste, mit der Sie die Behauptung jedes Anbieters selbst überprüfen können.

Sie ändern .env, starten den Container neu – und der alte Wert bleibt, ohne Fehlermeldung. Die exakte Rangfolge zwischen env_file, environment und Ihrer Shell, nachgestellt an einem echten Stack, plus der Fix, wenn Compose die Änderung nicht übernimmt.

Stoat, Spacebar und Matrix/Element im Vergleich für eine selbst gehostete Discord-Alternative: RAM-Bedarf, Sprach-/Video-Reife, Discord-Bot-Kompatibilität und die echte Migrationsreibung für eine bestehende Community.
Bleiben Sie auf dem Laufenden
Erhalten Sie die neuesten Artikel direkt in Ihr Postfach. Kein Spam, jederzeit abbestellbar.
Anlage AV für die Riester-Rente erklärt
Wie Sie die Anlage AV für eine Riester-Rente richtig ausfüllen: was die Günstigerprüfung auslöst, die Änderung von 2025, die Kinder auf die Anlage Kind verschoben hat, und was ich selbst auf meinem eigenen Formular eingetragen habe.
Weiterlesen