Configuratie
proxy.proxyUrl heeft voorrang op OPENCLAW_PROXY_URL. Een geconfigureerde URL activeert beheerde proxyrouting; door beide URL’s te verwijderen, schakel je deze uit.
Sla voor beheerde Gateway-services de URL op in de configuratie, zodat deze een herinstallatie overleeft, in plaats van afhankelijk te zijn van een omgevingsvariabele voor een voorgrondproces:
OPENCLAW_PROXY_URL is het meest geschikt voor voorgronduitvoeringen. Om deze met een geïnstalleerde service te gebruiken, plaats je deze in de permanente omgeving van de service ($OPENCLAW_STATE_DIR/.env, standaard ~/.openclaw/.env) en installeer je de service vervolgens opnieuw, zodat launchd/systemd/Scheduled Tasks deze overneemt.
HTTPS-proxyeindpunt met een privé-CA
proxy.tls.caFile verifieert het eigen TLS-certificaat van het proxyeindpunt. Het is geen vertrouwensinstelling voor MITM-verkeer naar bestemmingen, geen clientcertificaat en geen vervanging voor het bestemmingsbeleid van de proxy. Gebruik NODE_EXTRA_CA_CERTS alleen wanneer het volledige Node-proces vanaf het opstarten een aanvullende CA moet vertrouwen (bijvoorbeeld een TLS-inspectiesysteem van een organisatie dat elk HTTPS-bestemmingscertificaat opnieuw ondertekent) — die variabele geldt voor het hele proces en moet worden ingesteld voordat Node start. OpenClaw kan deze daarom niet tijdens de uitvoering toepassen zoals bij proxy.tls.caFile. Geef voor het vertrouwen van HTTPS-proxyeindpunten de voorkeur aan proxy.tls.caFile: dit is beperkt tot beheerde proxyrouting in plaats van het hele proces.
Hoe routering werkt
Met een geldige proxy-URL routeren beschermde runtimeprocessen (openclaw gateway run, openclaw node run, openclaw agent --local) normaal uitgaand HTTP- en WebSocket-verkeer via de proxy:
fetch, clients op basis van undici, node:http/node:https, veelgebruikte WebSocket-clients en door helpers gemaakte CONNECT-tunnels. Ook vervangt deze door aanroepers geleverde Node-HTTP-agents, zodat expliciete agents (waaronder axios, got, node-fetch en vergelijkbare clients op basis van Node-agents) de proxy niet ongemerkt kunnen omzeilen.
Het schema van de proxy-URL beschrijft de verbinding van OpenClaw naar de proxy, niet naar de eindbestemming:
http://proxy.example:3128— onbeveiligd TCP naar de proxy; OpenClaw verzendt HTTP-proxyverzoeken, waaronderCONNECTvoor HTTPS-bestemmingen.https://proxy.example:8443— OpenClaw opent TLS naar de proxy zelf (waarbij het certificaat van de proxy wordt geverifieerd) en verzendt vervolgens HTTP-proxyverzoeken binnen die sessie.
CONNECT-tunnel en start het TLS naar de bestemming via die tunnel.
Terwijl de proxy actief is, wist OpenClaw no_proxy/NO_PROXY. Deze omzeilingslijsten zijn gebaseerd op bestemmingen; als localhost of 127.0.0.1 daarin blijven staan, kunnen SSRF-doelen de proxy volledig omzeilen. Bij het afsluiten herstelt OpenClaw de eerdere proxyomgeving en stelt het de gecachte routeringsstatus opnieuw in.
Sommige plugins beheren een aangepast transport waarvoor eigen proxyconfiguratie nodig is, zelfs wanneer routering op procesniveau actief is. De Bot API-client van Telegram gebruikt een eigen HTTP/1-dispatcher van undici en respecteert afzonderlijk de proxyomgeving van het proces plus de terugvaloptie OPENCLAW_PROXY_URL.
Loopbackmodus van de Gateway
Lokale clients van het besturingsvlak van de Gateway maken normaal verbinding met een loopback-WebSocket, zoalsws://127.0.0.1:18789. proxy.loopbackMode bepaalt of dat verkeer de beheerde proxy omzeilt:
proxyUrl of OPENCLAW_PROXY_URL schakelt beheerde routering in. Stel
proxy.enabled: false alleen in als geavanceerde afmeldoptie waarmee de URL opgeslagen blijft
zonder deze te activeren.
Omzeiling voor het besturingsvlak van de Gateway is beperkt tot
localhost en letterlijke loopback-IP-URL’s — gebruik ws://127.0.0.1:18789, ws://[::1]:18789 of ws://localhost:18789. Andere hostnamen worden als normaal verkeer gerouteerd.
Containers
Vooropenclaw --container ...-opdrachten geeft OpenClaw OPENCLAW_PROXY_URL door aan de op de container gerichte onderliggende CLI wanneer deze is ingesteld. De URL moet vanuit de container bereikbaar zijn — 127.0.0.1 verwijst daar naar de container zelf, niet naar de host. OpenClaw weigert loopback-proxy-URL’s voor op containers gerichte opdrachten, tenzij je OPENCLAW_CONTAINER_ALLOW_LOOPBACK_PROXY_URL=1 instelt om die controle expliciet te negeren.
Verwante proxytermen
proxy.enabled/proxy.proxyUrl— uitgaande routering via een forward proxy voor runtimeverkeer. Deze pagina.gateway.auth.mode: "trusted-proxy"— binnenkomende identiteitsbewuste authenticatie via een reverse proxy voor toegang tot de Gateway. Zie Authenticatie via vertrouwde proxy.openclaw proxy— lokale debugproxy en inspectietool voor vastleggingen voor ontwikkeling en ondersteuning. Zie openclaw proxy.tools.web.fetch.useTrustedEnvProxy— opt-in voorweb_fetchom een door de beheerder gecontroleerde HTTP(S)-omgevingsproxy DNS te laten herleiden, terwijl standaard strikte DNS-pinning en hostnaambeleid behouden blijven. Zie Web ophalen.- Kanaal- of providerspecifieke proxy-instellingen — eigenaarspecifieke overschrijvingen voor één transport. Geef voor centrale controle over uitgaand verkeer in de hele runtime de voorkeur aan de beheerde netwerkproxy.
De proxy valideren
Het bestemmingsbeleid van de proxy vormt de daadwerkelijke beveiligingsgrens; OpenClaw kan niet controleren of jouw proxy de juiste doelen blokkeert. Configureer deze om:- Alleen te binden aan loopback of een vertrouwde privé-interface die uitsluitend bereikbaar is voor het OpenClaw-proces/de host/de container/het serviceaccount.
- Bestemmingen zelf te herleiden en deze na DNS-resolutie op IP-adres te blokkeren wanneer de verbinding tot stand wordt gebracht, zowel voor onbeveiligd HTTP als voor HTTPS-
CONNECT-tunnels. - Omzeilingen op basis van bestemmingen te weigeren voor loopback-, privé-, link-local-, metadata-, multicast-, gereserveerde en documentatiebereiken.
- Toelatingslijsten voor hostnamen te vermijden, tenzij je het DNS-resolutiepad volledig vertrouwt.
- Bestemming, beslissing, status en reden te loggen — nooit aanvraaginhoud, autorisatieheaders, cookies of andere geheimen.
- Het beleid onder versiebeheer te houden en wijzigingen als beveiligingsgevoelig te beoordelen.
Als er geen waarde voor config, omgeving of
--proxy-url beschikbaar is, meldt de opdracht een configuratieprobleem; geef --proxy-url door voor een eenmalige preflight voordat je de configuratie wijzigt.
Zonder --allowed-url/--denied-url zijn de standaardcontroles: https://example.com/ moet slagen en een tijdelijke loopback-canaryserver die de proxy niet mag bereiken, moet worden geblokkeerd. De loopbackcontrole slaagt bij een transportfout, of bij een niet-2xx-antwoord zonder het token per uitvoering van de canary; de controle mislukt bij een 2xx-antwoord zonder het token (een onverwacht succes van iets anders dan de canary) en vooral bij elk antwoord met het overeenkomende token, omdat dit bewijst dat de proxy daadwerkelijk een loopbackbestemming heeft doorgestuurd die had moeten worden geweigerd. Aangepaste --denied-url-doelen hebben geen dergelijk canarytoken en werken daarom fail-closed: elk HTTP-antwoord geldt als bereikbaar (mislukt) en een transportfout wordt gemeld als onbeslist in plaats van bewezen geblokkeerd, omdat OpenClaw niet kan bevestigen of je proxy een bereikbare origin heeft geweigerd of dat er iets anders is misgegaan. --apns-reachable verzendt opzettelijk een ongeldig providertoken, zodat een 403 InvalidProviderToken-antwoord geldt als bewijs dat de tunnel Apple heeft bereikt. De opdracht sluit af met 1 bij elke validatiefout; inloggegevens in de proxy-URL worden zowel in tekst- als JSON-uitvoer geredigeerd.
curl-controle (het openbare verzoek moet slagen; de loopback- en metadataverzoeken moeten door de proxy zelf worden geblokkeerd — alleen curl kan een weigering door de proxy niet onderscheiden van een onbereikbare origin zoals de ingebouwde canary van openclaw proxy validate dat kan):
Aanbevolen te blokkeren bestemmingen
Beginlijst met te weigeren bestemmingen voor elke forward proxy, firewall of egressbeleid. De eigen SSRF-classificator van OpenClaw bevindt zich insrc/infra/net/ssrf.ts en packages/net-policy/src/ip.ts (BLOCKED_HOSTNAMES, BLOCKED_IPV4_SPECIAL_USE_RANGES, BLOCKED_IPV6_SPECIAL_USE_RANGES, het benchmarkprefix uit RFC 2544 en de verwerking van ingebedde IPv4 voor NAT64/6to4/Teredo/ISATAP/IPv4-mapped-vormen) — nuttige referenties, maar OpenClaw exporteert of handhaaft deze regels niet in je externe proxy.
Voeg eventuele aanvullende metadatahosts of gereserveerde bereiken toe die door je cloudprovider of netwerkplatform worden gedocumenteerd.
Beperkingen
- Dit biedt dekking op procesniveau voor JavaScript HTTP/WebSocket-clients, geen netwerksandbox op besturingssysteemniveau.
- Onbewerkte
net-,tls- enhttp2-sockets, native add-ons en niet-OpenClaw-subprocessen kunnen routering op Node-niveau omzeilen, tenzij ze proxyomgevingsvariabelen overnemen en respecteren. Afgesplitste OpenClaw-subprocess-CLI’s nemen de beheerde proxy-URL en deproxy.loopbackMode-status over. - Lokale WebUI’s van gebruikers en lokale modelservers vallen niet onder een algemene omzeiling voor het lokale netwerk — voeg ze indien nodig toe aan de allowlist van het proxybeleid van de beheerder. De uitzondering is het bewaakte directe pad van de gebundelde Ollama-provider voor geheugenembeddings, beperkt tot de exacte host-lokale loopback-origin uit de geconfigureerde
baseUrl; Ollama-hosts op het LAN, tailnet, privénetwerk en openbare netwerk gebruiken nog steeds de beheerde proxy. - De directe upstreamforwarding van de lokale debugproxy (voor proxyverzoeken en
CONNECT-tunnels) is standaard uitgeschakeld terwijl de beheerde proxymodus actief is; schakel deze alleen in voor goedgekeurde lokale diagnostiek. - OpenClaw inspecteert, test of certificeert je proxybeleid niet. Behandel wijzigingen in het proxybeleid als beveiligingsgevoelige operationele wijzigingen.