2026-05-14 OpenClaw : proxy HTTP/HTTPS sortant sur Mac mini ProxyMac loué — pourquoi les export SSH trompent et comment launchd doit hériter
Si vous faites tourner OpenClaw sur un Mac mini Apple Silicon loué à Hong Kong, au Japon, en Corée, à Singapour ou aux États-Unis, le portable développeur sort souvent déjà via un proxy HTTP(S) d’entreprise, alors que la mini cloud n’hérite pas ce chemin. Scénario classique : en SSH, export HTTP_PROXY=... et les appels modèle réussissent ; le LaunchAgent launchd n’hérite aucune variable et l’on accuse « la latence OpenClaw ». Cet article apporte (1) un filtre d’audience, (2) des symptômes confondus avec des pannes modèle, (3) une matrice à quatre modes, (4) un runbook launchd en neuf étapes, (5) un tableau de scénarios PAC / split tunnel / inspection TLS, (6) les pièges NO_PROXY pour MCP stdio. Croisez avec MCP vs launchd, checklist SSH headless, routage VPN split tunnel, jeton passerelle JSON et installation & déploiement. UI ponctuelle : VNC ; coûts : tarifs ; diagnostic : aide.
Qui doit câbler explicitement le proxy HTTP(S) sortant pour OpenClaw
Commencez par vérifier si la route par défaut de la mini atteint Internet public sans la même chaîne d’inspection que le portable. Banques réglementées, OEM avec ZTNA mondial, architectures hybrides qui ne whitelistent que le 443 SaaS imposent souvent un proxy explicite aux démons non navigateur. Si la politique interdit l’egress public sans proxy, le processus passerelle OpenClaw doit suivre le même contrat. Si le routeur fait déjà du transparent forwarding, NO_PROXY peut suffire—mais prouvez-le avec curl -v ou capture, pas au feeling.
- Seuil quantitatif :
curl -I https://api.openai.comsans--proxyrenvoie 407, avec proxy OK → compartiment proxy explicite. - Seuil latence : détour via un proxy central sur un autre continent ajoute souvent 180–320 ms aller-retour—dimensionnez les timeouts MCP.
- Seuil parallèle : les proxys d’entreprise plafonnent souvent les tunnels
CONNECTconcurrents à 30–80—baissez la parallélisation OpenClaw avant d’écrire « instable ».
Symptômes qui ressemblent à des pannes modèle ou à un « mauvais » choix de région
Les échecs HTTP se manifestent rarement comme un joli bandeau « authentification proxy requise » dans JSONL. On voit plutôt des timeouts TLS, des resets pile à 60 ou 120 secondes, ou du streaming qui meurt après le premier jeton quand le proxy rekey. DNS OK mais TCP bloqué : split DNS qui envoie api.* vers des résolveurs uniquement VPN que la mini n’a pas montés. Avant de déplacer la charge du Japon vers Singapour, reproduisez avec curl loopback et les mêmes drapeaux proxy que launchd.
HTTPS_PROXY seul corrige-t-il les cibles TLS, (3) le MCP stdio vit-il encore—si oui, panne probablement sortante uniquement.
Matrice de décision : proxy statique, PAC, transparent, aucun
| Mode | Vue OpenClaw | Conséquence launchd | Risque principal |
|---|---|---|---|
Statique http://hôte:port |
Bibliothèques lisent HTTP_PROXY/HTTPS_PROXY |
Dupliquer dans plist EnvironmentVariables |
Secrets dans plist world-readable si chmod laxiste |
| URL PAC / WPAD | Sans résolution PAC, souvent équivalent à « rien » | Souvent wrapper qui exporte le proxy résolu | PAC qui change silencieusement—épingler la version en Git |
| Interception TLS transparente | Pas de variables ; CA d’entreprise dans la poignée de main | CA racine dans le trousseau système | Rotation CA casse TLS jusqu’à mise à jour |
| Aucun (direct) | Egress public depuis la région de la mini | NO_PROXY pour MCP local reste utile |
Trou de conformité si une policy proxy arrive plus tard |
Neuf étapes : preuve SSH puis parité launchd
- Inventaire :
HTTP_PROXY,HTTPS_PROXY,ALL_PROXY,NO_PROXY, clés spécifiques fournisseur. - Preuve curl : sur la mini,
curl -v --proxy http://proxy:8080 https://api.anthropic.comet archiver le verbose. - Plist : refléter le jeu gagnant dans
EnvironmentVariables; ne pas compter sur~/.zshrcseul—voir article MCP. - Séparer les secrets : pas de mot de passe Basic dans le ticket—fichiers comme dans l’article jeton.
- Hygiène NO_PROXY :
127.0.0.1,localhost,*.localet RFC1918 utilisés par MCP. - Alignement VPN : portable en full tunnel ? Corriger d’abord le routage mini via l’article split/full.
- Fumée launchctl :
launchctl kickstartpuis comparer les lignes JSONL sortantes au premier plan SSH. - Soak : 500 appels modèle séquentiels à 3 workers parallèles.
- Rollback : révisions plist en Git ;
bootoutet retour arrière en 2 minutes.
sudo -E en prod LaunchAgent—surface d’attaque plus large, héritage peu fiable vers les enfants MCP.
Tableau de scénarios d’egress (avant de tourner les timeouts, identifiez votre ligne)
| Scénario | Signal observable | Levier OpenClaw |
|---|---|---|
| Proxy central UE, mini aux États-Unis | RTT > 220 ms vs direct | Augmenter timeouts HTTP client ; baisser le parallélisme en vol |
| Inspection SSL type Zscaler | TLS alert unknown CA | Installer la racine d’entreprise dans le trousseau système et rafraîchir le cache de confiance |
| Split tunnel sans sous-réseau mini | DNS OK, SYN incomplet | Corriger la table de routage du client VPN ; miroiter la policy portable |
| Rotation d’auth proxy toutes les 12 h | pics 407 aux changements d’équipe | Jetons à courte durée ou helper d’identifiants managé |
Pièges : NO_PROXY casse le MCP stdio alors que le modèle semble « OK »
Les serveurs MCP stdio écoutent sur des ports élevés 127.0.0.1. NO_PROXY vide peut pousser le loopback vers le proxy d’entreprise : le modèle répond, les outils fichiers expirent. NO_PROXY=* contourne entièrement le proxy (risque conformité). Listes explicites séparées par des virgules et contraste avec curl --noproxy '*' http://127.0.0.1:8765/health. Documentez la chaîne finale avec la plist dans le même dépôt que les sorties de la checklist headless.
export HTTP_PROXY=http://proxy.corp.local:8080 HTTPS_PROXY=http://proxy.corp.local:8080 NO_PROXY=127.0.0.1,localhost,169.254.169.254
FAQ
OpenClaw préfère-t-il minuscules ou majuscules ? Beaucoup de stacks acceptent les deux—une convention par flotte.
SOCKS et ALL_PROXY ? Souvent oui pour les outils non sensibles HTTP ; validez avec la même matrice curl.
Interdiction de stocker le mot de passe proxy sur disque ? PAC éphémère ou injection d’en-têtes via sidecar ; éviter les invites interactives en headless—dialogues de confiance ponctuels via VNC.
Pourquoi le Mac mini ProxyMac pour durcir l’egress OpenClaw
Les Mac mini M4 loués offrent macOS natif, CPU mono-locataire prévisible pour les sauts TLS/proxy, et le choix de région HK / JP / KR / SG / US pour rapprocher le plan de contrôle des régions API plutôt qu’un bastion européen unique. SSH pour les preuves, aide pour les playbooks multi-régions, tarifs pour ajouter une seconde mini qui isole prod et staging egress—sans acheter cinq baies.
Stabiliser OpenClaw derrière l’egress d’entreprise
launchd · HTTP_PROXY · HK / JP / KR / SG / US