OpenClaw peut router le trafic HTTP et WebSocket d’exécution via un proxy direct géré par l’opérateur. Il s’agit d’une défense en profondeur facultative pour les déploiements qui souhaitent un contrôle centralisé de la sortie réseau, une protection SSRF renforcée et une meilleure auditabilité réseau. OpenClaw ne fournit, ne télécharge, ne démarre, ne configure ni ne certifie aucun proxy. Vous exécutez la technologie de proxy adaptée à votre environnement, et OpenClaw y route les clients HTTP et WebSocket process-local normaux.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Pourquoi utiliser un proxy
Un proxy donne aux opérateurs un point de contrôle réseau unique pour le trafic HTTP et WebSocket sortant. Cela peut être utile même en dehors du renforcement contre SSRF :- Politique centralisée : maintenir une seule politique de sortie au lieu de compter sur chaque point d’appel HTTP de l’application pour appliquer correctement les règles réseau.
- Contrôles au moment de la connexion : évaluer la destination après la résolution DNS et immédiatement avant que le proxy n’ouvre la connexion en amont.
- Défense contre le DNS rebinding : réduire l’écart entre une vérification DNS au niveau de l’application et la connexion sortante réelle.
- Couverture JavaScript plus large : router les clients ordinaires
fetch,node:http,node:https, WebSocket, axios, got, node-fetch et similaires via le même chemin. - Auditabilité : journaliser les destinations autorisées et refusées à la frontière de sortie.
- Contrôle opérationnel : appliquer des règles de destination, une segmentation réseau, des limites de débit ou des listes d’autorisation sortantes sans reconstruire OpenClaw.
Comment OpenClaw route le trafic
Lorsqueproxy.enabled=true et qu’une URL de proxy est configurée, les processus d’exécution protégés comme openclaw gateway run, openclaw node run et openclaw agent --local routent la sortie HTTP et WebSocket normale via le proxy configuré :
localhost ou une IP de bouclage littérale comme 127.0.0.1 ou [::1]. Ce chemin de plan de contrôle doit pouvoir atteindre les Gateways de bouclage même lorsque le proxy de l’opérateur bloque les destinations de bouclage. Les requêtes HTTP et WebSocket d’exécution normales utilisent toujours le proxy configuré.
En interne, OpenClaw utilise deux hooks de routage au niveau du processus pour cette fonctionnalité :
- Le routage par dispatcher Undici couvre
fetch, les clients basés sur undici et les transports qui fournissent leur propre dispatcher undici. - Le routage
global-agentcouvre les appelants Node corenode:httpetnode:https, y compris de nombreuses bibliothèques construites surhttp.request,https.request,http.getethttps.get. Le mode proxy géré force cet agent global afin que les agents HTTP Node explicites ne contournent pas accidentellement le proxy de l’opérateur.
OPENCLAW_PROXY_URL dans ce chemin de transport propre à son propriétaire.
L’URL du proxy elle-même doit utiliser http://. Les destinations HTTPS restent prises en charge via le proxy avec HTTP CONNECT ; cela signifie seulement qu’OpenClaw attend un écouteur de proxy direct HTTP simple, comme http://127.0.0.1:3128.
Pendant que le proxy est actif, OpenClaw efface no_proxy, NO_PROXY et GLOBAL_AGENT_NO_PROXY. Ces listes de contournement sont basées sur la destination ; laisser localhost ou 127.0.0.1 dedans permettrait à des cibles SSRF à haut risque d’éviter le proxy de filtrage.
À l’arrêt, OpenClaw restaure l’environnement de proxy précédent et réinitialise l’état de routage du processus mis en cache.
Termes de proxy associés
proxy.enabled/proxy.proxyUrl: routage par proxy direct sortant pour la sortie d’exécution OpenClaw. Cette page documente cette fonctionnalité.gateway.auth.mode: "trusted-proxy": authentification de proxy inverse entrante, consciente de l’identité, pour l’accès au Gateway. Consultez Authentification par proxy de confiance.openclaw proxy: proxy de débogage local et inspecteur de capture pour le développement et le support. Consultez openclaw proxy.tools.web.fetch.useTrustedEnvProxy: option d’activation pourweb_fetchpermettant à un proxy d’environnement HTTP(S) contrôlé par l’opérateur de résoudre le DNS tout en conservant par défaut l’épinglage DNS strict et la politique de nom d’hôte. Consultez Web fetch.- Paramètres de proxy propres à un canal ou à un fournisseur : remplacements propres au propriétaire pour un transport particulier. Préférez le proxy réseau géré lorsque l’objectif est un contrôle centralisé de la sortie sur toute l’exécution.
Configuration
proxy.enabled=true dans la configuration :
proxy.proxyUrl a priorité sur OPENCLAW_PROXY_URL.
Mode de bouclage du Gateway
Les clients locaux du plan de contrôle du Gateway se connectent généralement à un WebSocket de bouclage commews://127.0.0.1:18789. Utilisez proxy.loopbackMode pour choisir le comportement de ce trafic pendant que le proxy géré est actif :
gateway-only(par défaut) : OpenClaw enregistre l’autorité de bouclage du Gateway dans le contrôleurNO_PROXYglobal-agentactif afin que le trafic WebSocket local du Gateway puisse se connecter directement. Les ports de Gateway de bouclage personnalisés fonctionnent parce que l’hôte et le port de l’URL du Gateway actif sont enregistrés.proxy: OpenClaw n’enregistre pas d’autoritéNO_PROXYde bouclage du Gateway, donc le trafic local du Gateway est envoyé via le proxy géré. Si le proxy est distant, il doit fournir un routage spécial vers le service de bouclage de l’hôte OpenClaw, par exemple en le mappant vers un nom d’hôte, une IP ou un tunnel joignable par le proxy. Les proxys distants standard résolvent127.0.0.1etlocalhostdepuis l’hôte du proxy, pas depuis l’hôte OpenClaw.block: OpenClaw refuse les connexions de plan de contrôle de Gateway en bouclage avant d’ouvrir un socket.
enabled=true mais qu’aucune URL de proxy valide n’est configurée, les commandes protégées échouent au démarrage au lieu de revenir à un accès réseau direct.
Pour les services gateway gérés démarrés avec openclaw gateway start, préférez stocker l’URL dans la configuration :
OPENCLAW_PROXY_URL dans l’environnement durable du service, par exemple $OPENCLAW_STATE_DIR/.env ou ~/.openclaw/.env, puis réinstallez le service afin que launchd, systemd ou Scheduled Tasks démarre le gateway avec cette valeur.
Pour les commandes openclaw --container ..., OpenClaw transmet OPENCLAW_PROXY_URL à la CLI enfant ciblant le conteneur lorsqu’elle est définie. L’URL doit être joignable depuis l’intérieur du conteneur ; 127.0.0.1 désigne le conteneur lui-même, pas l’hôte. OpenClaw rejette les URL de proxy de bouclage pour les commandes ciblant un conteneur, sauf si vous remplacez explicitement ce contrôle de sécurité.
Exigences du proxy
La politique du proxy est la frontière de sécurité. OpenClaw ne peut pas vérifier que le proxy bloque les bonnes cibles. Configurez le proxy pour :- Se lier uniquement au bouclage ou à une interface privée de confiance.
- Restreindre l’accès afin que seuls le processus, l’hôte, le conteneur ou le compte de service OpenClaw puissent l’utiliser.
- Résoudre lui-même les destinations et bloquer les IP de destination après la résolution DNS.
- Appliquer la politique au moment de la connexion pour les requêtes HTTP simples comme pour les tunnels HTTPS
CONNECT. - Refuser les contournements basés sur la destination pour les plages de bouclage, privées, link-local, de métadonnées, de multidiffusion, réservées ou de documentation.
- Éviter les listes d’autorisation de noms d’hôte, sauf si vous faites entièrement confiance au chemin de résolution DNS.
- Journaliser la destination, la décision, l’état et le motif sans journaliser les corps de requête, les en-têtes d’autorisation, les cookies ou d’autres secrets.
- Garder la politique de proxy sous contrôle de version et examiner les changements comme une configuration sensible à la sécurité.
Destinations bloquées recommandées
Utilisez cette liste de refus comme point de départ pour tout proxy direct, pare-feu ou politique de sortie. La logique de classification au niveau de l’application OpenClaw se trouve danssrc/infra/net/ssrf.ts et src/shared/net/ip.ts. Les hooks de parité pertinents sont BLOCKED_HOSTNAMES, BLOCKED_IPV4_SPECIAL_USE_RANGES, BLOCKED_IPV6_SPECIAL_USE_RANGES, RFC2544_BENCHMARK_PREFIX et la gestion intégrée des sentinelles IPv4 pour NAT64, 6to4, Teredo, ISATAP et les formes IPv4-mapped. Ces fichiers sont des références utiles lors de la maintenance d’une politique de proxy externe, mais OpenClaw n’exporte ni n’applique automatiquement ces règles dans votre proxy.
| Plage ou hôte | Pourquoi bloquer |
|---|---|
127.0.0.0/8, localhost, localhost.localdomain | Bouclage IPv4 |
::1/128 | Bouclage IPv6 |
0.0.0.0/8, ::/128 | Adresses non spécifiées et de ce réseau |
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Réseaux privés RFC1918 |
169.254.0.0/16, fe80::/10 | Adresses link-local et chemins courants de métadonnées cloud |
169.254.169.254, metadata.google.internal | Services de métadonnées cloud |
100.64.0.0/10 | Espace d’adresses partagé NAT de niveau opérateur |
198.18.0.0/15, 2001:2::/48 | Plages de test de performance |
192.0.0.0/24, 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24, 2001:db8::/32 | Plages à usage spécial et de documentation |
224.0.0.0/4, ff00::/8 | Multidiffusion |
240.0.0.0/4 | IPv4 réservé |
fc00::/7, fec0::/10 | Plages IPv6 locales/privées |
100::/64, 2001:20::/28 | Plages IPv6 discard et ORCHIDv2 |
64:ff9b::/96, 64:ff9b:1::/48 | Préfixes NAT64 avec IPv4 intégrée |
2002::/16, 2001::/32 | 6to4 et Teredo avec IPv4 intégrée |
::/96, ::ffff:0:0/96 | IPv6 compatible IPv4 et IPv6 IPv4-mapped |
Validation
Validez le proxy depuis le même hôte, conteneur ou compte de service qui exécute OpenClaw :https://example.com/ réussit et démarre un canari loopback temporaire que le proxy ne doit pas atteindre. La vérification refusée par défaut réussit lorsque le proxy renvoie une réponse de refus non-2xx ou bloque le canari avec une défaillance de transport ; elle échoue si une réponse réussie atteint le canari. Si aucun proxy n’est activé et configuré, la validation signale un problème de configuration ; utilisez --proxy-url pour une vérification préalable ponctuelle avant de modifier la configuration. Utilisez --allowed-url et --denied-url pour tester les attentes propres au déploiement. Ajoutez --apns-reachable pour vérifier aussi que la livraison HTTP/2 APNs directe peut ouvrir un tunnel CONNECT via le proxy et recevoir une réponse APNs de bac à sable ; la sonde utilise un jeton fournisseur volontairement invalide, donc 403 InvalidProviderToken est attendu et compte comme atteignable. Les destinations refusées personnalisées sont à fermeture sécurisée : toute réponse HTTP signifie que la destination était atteignable via le proxy, et toute erreur de transport est signalée comme non concluante, car OpenClaw ne peut pas prouver que le proxy a bloqué une origine atteignable. En cas d’échec de la validation, la commande se termine avec le code 1.
Utilisez --json pour l’automatisation. La sortie JSON contient le résultat global, la source effective de la configuration du proxy, toute erreur de configuration et chaque vérification de destination. Les identifiants de l’URL du proxy sont masqués dans les sorties texte et JSON :
curl :
openclaw proxy validate, le canari loopback intégré peut distinguer un refus du proxy d’une origine atteignable. Les vérifications --denied-url personnalisées ne disposent pas de ce canari ; traitez donc les réponses HTTP et les défaillances de transport ambiguës comme des échecs de validation, sauf si votre proxy expose un signal de refus propre au déploiement que vous pouvez vérifier séparément.
Activez ensuite le routage proxy OpenClaw :
Limites
- Le proxy améliore la couverture pour les clients HTTP JavaScript et WebSocket locaux au processus, mais ce n’est pas un bac à sable réseau au niveau du système d’exploitation.
- Le trafic loopback du plan de contrôle du Gateway utilise par défaut un contournement local direct via
proxy.loopbackMode: "gateway-only". OpenClaw met en œuvre ce contournement en enregistrant l’autorité loopback du Gateway actif dans le contrôleurNO_PROXYglobal-agentgéré. Les opérateurs peuvent définirproxy.loopbackMode: "proxy"pour envoyer le trafic loopback du Gateway via le proxy géré, ouproxy.loopbackMode: "block"pour refuser les connexions loopback du Gateway. Consultez Mode Loopback du Gateway pour la mise en garde liée au proxy distant. - Les sockets brutes
net,tlsethttp2, les modules natifs et les processus enfants non OpenClaw peuvent contourner le routage proxy au niveau de Node, sauf s’ils héritent des variables d’environnement du proxy et les respectent. Les CLI enfants OpenClaw issus d’un fork héritent de l’URL du proxy géré et de l’étatproxy.loopbackMode. - IRC est un canal TCP/TLS brut situé hors du routage de proxy direct géré par l’opérateur. Dans les déploiements qui exigent que toute sortie passe par ce proxy direct, définissez
channels.irc.enabled=falsesauf si la sortie IRC directe est explicitement approuvée. - Le proxy de débogage local est un outil de diagnostic, et son transfert amont direct pour les requêtes proxy et les tunnels CONNECT est désactivé par défaut lorsque le mode proxy géré est actif ; n’activez le transfert direct que pour des diagnostics locaux approuvés.
- Les WebUI locales utilisateur et les serveurs de modèles locaux doivent être ajoutés à la liste d’autorisation dans la politique proxy de l’opérateur lorsque nécessaire ; OpenClaw n’expose pas de contournement général du réseau local pour eux.
- Le contournement proxy du plan de contrôle du Gateway est intentionnellement limité à
localhostet aux URL IP loopback littérales. Utilisezws://127.0.0.1:18789,ws://[::1]:18789ouws://localhost:18789pour les connexions locales directes au plan de contrôle du Gateway ; les autres noms d’hôte sont routés comme du trafic ordinaire basé sur un nom d’hôte. - OpenClaw n’inspecte pas, ne teste pas et ne certifie pas votre politique proxy.
- Traitez les modifications de politique proxy comme des modifications opérationnelles sensibles à la sécurité.
| Surface | État du proxy géré |
|---|---|
fetch, node:http, node:https, clients WebSocket courants | Routés via les hooks de proxy géré lorsqu’ils sont configurés. |
| HTTP/2 APNs direct | Routé via l’assistant CONNECT géré APNs. |
| Loopback du plan de contrôle du Gateway | Direct uniquement pour l’URL locale configurée du Gateway loopback. |
| Transfert amont du proxy de débogage | Désactivé lorsque le mode proxy géré est actif, sauf activation explicite pour les diagnostics locaux. |
| IRC | TCP/TLS brut ; non relayé par le mode proxy HTTP géré. Désactivez-le sauf si la sortie IRC directe est approuvée. |
Autres appels clients bruts net, tls ou http2 | Doivent être classés par la protection des sockets brutes avant intégration. |