Réseau & automatisation 14 mai 2026

2026-05-14 OpenClaw : proxy HTTP/HTTPS sortant sur Mac mini ProxyMac loué — pourquoi les export SSH trompent et comment launchd doit hériter

Équipe technique ProxyMac 14 mai 2026 ~17 min de lecture

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.com sans --proxy renvoie 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 CONNECT concurrents à 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.

Trio ticket : (1) ligne HTTP ou auth proxy du curl verbeux, (2) 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

  1. Inventaire : HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, NO_PROXY, clés spécifiques fournisseur.
  2. Preuve curl : sur la mini, curl -v --proxy http://proxy:8080 https://api.anthropic.com et archiver le verbose.
  3. Plist : refléter le jeu gagnant dans EnvironmentVariables ; ne pas compter sur ~/.zshrc seul—voir article MCP.
  4. Séparer les secrets : pas de mot de passe Basic dans le ticket—fichiers comme dans l’article jeton.
  5. Hygiène NO_PROXY : 127.0.0.1,localhost,*.local et RFC1918 utilisés par MCP.
  6. Alignement VPN : portable en full tunnel ? Corriger d’abord le routage mini via l’article split/full.
  7. Fumée launchctl : launchctl kickstart puis comparer les lignes JSONL sortantes au premier plan SSH.
  8. Soak : 500 appels modèle séquentiels à 3 workers parallèles.
  9. Rollback : révisions plist en Git ; bootout et retour arrière en 2 minutes.
Ne pas s’appuyer durablement sur 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