> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/de/desktop/how-to-serve-local-llms-anywhere-secure-remote-access-with-cloudflare-and-unsloth.md).

# Modelle mit HTTPS bereitstellen

Lokale KI-Modelle überall bereitstellen und ausliefern. Du kannst von einem anderen Gerät aus sicher über HTTPS auf deine lokalen LLMs zugreifen – mithilfe eines Cloudflare-Tunnels über [Unsloth](https://github.com/unslothai/unsloth). Es ist kein Cloudflare-Konto, keine Domäneneinrichtung und kein Port-Forwarding erforderlich. Betreibe private KI-Modelle auf deiner eigenen Hardware, deinen Servern oder Cloud-GPUs und verbinde dich von überall, etwa von deinem Smartphone aus.

{% columns %}
{% column %}
Unsloth ist ein Open-Source-Projekt, mit dem du LLMs lokal trainieren und ausführen kannst, und mit einem Cloudflare-Tunnel kannst du Unsloth von deinem Mobilgerät aus aufrufen, den Zugriff mit einem Freund oder Kollegen teilen und Unsloth auf einem Server wie Google Colab, AWS oder sogar einem persönlichen Server hosten.

Unsloth kann zu 100 % offline auf deinem Computer laufen. Aktiviere den Fernzugriff und du erhältst einen Weblink wie `https://known-plates-desire-turkey.trycloudflare.com`. Öffne ihn auf deinem Smartphone, deinem Laptop oder in jedem Browser, überall.
{% endcolumn %}

{% column %}

<figure><img src="https://3215535692-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FD2v8S0MkS1xAeEVersl2%2Fmobile_studio1.gif?alt=media&#x26;token=7cd8a534-d82f-4f05-8d5a-9b7277f7eac0" alt="" width="180"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Es ist kostenlos. Nichts zum Registrieren oder Bezahlen, und du musst weder deinen Router noch deine Firewall anfassen. Sobald Unsloth installiert ist, stellt dein Computer eine Verbindung zu Cloudflare her, und Cloudflare leitet Besucher zu ihm zurück. Der Link ist HTTPS, daher ist die Verbindung verschlüsselt.

Zwei Möglichkeiten, es zu aktivieren:

* **Wenn du Unsloth startest:** fügen Sie `--secure` zu deinem `unsloth studio` Befehl
* **Während Unsloth läuft:** gehe zu Einstellungen → API → **Fernzugriff** und drücke **Starten Sie**

Es gibt pro Unsloth-Prozess nur einen Tunnel, und nur sein Besitzer kann ihn stoppen.

### ⚡ Schnellstart

Zuerst müssen wir die [Unsloth Desktop](https://unsloth.ai/download) App herunterladen.

1. Installiere die App für [macOS](https://unsloth.ai/download/mac), Windows oder [Linux](https://unsloth.ai/download/linux)
2. Starte die App
3. Dann gehe zu Einstellungen → Remote & LAN → Fernzugriff.

<div data-with-frame="true"><figure><img src="https://3215535692-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F31IAHABHEuWz1juiABBY%2Fimage.png?alt=media&#x26;token=b430b2f7-f91b-49e3-a4b6-c46bd688bbfc" alt=""><figcaption></figcaption></figure></div>

Verwende dies, wenn Unsloth bereits läuft und du es auf deinem Smartphone oder einem anderen Rechner haben möchtest. Drücke **Starten Sie**, dann kopiere die **Remote-URL** oder scanne den **QR** Code. `Online` bedeutet, dass der Link bereits antwortet, nicht nur, dass er angefragt wurde.

Drei Dinge, die es wert sind, bekannt zu sein:

* Jeder mit der URL und dem Passwort kann sich anmelden. Remote-Browser melden sich an als `unsloth`, lege das unter **Fernzugriffspasswort**.
* Die URL ist bei jedem Start neu und kann nicht angeheftet werden.
* Ein roher `0.0.0.0` Port bleibt offen. Nur `--secure` schließt ihn.

Wenn **Starten Sie** ist ausgegraut, die Karte sagt warum, normalerweise muss das Administratorkennwort noch geändert werden oder der Tunnel gehört dem Startbefehl.

#### Wenn Start nicht verfügbar ist

<table><thead><tr><th width="292">Grund</th><th>Angezeigte Meldung</th></tr></thead><tbody><tr><td><code>server_starting</code></td><td>Unsloth startet noch.</td></tr><tr><td><code>admin_password_change_required</code></td><td>Lege ein Fernzugriffspasswort fest, bevor du diesen Server freigibst. <em>(Desktop)</em> / Ändere das Administratorkennwort, bevor du diesen Server freigibst. In der Desktop-App führe <code>unsloth studio reset-password</code>. <em>(Browser)</em></td></tr><tr><td><code>explicitly_disabled</code></td><td>Dieser Start verwendete <code>--no-cloudflare</code>. Starte ohne es neu, um den Fernzugriff zu aktivieren.</td></tr><tr><td><code>launch_managed</code></td><td>Dieser Tunnel wird vom Startbefehl verwaltet.</td></tr><tr><td><code>colab_managed</code></td><td>Dieser Tunnel wird von der Colab-Laufzeitumgebung verwaltet.</td></tr><tr><td><code>colab</code></td><td>Die Einstellungen für den Fernzugriff werden von der Colab-Laufzeitumgebung verwaltet.</td></tr></tbody></table>

#### Die Tunnel-URL in der restlichen Oberfläche

Sobald ein Tunnel online ist, wechseln zwei Stellen automatisch zu ihm:

* **Einstellungen → API → Verwendungsbeispiele** erhält einen **Sicheres HTTPS** Umschalter. Ist er an, werden jedes curl/Python/JavaScript-Snippet und jeder Befehl des Coding-Agents auf die `trycloudflare.com` -Basis statt `localhost`umgeschrieben. Wenn du nicht mit `--secure`gestartet hast, erinnert dich ein Info-Tooltip: *"Der 0.0.0.0-Port ist weiterhin global erreichbar. Für vollständige Sicherheit starte Unsloth mit `--secure` um nur diesen HTTPS-Link freizugeben."*
* Der **API-Überwachung** Seiten- **Basis-URL** Anzeige zeigt den Tunnel-Ursprung an, sodass ein dort kopiertes Snippet vom entfernten Gerät aus funktioniert, und jede Anfrage, die über den Tunnel eingeht, wird live aufgelistet.

### CLI: Nur-HTTPS-Methode

Nach der manuellen Installation von Unsloth führe in deinem Terminal aus:

```bash
unsloth studio --secure -p 8888
```

Unsloth bleibt an `127.0.0.1` gebunden und wird **nur** über den Tunnel veröffentlicht. Wenn der Tunnel nicht hochkommt, **beendet sich stattdessen** bei einem rohen Port. Das Banner gibt aus:

```
🦥 Unsloth Studio läuft (sicher)
────────────────────────────────────────────────────
  Sicherer Linkzugriff über Cloudflare: https://<random>.trycloudflare.com
  Nur auf diesem Rechner: http://127.0.0.1:8888/
────────────────────────────────────────────────────
```

#### CLI: roher LAN-Port plus ein öffentlicher Link

```bash
unsloth studio -H 0.0.0.0 --cloudflare -p 8888
```

Der rohe Port bleibt in deinem Netzwerk erreichbar *und* eine öffentliche Cloudflare-URL wird veröffentlicht. Das Banner warnt dich genau davor, weil dies der am wenigsten private Modus ist.

#### UI: einen Link auf einem bereits laufenden Server starten

1. Öffnen Sie **Einstellungen → API**.
2. Finde die **Fernzugriff** Karte.
3. Klicken Sie auf **Starten Sie**.
4. Wenn der Status lautet **Online**, kopiere den **Remote-URL** oder scanne den **QR** Code mit deinem Smartphone.

### 🖥️ CLI-Referenz

Beide Flags werden von `unsloth studio` (dem Plain-Server-Pfad) und von `unsloth studio run`.

<table><thead><tr><th width="283">Flag</th><th width="100" align="center">Standard</th><th>Wirkung</th></tr></thead><tbody><tr><td><code>--secure</code> / <code>--no-secure</code></td><td align="center">aus</td><td>Veröffentlichen <strong>nur</strong> über Cloudflare. Erzwingt einen Loopback-Bind, impliziert <code>--cloudflare</code>, und schlägt geschlossen fehl, wenn der Tunnel nicht starten kann.</td></tr><tr><td><code>--cloudflare</code> / <code>--no-cloudflare</code></td><td align="center">aus</td><td>Veröffentliche außerdem eine öffentliche Cloudflare-URL für einen <strong>kein<code>--api-only</code> Wildcard-Bind</strong> (<code>0.0.0.0</code> oder <code>::</code>). Hat bei einem Loopback-Bind keine Wirkung. <code>--no-cloudflare</code> erzwingt es aus, macht aber <strong>nicht</strong> einen Wildcard-Bind nicht privat.</td></tr></tbody></table>

Hinweise zur Flag-Verarbeitung:

* `--secure` ignoriert `-H`. Wenn du einen anderen Host angibst, gibt es einen Hinweis aus und bindet trotzdem `127.0.0.1` .
* `--secure --no-cloudflare` ist ein Widerspruch und beendet sich mit Exit-Code `2`.
* Diese Flags gehören zum Plain-Server-Pfad. Wenn du sie *vor* einem Unterbefehl (`unsloth studio --secure run ...`) `2` mit dem korrigierten Befehl, weil Typer sie sonst stillschweigend verwerfen würde. Verwende `unsloth studio run --secure ...`.
* Die Auswahl wird durch Unsloths internen erneuten Start als Drei-Zustandswert übertragen (`aktiviert` / `deaktiviert` / `nicht gesetzt`), sodass eine veraltete `Docker-ENV` oder `systemd Environment=` einen Tunnel, von dem du dich bei diesem Aufruf abgemeldet hast, niemals wieder aktivieren kann.

#### Was jeder Start tatsächlich freigibt

<table><thead><tr><th width="391">Start</th><th>Roher Port</th><th>Öffentliche Cloudflare-URL</th></tr></thead><tbody><tr><td><code>unsloth studio</code></td><td>nur auf diesem Rechner</td><td>nein</td></tr><tr><td><code>unsloth studio --cloudflare</code></td><td>nur auf diesem Rechner</td><td>nein, der Schalter ist bei Loopback ohne Wirkung</td></tr><tr><td><code>unsloth studio -H 0.0.0.0</code></td><td>dein Netzwerk</td><td>nein</td></tr><tr><td><code>unsloth studio -H 0.0.0.0 --cloudflare</code></td><td>dein Netzwerk</td><td><strong>ja</strong></td></tr><tr><td><code>unsloth studio --secure</code></td><td>nur auf diesem Rechner</td><td><strong>ja</strong>, und das ist der einzige Weg hinein</td></tr><tr><td><code>unsloth studio --api-only</code> (Desktop-Backend)</td><td>als gebunden</td><td>nein, außer <code>--secure</code></td></tr><tr><td>Google Colab</td><td>Colab-Proxy</td><td>nur über <code>start(cloudflare=True)</code></td></tr></tbody></table>

Die Regel, die das Backend anwendet: Colab tunnelt niemals vom Startpfad aus; `--secure` tunnelt immer (sogar `--api-only`, für headless sicheres API-Serving); andernfalls startet der Tunnel nur für einen Wildcard-Bind, der nicht `--api-only`.

#### `--secure` schlägt geschlossen fehl

Wenn der Tunnel nicht hochkommt, `--secure` weigert sich, weiterzulaufen:

```
Ein sicherer Cloudflare-Link ist nicht erlaubt, verwende --no-secure, das einen 0.0.0.0-Link bereitstellt
```

und beendet sich `1`. Das ist Absicht: `--secure` bedeutet „kein roher öffentlicher Port“, daher wäre ein stilles Herabstufen auf einen nur auf Loopback laufenden Server, von dem du glaubst, er sei veröffentlicht, schlimmer als ein Stopp.

#### Startbanner-Zeilen

Bei einem Wildcard-Bind gibt Unsloth immer den Status des Tunnels an, sodass ein netzwerk-erreichbarer Start nie still ist:

* Cloudflare-Tunnel: EIN. Dies ist eine ÖFFENTLICHE Internet-URL: Jeder, der sie hat, kann auf dieses Unsloth zugreifen.
* Cloudflare-Tunnel: EIN. Diese Cloudflare-URL ist ÖFFENTLICH, und der rohe Port ist ebenfalls öffentlich erreichbar.
* Cloudflare-Tunnel: angefordert, konnte aber nicht gestartet werden.
* Cloudflare-Tunnel: AUS (Standard). / AUS (--no-cloudflare). / AUS für diesen Modus.

Jede Variante passt sich daran an, ob der rohe Port unabhängig als aus dem Internet erreichbar gefunden wurde. Dieser Erreichbarkeitstest kontaktiert `ifconfig.me` und `check-host.net`; setze `UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK=1` um beides zu überspringen.

#### Die Passwortsperre

Wenn ein Start Unsloth zum ersten Mal auf einer öffentlichen URL veröffentlichen will, während das Administratorkonto noch sein automatisch erzeugtes Bootstrap-Passwort besitzt, stoppt Unsloth und fordert ein neues, maskiertes, bestätigtes Passwort an **bevor überhaupt ein Server oder Tunnel existiert**.

* **Terminal angeschlossen:** du wirst dazu aufgefordert. Wenn du abbrichst (Strg+C), wird der Start verweigert.
* **Kein Terminal:** Unsloth warnt stattdessen, injiziert die Bootstrap-Anmeldedaten nie in die öffentliche Seite und setzt die Bootstrap-Frist in Gang; es fährt nach `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT` (Standard 1 Stunde) herunter, sofern das Passwort nicht geändert wird.
* **Kein Terminal und keine Frist** (`--api-only`zu verringern oder `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT=0`): Der Start wird vollständig verweigert, denn nichts würde ihn schützen.
* **`--secure` durch `cloudflared` nachweislich nicht verfügbar:** abgelehnt mit dem beibehaltenen Seed-Passwort, sodass ein fehlgeschlagener Tunnel dich nicht aussperren kann.

Für headless-Setups lege das anfängliche Passwort nicht interaktiv fest (wirkt nur, wenn noch keines gesetzt ist):

```bash
UNSLOTH_STUDIO_PASSWORD='dein-starkes-passwort' unsloth studio --secure
```

```bash
printf '%s\n' 'dein-starkes-passwort' | unsloth studio --secure --password -
```

Ein wörtliches `--password VALUE` ist sichtbar in `ps` und der Shell-Historie, verwende also lieber die Umgebungsvariable oder stdin. Drehe es später mit `unsloth studio reset-password`.

### 📓 Google Colab

`run_server` unterdrückt den Tunnel des Startpfads auf Colab, da Colab den Port bereits weiterleitet. Fordere explizit einen teilbaren öffentlichen Link an:

```python
start(cloudflare = True)
```

Colab verweigert das Öffnen des Links, solange das Administratorkonto noch sein Bootstrap-Passwort hat; dieser Anmeldedatensatz ist für jeden sichtbar, der die Seite laden kann. Melde dich an, ändere das Passwort und führe es dann erneut aus. Jeder Fehler fällt auf „kein Link“ zurück und der Colab-Proxy arbeitet weiter.

### 🔒 Sicherheit

Unsloth zu veröffentlichen bedeutet, dass jeder, der die URL besitzt **und** mit einem Berechtigungsnachweis es verwenden kann.

* **Serverseitige Werkzeuge laufen als dein Benutzer.** Websuche, Python und Terminal-Ausführung sind standardmäßig aktiviert, sodass jeder, der den Server mit deinem API-Schlüssel erreicht, Code auf diesem Rechner ausführen kann. Übergib `--disable-tools` beim Freigeben von Unsloth, und halte den API-Schlüssel privat. Jeder netzwerkerreichbare Start sagt das im Banner.
* **Die Administratorkennwort-Sperre** oben ist bei einem vom Start verwalteten Tunnel nicht optional.
* **Ratenbegrenzung bleibt pro Besucher.** Der Tunnel endet bei `127.0.0.1`, daher würde andernfalls jeder getunnelte Aufrufer einen einzigen Bucket teilen. Wenn der Socket-Peer Loopback ist, beachtet Unsloth Cloudflares `CF-Connecting-IP`, die der Edge setzt und die ein getunnelter Client nicht fälschen kann. Hinter deinem eigenen Reverse-Proxy aktiviere `X-Forwarded-For` durch `UNSLOTH_STUDIO_TRUST_FORWARDED=1`.
* **Lokale Stdio-MCP-Server werden widerrufen, während ein Tunnel aktiv ist.** stdio MCP ist nur als Loopback-Komfort automatisch aktiviert; ein entfernter Connector bricht diese Vertrauensgrenze, daher schaltet sich die automatische Vorgabe selbst aus. Ein explizites `UNSLOTH_STUDIO_ALLOW_STDIO_MCP=1` setzt sich trotzdem durch.
* **Die URL ist zufällig und wegwerfbar.** Quick Tunnels erhalten bei jedem Start einen neuen Hostnamen. Behandle die URL selbst als Geheimnis, und vergiss nicht, dass es keine Möglichkeit gibt, sie anzuheften.

### ❔ Problembehandlung

Dies sind die genauen Statusmeldungen, die in der Karte für den Fernzugriff angezeigt werden. Alles andere wird auf die allgemeine Meldung reduziert `Cloudflare-Tunnel fehlgeschlagen`.

| Fehler                                         | Bedeutung                                                                         | Beheben                                                                                                     |
| ---------------------------------------------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `cloudflared ist nicht verfügbar`              | Nicht auf `PATH`, nicht zwischengespeichert, und der Download ist fehlgeschlagen. | Prüfe den ausgehenden Zugriff auf `github.com`, oder installiere `cloudflared` selbst, damit es auf `PATH`. |
| `cloudflared hat keine URL erzeugt`            | Der Prozess wurde beendet, bevor eine erstellt wurde.                             | Meist kein ausgehendes Netzwerk. Erneut versuchen; prüfe einen Proxy oder egress-Filter.                    |
| `cloudflared hat keine Verbindung registriert` | URL erzeugt, aber nach dem `HTTP/2` erneuten Versuch keine Edge-Verbindung.       | Dein Netzwerk blockiert QUIC *und* HTTP/2 zum Cloudflare-Edge.                                              |
| `Cloudflare-URL war nicht erreichbar`          | Registriert, aber der Gesundheitscheck antwortete nie über die öffentliche URL.   | Vorübergehende Edge-/DNS-Weitergabe; drücke erneut auf Start.                                               |
| `cloudflared beendet`                          | Der Connector ist abgestürzt, während er online war.                              | Nochmals starten; nach einem OOM-Killer oder einem Prozess-Supervisor suchen, der Kindprozesse einsammelt.  |
| `cloudflared konnte nicht gestoppt werden`     | Die Beendigung wurde nie bestätigt, daher ist der Slot noch belegt.               | Erneut auf Stop drücken; wenn es bestehen bleibt, Unsloth neu starten.                                      |

Weitere Symptome:

* **`--secure` beendet sich sofort.** Der Tunnel ist fehlgeschlagen; die Meldung nennt `--no-secure` als Alternative. Behebe zuerst die Verbindung, da `--no-secure` einen rohen Port veröffentlicht.
* **Start ist in der UI ausgegraut.** Lies die Meldung unter der Karte; sie nennt den Blockierungsgrund aus der obigen Tabelle.

### 🌱 Umgebungsvariablen

| Variable                              | Zweck                                                                                                                                                              |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `UNSLOTH_STUDIO_HOME`                 | Installationsstamm; der `cloudflared` Cache liegt in `<root>/bin`.                                                                                                 |
| `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT`    | Sekunden, bevor sich ein ungesicherter öffentlicher Start selbst beendet. Standard `3600`; `0` deaktiviert (und lässt einen headless öffentlichen Start ablehnen). |
| `UNSLOTH_STUDIO_PASSWORD`             | Anfängliches Administratorkennwort für headless-Starts.                                                                                                            |
| `UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK` | `1` überspringt den Drittanbieter-Test zur Erreichbarkeit des rohen Ports bei Wildcard-Binds.                                                                      |
| `UNSLOTH_STUDIO_TRUST_FORWARDED`      | `1` beachtet `X-Forwarded-For` hinter deinem eigenen Reverse-Proxy.                                                                                                |
| `UNSLOTH_STUDIO_ALLOW_STDIO_MCP`      | `1` hält stdio-MCP-Server auch bei aktivem Tunnel aktiviert; `0` erzwingt Deaktivierung.                                                                           |

### 🌐 HTTP API

Alle vier erfordern eine **UI-Sitzung,** ein API-Schlüssel wird abgelehnt mit `403 Fernzugriff erfordert eine UI-Sitzung.` Eine abgelehnte Operation gibt `409` mit dem Blockierungsgrund als Detail zurück.

<table><thead><tr><th width="100">Methode</th><th>Pfad</th><th>Zweck</th></tr></thead><tbody><tr><td><code>GET</code></td><td><code>/api/settings/remote-access</code></td><td>Aktueller Status, URL, Besitzer, <code>kann_starten</code> / <code>kann_stoppen</code>, <code>Blockierungsgrund</code>.</td></tr><tr><td><code>POST</code></td><td><code>/api/settings/remote-access/start</code></td><td>Einen von den Einstellungen verwalteten Start planen. Idempotent.</td></tr><tr><td><code>POST</code></td><td><code>/api/settings/remote-access/stop</code></td><td>Einen von den Einstellungen verwalteten Stopp planen. Ändert die Auto-Start-Einstellung nicht.</td></tr><tr><td><code>PUT</code></td><td><code>/api/settings/remote-access/auto-start</code></td><td><code>{"enabled": true|false}</code>. Wird in Colab abgelehnt.</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://unsloth.ai/docs/de/desktop/how-to-serve-local-llms-anywhere-secure-remote-access-with-cloudflare-and-unsloth.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
