> 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/grundlagen/wie-man-lokale-llms-uberall-bereitstellt-sicherer-fernzugriff-mit-cloudflare-und-unsloth.md).

# Wie man lokale LLMs überall bereitstellt: Sicherer Fernzugriff mit Cloudflare und Unsloth

Lokale KI-Modelle überall bereitstellen und ausführen. Du kannst sicher über HTTPS von einem anderen Gerät aus mit einem Cloudflare-Tunnel auf deine lokalen LLMs zugreifen über [Unsloth](https://github.com/unslothai/unsloth). Für ein Cloudflare-Konto, eine Domain-Einrichtung oder Portweiterleitung ist nichts erforderlich. Führe private KI-Modelle auf deiner eigenen Hardware, deinen Servern oder Cloud-GPUs aus und verbinde dich von überall, etwa von deinem Telefon.

{% 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, Unsloth auf einem Server wie Google Colab, AWS oder sogar einem persönlichen Server hosten.

Unsloth kann zu 100 % offline auf deinem Computer laufen. Schalte den Fernzugriff ein und du erhältst einen Weblink wie `https://known-plates-desire-turkey.trycloudflare.com`. Öffne ihn auf deinem Telefon, 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. Es ist nichts anzumelden oder zu bezahlen, und du musst weder Router noch Firewall anfassen. Sobald Unsloth installiert ist, baut dein Computer eine Verbindung zu Cloudflare auf, und Cloudflare leitet Besucher an ihn zurück. Der Link ist HTTPS, also ist die Verbindung verschlüsselt.

Zwei Möglichkeiten, es zu aktivieren:

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

Es existiert nur ein Tunnel pro Unsloth-Prozess, 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 Telefon oder einem anderen Rechner haben möchtest. Drücke **Start**, dann kopiere die **Remote-URL** oder scanne den **QR** Code. `Online` bedeutet, dass der Link bereits antwortet, nicht nur, dass er angefordert wurde.

Drei Dinge, die man wissen sollte:

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

Wenn **Start** ausgegraut ist, sagt die Karte warum, meist muss noch das Administratorpasswort 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 Remote-Passwort fest, bevor du diesen Server freigibst. <em>(Desktop)</em> / Ändere das Administratorpasswort, 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-Runtime verwaltet.</td></tr><tr><td><code>colab</code></td><td>Die Fernzugriffseinstellungen werden von der Colab-Runtime verwaltet.</td></tr></tbody></table>

#### Die Tunnel-URL im restlichen UI

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

* **Einstellungen → API → Anwendungsbeispiele** bekommt einen **Sicheres HTTPS** Umschalter. Wenn er aktiviert ist, wird jeder curl/Python/JavaScript-Schnipsel und jeder Coding-Agent-Befehl gegen 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.“*
* Die **API-Monitor** Seite **Base-URL** Anzeige zeigt den Tunnel-Ursprung, sodass ein dort kopierter Ausschnitt vom Remote-Gerät aus funktioniert, und jede Anfrage, die über den Tunnel ankommt, wird live aufgelistet.

### CLI: Nur-HTTPS-Methode

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

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

Unsloth bleibt an `127.0.0.1` gebunden **nur** über den Tunnel veröffentlicht. Wenn der Tunnel nicht aufgebaut werden kann, beendet sich Unsloth **statt auf einen Rohport zurückzufallen** zu einem Rohport. 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: Roh-LAN-Port plus öffentlicher Link

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

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

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

1. Öffne **Einstellungen → API**.
2. Finde die **Fernzugriff** Karte.
3. Klicke **Start**.
4. Wenn der Status **Online**, kopiere den **Remote-URL** oder scanne den **QR** Code mit deinem Telefon.

### 🖥️ CLI-Referenz

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

<table><thead><tr><th width="283">Schalter</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 sicher 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 eine <strong>nicht-<code>--api-only</code> Wildcard-Bindung</strong> (<code>0.0.0.0</code> oder <code>::</code>). Hat keine Wirkung auf eine Loopback-Bindung. <code>--no-cloudflare</code> erzwingt, dass es aus ist, macht aber <strong>nicht</strong> eine Wildcard-Bindung privat.</td></tr></tbody></table>

Hinweise zur Schalterbehandlung:

* `--secure` ignoriert `-H`. Wenn du einen anderen Host angibst, gibt es einen Hinweis aus und bindet `127.0.0.1` trotzdem.
* `--secure --no-cloudflare` ist ein Widerspruch und beendet sich mit Exit-Code `2`.
* Diese Schalter gehören zum Plain-Server-Pfad. Wenn du sie *vor* einen Subbefehl (`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 Re-Exec als Drei-Zustandswert (`aktiviert` / `deaktiviert` / `nicht gesetzt`), sodass ein veraltetes `Docker ENV` oder `systemd Environment=` einen Tunnel, den du in diesem Aufruf abgewählt hast, niemals wieder aktivieren kann.

#### Was jeder Start tatsächlich freigibt

<table><thead><tr><th width="391">Start</th><th>Rohport</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 hat bei Loopback keine 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 es ist der einzige Zugang</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 sicheren API-Betrieb); andernfalls startet der Tunnel nur bei einer Wildcard-Bindung, die nicht `--api-only`.

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

Wenn der Tunnel nicht hochkommt, `--secure` verweigert Unsloth es, 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 beabsichtigt: `--secure` bedeutet „kein öffentlicher Rohport“, daher wäre es schlimmer, stillschweigend zu einem nur-Loopback-Server herunterzustufen, von dem du glaubst, dass er veröffentlicht ist, als zu stoppen.

#### Startbanner-Zeilen

Bei einer Wildcard-Bindung 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 Rohport 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 Rohport unabhängig als vom Internet aus erreichbar erkannt wurde. Diese Erreichbarkeitsprüfung kontaktiert `ifconfig.me` und `check-host.net`; setze `UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK=1` um beides zu überspringen.

#### Das Passwort-Gate

Das erste Mal, wenn ein Start Unsloth auf einer öffentlichen URL veröffentlichen will, während das Admin-Konto noch sein automatisch erzeugtes Bootstrap-Passwort hat, stoppt Unsloth und verlangt ein neues, maskiertes und bestätigtes, **bevor irgendein Server oder Tunnel existiert**.

* **Terminal angeschlossen:** du wirst dazu aufgefordert. Das Abbrechen (Ctrl+C) verweigert den Start.
* **Kein Terminal:** Unsloth warnt stattdessen, fügt die Bootstrap-Anmeldedaten niemals in die öffentliche Seite ein und setzt die Bootstrap-Frist; es fährt herunter nach `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT` (Standard 1 Stunde), sofern das Passwort nicht geändert wird.
* **Kein Terminal und keine Frist** (`--api-only`, oder `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT=0`): der Start wird vollständig verweigert, weil ihn nichts schützen würde.
* **`--secure` mit `cloudflared` nachweislich nicht verfügbar:** verweigert, wobei das Seed-Passwort erhalten bleibt, sodass dich ein fehlgeschlagener Tunnel nicht aussperren kann.

Für headless-Setups das anfängliche Passwort nicht interaktiv setzen (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, daher nutze besser die ENV-Variable oder stdin. Später rotieren mit `unsloth studio reset-password`.

### 📓 Google Colab

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

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

Colab weigert sich, den Link zu öffnen, solange das Admin-Konto noch sein Bootstrap-Passwort hat; diese Anmeldedaten sind für jeden sichtbar, der die Seite laden kann. Anmelden, Passwort ändern, dann erneut ausführen. Jeder Fehler fällt auf „kein Link“ zurück und der Colab-Proxy funktioniert weiter.

### 🔒 Sicherheit

Unsloth zu veröffentlichen bedeutet, dass jeder, der die URL besitzt **und** ein Berechtigungsnachweis kann sie verwenden.

* **Serverseitige Werkzeuge laufen als dein Benutzer.** Websuche, Python- und Terminal-Ausführung sind standardmäßig aktiviert, also kann jeder, der den Server mit deinem API-Schlüssel erreicht, auf diesem Rechner Code ausführen. Übergib `--disable-tools` wenn du Unsloth freigibst, und halte den API-Schlüssel privat. Jeder netzwerk-erreichbare Start sagt dies im Banner.
* **Das Administratorpasswort-Gate** oben ist bei einem vom Start verwalteten Tunnel nicht optional.
* **Die Ratenbegrenzung bleibt pro Besucher.** Der Tunnel endet bei `127.0.0.1`, `CF-Connecting-IP`, sodass sonst jeder getunnelte Aufrufer denselben Bucket teilen würde. Wenn der Socket-Peer Loopback ist, berücksichtigt Unsloth Cloudflares `X-Forwarded-For` mit `UNSLOTH_STUDIO_TRUST_FORWARDED=1`.
* **Lokale stdio-MCP-Server werden widerrufen, solange ein Tunnel aktiv ist.** stdio MCP wird automatisch nur als Loopback-Komfort aktiviert; ein Remote-Connector bricht diese Vertrauensgrenze, daher schaltet sich der Auto-Standard 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 denke daran, dass es keine Möglichkeit gibt, sie anzuheften.

### ❔ Fehlerbehebung

Dies sind die genauen Status, die in der Karte Fernzugriff angezeigt werden. Alles andere wird auf die generische `Cloudflare-Tunnel fehlgeschlagen`.

| Fehler                                         | Bedeutung                                                                          | Fix                                                                                                        |
| ---------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `cloudflared ist nicht verfügbar`              | Nicht im `PATH`, nicht im Cache und der Download ist fehlgeschlagen.               | Prüfe den ausgehenden Zugriff auf `github.com`, oder installiere `cloudflared` selbst, damit es im `PATH`. |
| `cloudflared hat keine URL erzeugt`            | Der Prozess wurde beendet, bevor eine erzeugt wurde.                               | Normalerweise kein ausgehendes Netzwerk. Erneut versuchen; einen Proxy oder Egress-Filter prüfen.          |
| `cloudflared hat keine Verbindung registriert` | URL erzeugt, aber keine Edge-Verbindung, nach dem `http2` Wiederholungsversuch.    | Dein Netzwerk blockiert QUIC *und* HTTP/2 zur Edge von Cloudflare.                                         |
| `Cloudflare-URL war nicht erreichbar`          | Registriert, aber die Health-Prüfung hat nie über die öffentliche URL geantwortet. | Vorübergehende Edge-/DNS-Propagierung; drücke Start erneut.                                                |
| `cloudflared ist beendet`                      | Der Connector ist abgestürzt, während er online war.                               | Erneut Starten; prüfe auf einen OOM-Killer oder einen Prozess-Supervisor, der Kindprozesse einsammelt.     |
| `cloudflared konnte nicht gestoppt werden`     | Die Beendigung wurde nie bestätigt, also wird der Slot noch gehalten.              | Drücke Stop erneut; wenn es bestehen bleibt, starte Unsloth neu.                                           |

Weitere Symptome:

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

### 🌱 Umgebungsvariablen

| Variable                              | Zweck                                                                                                                                                                             |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `UNSLOTH_STUDIO_HOME`                 | Installationsstamm; das `cloudflared` Cache befindet sich in `<root>/bin`.                                                                                                        |
| `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT`    | Sekunden, bevor ein ungesicherter öffentlicher Start sich selbst beendet. Standard `3600`; `0` deaktiviert (und führt dazu, dass ein headless öffentlicher Start abgelehnt wird). |
| `UNSLOTH_STUDIO_PASSWORD`             | Initiales Admin-Passwort für headless-Starts.                                                                                                                                     |
| `UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK` | `1` überspringt den Drittanbieter-Rohport-Erreichbarkeitstest bei Wildcard-Bindungen.                                                                                             |
| `UNSLOTH_STUDIO_TRUST_FORWARDED`      | `1` berücksichtigt `X-Forwarded-For` hinter Ihrem eigenen Reverse Proxy.                                                                                                          |
| `UNSLOTH_STUDIO_ALLOW_STDIO_MCP`      | `1` hält stdio-MCP-Server auch bei aktivem Tunnel aktiviert; `0` erzwingt die Deaktivierung.                                                                                      |

### 🌐 HTTP-API

Alle vier erfordern eine **UI-Sitzung,** ein API-Schlüssel wird abgelehnt mit `403 Der 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, Eigentümer, <code>can_start</code> / <code>can_stop</code>, <code>block_reason</code>.</td></tr><tr><td><code>POST</code></td><td><code>/api/settings/remote-access/start</code></td><td>Ein vom System verwaltetes Starten planen. Idempotent.</td></tr><tr><td><code>POST</code></td><td><code>/api/settings/remote-access/stop</code></td><td>Ein vom System verwaltetes Stoppen 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>. Auf 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://unsloth.ai/docs/de/grundlagen/wie-man-lokale-llms-uberall-bereitstellt-sicherer-fernzugriff-mit-cloudflare-und-unsloth.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
