> 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/fr/bases/comment-servir-des-llm-locaux-partout-acces-distant-securise-avec-cloudflare-et-unsloth.md).

# Comment servir des LLM locaux partout : accès distant sécurisé avec Cloudflare et Unsloth

Servez et déployez des modèles d'IA locaux n'importe où. Vous pouvez accéder de manière sécurisée à vos LLM locaux depuis un autre appareil via HTTPS à l'aide d'un tunnel Cloudflare via [Unsloth](https://github.com/unslothai/unsloth). Aucun compte Cloudflare, configuration de domaine ou redirection de port n'est requis. Exécutez des modèles d'IA privés sur votre propre matériel, vos serveurs ou des GPU cloud et connectez-vous depuis n'importe où, comme votre téléphone.

{% columns %}
{% column %}
Unsloth est un projet open source qui vous permet d'entraîner et d'exécuter des LLM localement et, avec un tunnel Cloudflare, vous pouvez accéder à Unsloth depuis votre appareil mobile, partager l'accès avec un ami ou un collègue, héberger Unsloth sur un serveur comme Google Colab, AWS, ou même un serveur personnel.

Unsloth peut fonctionner à 100 % hors ligne sur votre ordinateur. Activez l'accès à distance et vous obtenez un lien web comme `https://known-plates-desire-turkey.trycloudflare.com`. Ouvrez-le sur votre téléphone, votre ordinateur portable ou dans n'importe quel navigateur, partout.
{% 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 %}

C'est gratuit. Rien à créer ni à payer, et vous ne touchez jamais à votre routeur ni à votre pare-feu. Une fois Unsloth installé, votre ordinateur se connecte à Cloudflare, et Cloudflare renvoie les visiteurs vers lui. Le lien est en HTTPS, donc la connexion est chiffrée.

Deux façons de l'activer :

* **Lorsque vous démarrez Unsloth :** ajoutez `--secure` à votre `unsloth studio` commande
* **Pendant qu'Unsloth est en cours d'exécution :** allez dans Paramètres → API → **Accès à distance** et appuyez sur **Démarrer**

Un seul tunnel existe par processus Unsloth, et seul son propriétaire peut l'arrêter.

### ⚡ Démarrage rapide

Tout d'abord, nous devons télécharger l'application [Unsloth Desktop](https://unsloth.ai/download) .

1. Installez l'application pour [macOS](https://unsloth.ai/download/mac), Windows ou [Linux](https://unsloth.ai/download/linux)
2. Lancez l'application
3. Puis allez dans Paramètres → Accès à distance et au LAN → Accès à distance.

<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>

Utilisez cela lorsque Unsloth est déjà en cours d'exécution et que vous voulez l'avoir sur votre téléphone ou une autre machine. Appuyez sur **Démarrer**, puis copiez l' **URL distante** ou scannez le **QR** code. `En ligne` signifie que le lien répond déjà, pas seulement qu'il a été demandé.

Trois choses à savoir :

* Toute personne disposant de l'URL et du mot de passe peut se connecter. Les navigateurs distants se connectent en tant que `unsloth`, définissez cela sous **Mot de passe distant**.
* L'URL est nouvelle à chaque démarrage et ne peut pas être épinglée.
* Un `0.0.0.0` port `--secure` brut reste ouvert. Seul

le ferme. **Démarrer** Si

#### est grisé, la carte indique pourquoi, généralement le mot de passe administrateur doit encore être modifié, ou le tunnel appartient à la commande de lancement.

<table><thead><tr><th width="292">Lorsque Démarrer n'est pas disponible</th><th>Raison</th></tr></thead><tbody><tr><td><code>server_starting</code></td><td>Unsloth est encore en cours de démarrage.</td></tr><tr><td><code>admin_password_change_required</code></td><td>Définissez un mot de passe distant avant d'exposer ce serveur. <em>(bureau)</em> / Changez le mot de passe administrateur avant d'exposer ce serveur. Dans l'application de bureau, exécutez <code>unsloth studio reset-password</code>. <em>(navigateur)</em></td></tr><tr><td><code>explicitly_disabled</code></td><td>Ce lancement utilisait <code>--no-cloudflare</code>. Redémarrez sans cela pour activer l'accès à distance.</td></tr><tr><td><code>launch_managed</code></td><td>Ce tunnel est géré par la commande de lancement.</td></tr><tr><td><code>colab_managed</code></td><td>Ce tunnel est géré par l'environnement d'exécution Colab.</td></tr><tr><td><code>colab</code></td><td>Les paramètres d'accès à distance sont gérés par l'environnement d'exécution Colab.</td></tr></tbody></table>

#### L'URL du tunnel dans le reste de l'interface utilisateur

Une fois qu'un tunnel est en ligne, deux endroits basculent automatiquement dessus :

* **Paramètres → API → Exemples d'utilisation** affiche un commutateur **HTTPS sécurisé** . Activé, chaque extrait curl/Python/JavaScript et chaque commande d'agent de code est réécrit en fonction de la base `trycloudflare.com` au lieu de `localhost`. Si vous n'avez pas lancé avec `--secure`, une info-bulle vous rappelle : *"Le port 0.0.0.0 reste accessible globalement. Pour une sécurité totale, lancez Unsloth avec `--secure` pour n'exposer que ce lien HTTPS."*
* Le **moniteur d'API** de la page **URL de base** affichage montre l'origine du tunnel, de sorte qu'un extrait copié là fonctionne depuis l'appareil distant, et chaque requête arrivant via le tunnel est listée en direct.

### CLI : méthode HTTPS uniquement

Après avoir installé Unsloth manuellement, exécutez dans votre terminal :

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

Unsloth reste lié à `127.0.0.1` et est publié **uniquement** via le tunnel. Si le tunnel ne peut pas démarrer, Unsloth **quitte au lieu de revenir** à un port brut. La bannière affiche :

```
🦥 Unsloth Studio est en cours d'exécution (sécurisé)
────────────────────────────────────────────────────
  Accès au lien sécurisé via Cloudflare : https://<random>.trycloudflare.com
  Sur cette machine uniquement : http://127.0.0.1:8888/
────────────────────────────────────────────────────
```

#### CLI : port LAN brut plus un lien public

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

Le port brut reste accessible sur votre réseau *et* une URL Cloudflare publique est publiée. La bannière vous avertit précisément de cela, car c'est le mode le moins privé.

#### UI : lancer un lien sur un serveur déjà en cours d'exécution

1. Ouvrez **Paramètres → API**.
2. Trouvez la carte **Accès à distance** .
3. Cliquez sur **Démarrer**.
4. Lorsque l'état indique **En ligne**, copiez le **URL distante** ou scannez le **QR** code avec votre téléphone.

### 🖥️ Référence CLI

Les deux options sont acceptées par `unsloth studio` (le chemin serveur simple) et par `unsloth studio run`.

<table><thead><tr><th width="283">Option</th><th width="100" align="center">Valeur par défaut</th><th>Effet</th></tr></thead><tbody><tr><td><code>--secure</code> / <code>--no-secure</code></td><td align="center">désactivé</td><td>Publier <strong>uniquement</strong> via Cloudflare. Force une liaison sur loopback, implique <code>--cloudflare</code>, et échoue de manière fermée si le tunnel ne peut pas démarrer.</td></tr><tr><td><code>--cloudflare</code> / <code>--no-cloudflare</code></td><td align="center">désactivé</td><td>Publie aussi une URL Cloudflare publique pour une <strong>non-<code>--api-only</code> liaison wildcard</strong> (<code>0.0.0.0</code> ou <code>::</code>). N'a aucun effet sur une liaison loopback. <code>--no-cloudflare</code> force la désactivation mais ne <strong>pas</strong> rend pas une liaison wildcard privée.</td></tr></tbody></table>

Notes sur le traitement des options :

* `--secure` ignore `-H`. Si vous passez un autre hôte, cela affiche une note et se lie `127.0.0.1` quand même.
* `--secure --no-cloudflare` est une contradiction et se termine avec le code `2`.
* Ces options appartiennent au chemin du serveur simple. Les placer *avant* un sous-commande (`unsloth studio --secure run ...`) se termine `2` avec la commande corrigée, car Typer les ignorerait sinon silencieusement. Utilisez `unsloth studio run --secure ...`.
* Le choix est conservé lors de la ré-exécution interne d'Unsloth sous forme de tri-état (`activé` / `désactivé` / `non défini`), donc une valeur `Docker ENV` ou `systemd Environment=` obsolète ne peut jamais réactiver un tunnel que vous avez exclu lors de cette invocation.

#### Ce que chaque lancement expose réellement

<table><thead><tr><th width="391">Lancement</th><th>Port brut</th><th>URL Cloudflare publique</th></tr></thead><tbody><tr><td><code>unsloth studio</code></td><td>sur cette machine uniquement</td><td>non</td></tr><tr><td><code>unsloth studio --cloudflare</code></td><td>sur cette machine uniquement</td><td>non, l'option est sans effet sur loopback</td></tr><tr><td><code>unsloth studio -H 0.0.0.0</code></td><td>votre réseau</td><td>non</td></tr><tr><td><code>unsloth studio -H 0.0.0.0 --cloudflare</code></td><td>votre réseau</td><td><strong>oui</strong></td></tr><tr><td><code>unsloth studio --secure</code></td><td>sur cette machine uniquement</td><td><strong>oui</strong>, et c'est la seule voie d'accès</td></tr><tr><td><code>unsloth studio --api-only</code> (backend de bureau)</td><td>tel que lié</td><td>non, sauf si <code>--secure</code></td></tr><tr><td>Google Colab</td><td>proxy Colab</td><td>uniquement via <code>start(cloudflare=True)</code></td></tr></tbody></table>

La règle appliquée par le backend : Colab ne crée jamais de tunnel depuis le chemin de lancement ; `--secure` crée toujours un tunnel (même `--api-only`, pour l'exposition d'une API sécurisée sans interface) ; sinon, le tunnel ne démarre que pour une liaison wildcard qui n'est pas `--api-only`.

#### `--secure` échoue de manière fermée

Si le tunnel ne se met pas en place, `--secure` refuse de continuer à fonctionner :

```
Un lien Cloudflare sécurisé n'est pas autorisé, utilisez --no-secure qui fournit un lien 0.0.0.0
```

et se termine `1`. C'est volontaire : `--secure` signifie « aucun port public brut », donc une dégradation silencieuse vers un serveur limité à loopback que vous pensez publié serait pire que l'arrêt.

#### Lignes de bannière au démarrage

Sur une liaison wildcard, Unsloth indique toujours l'état du tunnel, afin qu'un lancement accessible sur le réseau ne soit jamais silencieux :

* Tunnel Cloudflare : ACTIVÉ. Il s'agit d'une URL internet PUBLIQUE : toute personne qui la possède peut atteindre cet Unsloth.
* Tunnel Cloudflare : ACTIVÉ. Cette URL Cloudflare est PUBLIQUE, et le port brut est également accessible publiquement.
* Tunnel Cloudflare : demandé mais impossible à démarrer.
* Tunnel Cloudflare : DÉSACTIVÉ (par défaut). / DÉSACTIVÉ (--no-cloudflare). / DÉSACTIVÉ pour ce mode.

Chaque variante s'adapte au fait que le port brut ait été trouvé ou non accessible indépendamment depuis Internet. Cette vérification de connectivité contacte `ifconfig.me` et `check-host.net`; définissez `UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK=1` pour ignorer les deux.

#### La porte du mot de passe

La première fois qu'un lancement est sur le point de publier Unsloth sur une URL publique alors que le compte administrateur conserve encore son mot de passe de bootstrap auto-généré, Unsloth s'arrête et demande un nouveau mot de passe masqué, confirmé, **avant qu'un serveur ou un tunnel n'existe**.

* **Terminal attaché :** vous êtes invité. L'annulation (Ctrl+C) refuse le lancement.
* **Aucun terminal :** Unsloth avertit à la place, n'injecte jamais les identifiants de bootstrap dans la page publique, et arme le délai de bootstrap ; il s'arrête après `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT` (par défaut 1 heure) sauf si le mot de passe est modifié.
* **Aucun terminal et aucun délai** (`--api-only`, ou `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT=0`) : le lancement est refusé purement et simplement, car rien ne le protégerait.
* **`--secure` avec `cloudflared` manifestement indisponible :** refusé avec le mot de passe initial conservé, afin qu'un tunnel défaillant ne puisse pas vous bloquer l'accès.

Pour les configurations sans interface, définissez le mot de passe initial de manière non interactive (ne prend effet que si aucun mot de passe n'est encore défini) :

```bash
UNSLOTH_STUDIO_PASSWORD='votre-mot-de-passe-solide' unsloth studio --secure
```

```bash
printf '%s\n' 'votre-mot-de-passe-solide' | unsloth studio --secure --password -
```

Un `--password VALUE` littéral `est visible dans` ps `unsloth studio reset-password`.

### et l'historique du shell, alors préférez la variable d'environnement ou stdin. Faites ensuite la rotation avec

`run_server` supprime le tunnel du chemin de lancement sur Colab, puisque Colab proxy déjà le port. Demandez explicitement un lien public partageable :

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

Colab refuse d'ouvrir le lien tant que le compte administrateur a encore son mot de passe de bootstrap ; cet identifiant est visible par toute personne pouvant charger la page. Connectez-vous, changez le mot de passe, puis relancez. Tout échec se réduit à « aucun lien » et le proxy Colab continue de fonctionner.

### 🔒 Sécurité

Publier Unsloth signifie que toute personne détenant l'URL **et** un identifiant peut l'utiliser.

* **Les outils côté serveur s'exécutent avec votre utilisateur.** La recherche web, l'exécution Python et l'exécution de terminal sont activées par défaut, donc toute personne atteignant le serveur avec votre clé API peut exécuter du code sur cette machine. Passez `--disable-tools` lors de l'exposition d'Unsloth, et gardez la clé API privée. Chaque lancement accessible sur le réseau l'indique dans la bannière.
* **La porte du mot de passe administrateur** ci-dessus n'est pas facultative sur un tunnel géré au lancement.
* **La limitation de débit reste par visiteur.** Le tunnel se termine à `127.0.0.1`, donc tous les appelants via le tunnel partageraient sinon un seul quota. Lorsque le pair de socket est loopback, Unsloth respecte Cloudflare's `CF-Connecting-IP`, que la périphérie définit et qu'un client tunnelisé ne peut pas falsifier. Derrière votre propre proxy inverse, optez pour `X-Forwarded-For` avec `UNSLOTH_STUDIO_TRUST_FORWARDED=1`.
* **Les serveurs MCP stdio locaux sont révoqués lorsqu'un tunnel est actif.** stdio MCP est activé automatiquement uniquement comme commodité loopback ; un connecteur distant rompt cette frontière de confiance, donc la valeur par défaut automatique se désactive elle-même. Un `UNSLOTH_STUDIO_ALLOW_STDIO_MCP=1` explicite
* **l'emporte quand même.** L'URL est aléatoire et jetable.

### Les tunnels rapides obtiennent un nouveau nom d'hôte à chaque démarrage. Considérez l'URL elle-même comme un secret, et rappelez-vous qu'il n'existe aucun moyen de l'épingler.

❔ Dépannage `Voici les états exacts affichés dans la carte Accès à distance. Tout le reste est réduit à l'erreur générique`.

| Échec du tunnel Cloudflare                    | Erreur                                                                           | Signification                                                                                             |
| --------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `cloudflared est indisponible`                | Pas sur `PATH`, ni mis en cache, et le téléchargement a échoué.                  | Vérifiez l'accès sortant à `github.com`, ou installez `cloudflared` vous-même afin qu'il soit sur `PATH`. |
| `cloudflared n'a pas produit d'URL`           | Le processus s'est terminé avant d'en générer une.                               | En général, aucun réseau sortant. Réessayez ; vérifiez un proxy ou un filtre de sortie.                   |
| `cloudflared n'a pas enregistré de connexion` | URL générée, mais aucune connexion edge, après la tentative `http2` .            | Votre réseau bloque QUIC *et* HTTP/2 vers la périphérie de Cloudflare.                                    |
| `L'URL Cloudflare n'était pas accessible`     | Enregistrée, mais la sonde de santé n'a jamais répondu via l'URL publique.       | Propagation transitoire edge/DNS ; appuyez à nouveau sur Démarrer.                                        |
| `cloudflared s'est terminé`                   | Le connecteur est mort pendant qu'il était en ligne.                             | Relancez ; vérifiez un tueur OOM ou un superviseur de processus récupérant les processus enfants.         |
| `cloudflared n'a pas pu être arrêté`          | La terminaison n'a jamais été confirmée, donc l'emplacement est toujours occupé. | Appuyez de nouveau sur Arrêter ; si le problème persiste, redémarrez Unsloth.                             |

Autres symptômes :

* **`--secure` se termine immédiatement.** Le tunnel a échoué ; le message nomme `--no-secure` comme alternative. Corrigez d'abord la connectivité, puisque `--no-secure` publie un port brut.
* **Démarrer est grisé dans l'interface.** Lisez le message sous la carte ; il nomme la raison du blocage du tableau ci-dessus.

### 🌱 Variables d'environnement

| Variable                              | Objectif                                                                                                                                                                         |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `UNSLOTH_STUDIO_HOME`                 | Racine d'installation ; le `cloudflared` le cache se trouve dans `<root>/bin`.                                                                                                   |
| `UNSLOTH_STUDIO_BOOTSTRAP_TIMEOUT`    | Nombre de secondes avant qu'un lancement public non sécurisé ne s'arrête automatiquement. Par défaut `3600`; `0` désactive (et fait refuser un lancement public sans interface). |
| `UNSLOTH_STUDIO_PASSWORD`             | Mot de passe administrateur initial pour les lancements sans interface.                                                                                                          |
| `UNSLOTH_STUDIO_DISABLE_PUBLIC_CHECK` | `1` ignore la sonde de joignabilité du port brut d'un tiers lors des liaisons génériques.                                                                                        |
| `UNSLOTH_STUDIO_TRUST_FORWARDED`      | `1` respecte `X-Forwarded-For` derrière votre propre proxy inverse.                                                                                                              |
| `UNSLOTH_STUDIO_ALLOW_STDIO_MCP`      | `1` laisse les serveurs MCP stdio activés même lorsqu'un tunnel est actif ; `0` désactive de force.                                                                              |

### 🌐 API HTTP

Les quatre nécessitent une **session d'interface,** une clé API est rejetée avec `403 L'accès distant nécessite une session d'interface.` Une opération refusée renvoie `409` avec la raison du blocage comme détail.

<table><thead><tr><th width="100">Méthode</th><th>Chemin</th><th>Objectif</th></tr></thead><tbody><tr><td><code>GET</code></td><td><code>/api/settings/remote-access</code></td><td>État actuel, URL, propriétaire, <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>Planifie un démarrage détenu par les paramètres. Idempotent.</td></tr><tr><td><code>POST</code></td><td><code>/api/settings/remote-access/stop</code></td><td>Planifie un arrêt détenu par les paramètres. Ne modifie pas la préférence de démarrage automatique.</td></tr><tr><td><code>PUT</code></td><td><code>/api/settings/remote-access/auto-start</code></td><td><code>{"enabled": true|false}</code>. Rejeté sur Colab.</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/fr/bases/comment-servir-des-llm-locaux-partout-acces-distant-securise-avec-cloudflare-et-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.
