Tailscale-Konfiguration
Chute bietet eingebautes natives Tailscale-Networking. Nach der Konfiguration können Sie die eingebaute Policy TAILSCALE aus Regeln oder Policy-Gruppen referenzieren, um Datenverkehr über Ihr Tailnet zu leiten — andere Geräte im Tailnet erreichen, über einen Exit Node ins Internet ausleiten oder auf von Peers beworbene Subnetze zugreifen.
Anders als gewöhnliche Proxy-Protokolle ist Tailscale keine zeilenweise in [Proxy] definierte Policy, sondern wird über einen einzelnen global eindeutigen [Tailscale]-Abschnitt konfiguriert. Er registriert den Knoten beim Kontrollserver mit einem Auth Key; ein interaktiver Browser-Login ist nicht erforderlich.
Tailscale-Abschnitt
Ein [Tailscale]-Abschnitt definiert alles, was ein Gerät benötigt, um einem Tailnet beizutreten:
[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
control-server = https://controlplane.tailscale.com
hostname = my-device
exit-node = 100.101.102.103
accept-routes = true
force-derp = false
Hinweis: In der gesamten Konfigurationsdatei ist nur ein einziger
[Tailscale]-Abschnitt erlaubt. Ein doppelter[Tailscale]-Abschnitt wird als Konfigurationsfehler behandelt. Das liegt daran, dass die Tailscale-Engine schwergewichtig ist und sich Tailnet-Adressbereiche gegenseitig ausschließen — es kann immer nur einem Tailnet gleichzeitig beigetreten werden.
Parameter
| Schlüssel | Erforderlich | Beschreibung |
|---|---|---|
auth-key |
Ja | Tailscale-Auth-Key. Muss bei Verwendung der offiziellen Control Plane mit tskey- beginnen; Kontrollserver von Drittanbietern (z.B. Headscale) akzeptieren ihre eigenen Key-Formate |
control-server |
Nein | Adresse des Kontrollservers, muss eine http(s)://-URL sein. Leer lassen, um die offizielle Control Plane controlplane.tailscale.com zu verwenden |
hostname |
Nein | Gerätenamen, der an das Tailnet gemeldet wird (MagicDNS-Hostname) |
exit-node |
Nein | Exit Node; akzeptiert eine Tailnet-IP (100.x) oder einen MagicDNS-Namen. Leer lassen für keinen Exit Node |
accept-routes |
Nein | Ob von Peers beworbene Subnetz-Routen akzeptiert werden (Boolean, Standard false) |
force-derp |
Nein | Ob nur das DERP-Relay erzwungen und direkte Verbindungen deaktiviert werden (Boolean, Standard false) |
Boolean-Werte akzeptieren folgende Schreibweisen (Groß-/Kleinschreibung wird nicht unterschieden): true/false, 1/0, yes/no, on/off.
Hinweis: Unbekannte Schlüssel werden mit einer Warnung ignoriert (sie blockieren nicht das Laden der Konfiguration). Ein falsch geschriebener Schlüssel (z.B.
force-derpalsforce_derp) deaktiviert die Option unbemerkt — bitte gegen die obige Tabelle prüfen.
Die eingebaute Policy TAILSCALE
Sobald der [Tailscale]-Abschnitt konfiguriert ist, steht die eingebaute Policy-Kennung TAILSCALE zur Verfügung — sie steht neben DIRECT und REJECT und kann direkt in Regeln und Policy-Gruppen referenziert werden. Wenn der [Tailscale]-Abschnitt nicht konfiguriert ist oder Tailscale ausgeschaltet ist, fallen Regeln, die TAILSCALE referenzieren, auf REJECT zurück (fail-closed).
[Proxy Group]
Mesh = select, TAILSCALE, DIRECT
[Rule]
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
FINAL,DIRECT
Automatisches Routing
Wenn Tailscale aktiviert ist, injiziert Chute automatisch die folgenden drei Regeln vor allen Ihren Regeln, sodass Sie Regeln für das Erreichen des Tailnets in der Regel nicht von Hand schreiben müssen:
DOMAIN-SUFFIX,ts.net,TAILSCALE
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
IP-CIDR6,fd7a:115c:a1e0::/48,TAILSCALE,no-resolve
Diese injizierten Regeln sind nur zur Laufzeit und ändern niemals Ihre Konfigurationsdatei. Wenn accept-routes = true gesetzt ist, werden die von Peers beworbenen Subnetze ebenfalls automatisch als entsprechende IP-CIDR- / IP-CIDR6-Regeln injiziert und automatisch aktualisiert, wenn Peers Subnetze hinzufügen oder zurückziehen.
Verwendung
Geräte im Tailnet erreichen
Sobald der [Tailscale]-Abschnitt konfiguriert ist, ist für das Erreichen anderer Geräte im Tailnet keine zusätzliche Regel nötig — die injizierten Regeln decken bereits die Tailnet-Bereiche und das MagicDNS-Suffix ab. Sie können Peers direkt per MagicDNS-Name oder Tailnet-IP ansprechen:
[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
hostname = my-iphone
[Rule]
FINAL,DIRECT
Ziele wie my-pc.<tailnet>.ts.net oder 100.101.102.103 laufen nun automatisch über Tailscale.
Über einen Exit Node ausleiten
Setzen Sie TAILSCALE als FINAL-Ziel, um allen Datenverkehr, der keiner spezifischeren Regel entspricht, über den Exit Node auszuleiten:
[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
exit-node = 100.101.102.103
[Rule]
FINAL,TAILSCALE
Hinweis:
exit-nodeallein leitet keinen Verkehr über den Exit-Node — Sie müssen zusätzlich eine Regel hinzufügen, die Verkehr anTAILSCALEsendet (zum BeispielFINAL,TAILSCALE). Ohne eine solche Regel ist der Exit-Node zwar konfiguriert, wird aber nicht genutzt; der Konfigurationseditor der App weist darauf hin.
Subnetz-Routen akzeptieren
Wenn ein Gerät im Tailnet als Subnet-Router agiert und lokale Subnetze bewirbt, aktivieren Sie accept-routes = true, um diese Subnetze zu erreichen; die entsprechenden Routing-Regeln werden automatisch injiziert:
[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
accept-routes = true
Benutzerdefinierter Kontrollserver (Headscale)
Zusätzlich zur offiziellen Control Plane unterstützt Chute auch selbst gehostete Headscale- / Ionscale-Kontrollserver. Geben Sie einfach die entsprechende URL ein:
[Tailscale]
auth-key = your-headscale-preauth-key
control-server = https://headscale.example.com
hostname = my-device
Kontrollserver von Drittanbietern erzwingen kein tskey--Präfix und akzeptieren ihre eigenen Auth-Keys. Die Verwendung einer http://-Klartextadresse wird nur in einem vertrauenswürdigen Netzwerk empfohlen (z.B. einem lokal selbst gehosteten Headscale).
Bekannte Einschränkungen und Empfehlungen
Die Tailscale-Implementierung konzentriert sich auf die in Proxy-Szenarien am häufigsten genutzten Funktionen; einige Funktionen des offiziellen Clients werden noch nicht unterstützt. Bitte beachten Sie folgende Verhaltensunterschiede:
Verwenden Sie
force-derp = truenur zur Fehlersuche. Chute bevorzugt normalerweise direkte UDP-Verbindungen zu Peers (Disco Hole-Punching), die in der Regel eine geringere Latenz und einen höheren Durchsatz als ein DERP-Relay bieten. Wenn direkte Verbindungen in einem bestimmten Netzwerk dauerhaft instabil oder langsamer als DERP sind, vergleichen Sie beide Modi und aktivieren Sieforce-derpnur für diese Umgebung.Es wird nur der Auth-Key-Login unterstützt. SSO / interaktiver Browser-Login, Tailscale SSH, Taildrop sowie Funnel / serve werden nicht unterstützt. Chute kann außerdem weder lokale Subnetzrouten bekanntgeben noch dieses Gerät als Exit Node anbieten; es tritt nur als Konsument bei.
Die normale DNS-Auflösung bleibt bei Verwendung eines Exit Nodes lokal. Chute sendet normale DNS-Anfragen nicht über den ausgewählten Exit Node. MagicDNS-Namen werden lokal anhand der Tailnet-Netzwerkabbildung aufgelöst. Globale Resolver und entfernte Split-DNS-Resolver werden nicht unterstützt; verwenden Sie eine IP-Adresse, wenn ein privater Name nur im entfernten Netzwerk aufgelöst werden kann.
MagicDNS unterstützt nur A- / AAAA-Einträge. Globale Resolvers, Split-DNS-Routen (Einträge mit dediziertem Resolver) und nicht-adressartige ExtraRecords (TXT / CNAME / SRV) werden ignoriert; bei Erkennung wird eine Warnung protokolliert.
Die innere MTU des direkten Pfads ist fest auf 1280 gesetzt. Es gibt keine Path-MTU-Discovery; dieser konservative Wert verhindert Black Holes bei PPPoE- / gestapelten Tunnel-Verbindungen. Der DERP-Relay-Pfad ist nicht betroffen.
Tailnet Lock (Netzwerk-Sperre) wird nicht unterstützt. In einem Tailnet mit aktivierter Netzwerk-Sperre wird der Schlüssel dieses Knotens nicht signiert, und gesperrte Peers verwerfen den Datenverkehr von diesem Gerät stillschweigend.
Mullvad-Exit und andere Quell-Adressumschreibungs-Szenarien sind nicht verfügbar. Exit-Node-Funktionen, die das Umschreiben der lokalen Quelladresse erfordern, sind noch nicht implementiert.
Die Wiederherstellung nach einem Netzwechsel hängt von einer Systembenachrichtigung ab. Beim Wechseln von Wi-Fi / Mobilfunk baut Chute die Verbindungen umgehend neu auf; falls die Netzwechsel-Benachrichtigung im seltenen Fall nicht empfangen wird, fällt die Wiederherstellung auf ein ca. 3-minütiges Watchdog-Reconnect zurück.