Joindre le relais par un Cloudflare Tunnel
Un Cloudflare Tunnel donne à votre relais une adresse HTTPS publique sans serveur
à vous et sans ouvrir de port sur votre routeur. OAR peut faire tourner le programme
cloudflared de Cloudflare pour vous : il le démarre avec le relais, le redémarre quand il
tombe et affiche son état dans la pastille d’état. Choisissez-le quand vous avez un domaine chez
Cloudflare et voulez joindre le relais depuis un téléphone ou un autre réseau, ou quand
il vous faut HTTPS pour installer la page comme app
et pour les notifications push.
cloudflared se connecte vers l’extérieur, à Cloudflare. Le relais continue d’écouter sur cette
machine uniquement (localhost reste à true), et Cloudflare achemine les requêtes pour
votre nom d’hôte par cette connexion jusqu’au port du relais.
Ce qu’il vous faut #
- Un compte Cloudflare avec Zero Trust, et un domaine (une zone) sur ce compte pour le nom d’hôte public.
cloudflaredinstallé sur la machine qui fait tourner le relais. OAR ne l’inclut pas et ne l’installe pas.- Un tunnel que vous créez dans Cloudflare. OAR le fait tourner à partir du token du tunnel.
Le relais lance le programme indiqué dans cloudflared, ou à défaut le
cloudflared qu’il trouve dans son PATH. Installez-le avec :
| Système | Installation |
|---|---|
| Windows | winget install --id Cloudflare. |
| macOS | brew install cloudflared |
| Linux | Le dépôt de paquets de Cloudflare (Debian, Ubuntu, RHEL) : pkg.cloudflare.com |
Sous Windows, un lanceur . ou . ne fonctionne pas. OAR démarre un fichier . ou
..
Un seul type de tunnel
OAR prend en charge un tunnel qui tourne à partir d’un token, ce que Cloudflare appelle un
tunnel géré à distance. Il n’y a pas de réglage pour un fichier d’identifiants ou un nom
de tunnel, ni pour un quick tunnel avec une adresse aléatoire. Si vous faites tourner un tel tunnel
vous-même, démarrez cloudflared en dehors d’OAR. OAR n’en sait alors rien.
La mise en place #
- Dans votre compte Cloudflare Zero Trust, créez un tunnel. Copiez son token.
- Donnez au tunnel un nom d’hôte public sur votre zone, par exemple
relay., et dirigez-le versexample. com http://. Si vous avez modifiélocalhost: 3333 portdansconfig., utilisez ce port. Ce routage se trouve chez Cloudflare, pas sur votre machine.json - Ajoutez le bloc
cloudflaredàTunnel config.avec le token (voir Clés de config).json - Redémarrez le relais avec
oar restart.
Ouvrez https:// dans un navigateur. Vous vous connectez avec le token d’accès
comme d’habitude.
Le bloc de config #
{
"cloudflaredTunnel": {
"mode": "managed",
"required": false,
"token": "<tunnel token>",
"binary": "cloudflared",
"extraArgs": []
}
}
| Clé | Type | Par défaut | Ce qu’elle fait |
|---|---|---|---|
mode |
"disabled" ou "managed" |
"disabled" |
managed fait lancer cloudflared par le relais. |
token |
chaîne | aucune | Le token du tunnel. Obligatoire avec managed ; sans lui, le tunnel reste désactivé et le journal dit pourquoi. |
required |
booléen | false |
Tant que le tunnel n’est pas connecté, le relais cesse de prendre des messages dans la queue. Voir Tunnel requis. |
binary |
chaîne | cloudflared |
Le programme : un chemin absolu, ou un nom cherché dans le PATH. Un chemin doit pointer vers un fichier exécutable. Un chemin relatif contenant un dossier part du dossier du programme du relais ; utilisez donc un chemin absolu. |
extra |
tableau de chaînes | [] |
Arguments ajoutés après cloudflared tunnel run --token <token>. Les entrées vides sont retirées. |
L’ancienne forme "enabled": true fonctionne encore pour mode: "managed". Trois
variables d’environnement l’emportent sur le fichier : COPILOT_,
COPILOT_ et COPILOT_. La
référence de config.json liste les
clés avec les autres réglages du tunnel, et la page
Variables d’environnement liste les
variables.
Le relais passe le token à cloudflared comme argument de ligne de commande
(cloudflared tunnel run --token <token>), pas par l’environnement. Sur une
machine avec d’autres utilisateurs, le token peut donc apparaître dans la liste des
processus en cours. Le journal du relais l’affiche sous la forme <redacted>.
Son comportement #
- Démarrage et arrêt. Le relais démarre
cloudflaredquand il démarre et l’arrête (par un signal de terminaison) quand il s’éteint. - Connecté. Le tunnel compte comme connecté quand
cloudflaredsignale une connexion enregistrée ou, à défaut, quand il tourne depuis cinq secondes. - Coupures. Quand
cloudflaredse termine, le relais le relance après une attente d’environ 5, 10, 20, 40 puis 60 secondes, chacune augmentée d’au plus 20 %. Les paliers repartent de zéro après une connexion qui a duré plus de 30 secondes. - Token erroné ou tunnel supprimé. Si
cloudflaredse termine dans les 10 secondes trois fois de suite, le relais signale l’erreurauth-et, à partir de là, ne réessaie plus qu’environ une fois par minute.or- config - Pas de
cloudflared. Le relais démarre normalement et le tunnel reste désactivé. Il vérifie à nouveau chaque minute et démarre le tunnel dès que le programme est là. Si vous l’avez installé dans un dossier qui n’est pas dans lePATHdu relais, redémarrez le relais.
Tunnel requis #
Avec required: true, le relais ne prend pas de messages dans la queue tant que le
tunnel n’est pas connecté. Cela inclut le temps avant la première connexion ainsi qu’un
cloudflared ou un token manquant. Utilisez-le quand le relais n’a d’utilité que si vous pouvez
le joindre de l’extérieur. Les messages attendent dans la queue et partent une fois le tunnel
connecté (voir les turns et la queue).
Voir l’état #
| Où | Ce qu’on y voit |
|---|---|
| Pastille d’état | Ambre, avec l’infobulle Web relay reachable via Cloudflare Tunnel (Relais web joignable via Cloudflare Tunnel), tant que le tunnel est connecté. Verte quand il est configuré mais pas connecté : l’infobulle dit Web relay reachable; Cloudflare tunnel disconnected (cloudflared manque. Le relais répond toujours. Voir le menu et l’apparence. |
oar status |
Une ligne Tunnel: quand le tunnel est activé : running, not connected, not connected (<reason>) ou off: <reason>. Relais arrêté, elle affiche les mêmes termes que oar doctor. Voir oar status. |
oar doctor |
disabled, managed (cloudflared: <path>) ou managed, cannot start: <reason>. Il lit seulement la config et ne change rien. Voir oar doctor. |
| Le journal | Des lignes commençant par [cloudflared- : la commande (le token affiché comme <redacted>), Tunnel connected, les fins de processus et délais de reconnexion, et la sortie propre de cloudflared. |
Le relais ne connaît pas votre nom d’hôte public, puisque le routage se trouve chez Cloudflare ; aucun de ces endroits ne l’affiche donc.
Reconnaître le trafic du tunnel #
Cloudflare ajoute un en-tête cf- à chaque requête qu’il transmet. Le relais s’en sert
pour distinguer une requête arrivée par le tunnel d’une requête faite sur cette
machine. Pour traiter de la même façon les en-têtes qu’ajoute votre propre périphérie, listez-les dans
tunnel. public liste les noms d’hôte qui joignent le
relais, et trust indique les proxys que le relais croit au sujet de l’adresse
transmise. La valeur par défaut, "loopback", convient à cloudflared sur la même
machine. Les trois figurent dans la référence de config.json.
Un second nom d’hôte pour les aperçus #
Les aperçus ont besoin de leur propre nom d’hôte, pour qu’une app en aperçu
ne partage jamais de cookie de connexion avec le relais. Ajoutez-le au même tunnel comme second
nom d’hôte public qui pointe vers l’écouteur d’aperçu (http:// par
défaut). La page des aperçus donne l’exemple d’ingress
et le bloc previews. Mettez le nom d’hôte du relais dans public.
Cloudflare Access devant le relais #
Une application Cloudflare Access sur le nom d’hôte du relais s’applique à chaque
visiteur, y compris aux lecteurs d’une conversation partagée.
Sans exception, on leur demande de se connecter et le lien ne fonctionne pas. Laissez passer
/ et / sans connexion.
N’ajoutez pas de règle de cache Cloudflare pour /. Une page partagée recharge
cette adresse pour suivre la conversation, et une réponse en cache continuerait d’afficher
un ancien état. Le relais marque chaque réponse d’API avec Cache-, et chaque
réponse avec CDN- et Cloudflare- réglés sur
no-. Cloudflare respecte ces deux en-têtes avant une règle de cache de votre zone.
Sécurité #
Un tunnel met le relais sur l’internet public. C’est le token d’accès qui tient les autres à l’écart. Voir Le token d’accès et qui peut joindre le relais et Ce qu’OAR expose.
Les workers de session du relais se connectent par des sockets qui ne fonctionnent que sur cette machine.
Comme un tunnel public transmet tous les chemins, le relais répond 403 à une requête
sur ces chemins qui porte cf- ou l’un de vos tunnel, et le
journal le note avec [tunnel-. Les liens partagés, qui arrivent par le tunnel
sans connexion, ne sont pas concernés.
Dépannage #
| Ce que vous voyez | Que faire |
|---|---|
L’infobulle dit Cloudflare tunnel off: cloudflared is not installed (Tunnel Cloudflare désactivé : cloudflared n’est pas installé), suivi de la façon de l’installer, ou oar doctor dit cloudflared is not installed |
Installez cloudflared (voir Ce qu’il vous faut). Le tunnel démarre dans la minute. |
cloudflared was not found as configured (<path>) |
cloudflared ne pointe vers rien. Corrigez le chemin, ou videz la clé pour utiliser le cloudflared du PATH. |
cloudflared |
Ajoutez le token à la config, ou définissez COPILOT_. |
Tunnel: not connected (auth- |
cloudflared se termine sans cesse aussitôt. Vérifiez le token et que le tunnel existe encore chez Cloudflare. Le journal contient le message propre de cloudflared. |
Tunnel: not connected (exit:<code>) |
cloudflared s’est terminé avec ce code de sortie. Le relais réessaie ; lisez le journal. |
| La pastille reste verte alors que vous avez ouvert le relais par le tunnel | Le tunnel n’est pas connecté du côté du relais. Lisez l’infobulle et oar status. |
| Les messages ne partent pas et la queue est en pause | required vaut true et le tunnel n’est pas connecté. Réparez le tunnel, ou passez required à false. |
| Un lien partagé demande au lecteur de se connecter | Cloudflare Access fait obstacle. Laissez passer / et /. |
| Une page partagée affiche un ancien état | Une règle de cache couvre /. Supprimez-la. |
403 sur un chemin de worker de session |
Normal : ces chemins sont fermés au trafic du tunnel. |
cloudflared est installé, mais le tunnel ne démarre pas |
Le relais ne le voit peut-être pas dans son PATH. Réglez binary sur le chemin complet et lancez oar restart. |