Zum Hauptinhalt springen
Self-Hosting & Privatsphäre

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.

Milan Buha13. November 20266 Min. LesezeitRead in English
TeilenXin
Tailscale Serve vs. Funnel erklärt

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
3Ports, die Tailscale Funnel jemals verwendet (443, 8443, 10000) — eigenes Homelab, auf dem Serve und Funnel gleichzeitig laufen, bestätigt das.

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:

  1. MagicDNS für das Tailnet aktiviert (Admin-Konsole → DNS).
  2. 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.
  3. Ein funnel-Node-Attribut in der Tailnet-Policy-Datei — die CLI fügt es beim ersten tailscale 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.

Ähnliche Artikel

Mehr aus Self-Hosting & Privatsphäre

Bleiben Sie auf dem Laufenden

Erhalten Sie die neuesten Artikel direkt in Ihr Postfach. Kein Spam, jederzeit abbestellbar.

Als Nächstes lesen

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