上游代理:克劳德代码如何拦截子进程的 HTTP 流量

发布日期:2026-04-09 10:06:09   浏览量 :4
发布日期:2026-04-09 10:06:09  
4

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

请将以下 HTML 内容翻译成简体中文。要求: 1. 保留所有 HTML 标签不变(如

,

, ,
    ,
  • 等) 2. 保留所有图片的 src 和 alt 属性 3. 只翻译标签之间的文本内容 4. 所有英文必须翻译成中文,不保留英文原文 5. 输出完整的 HTML 代码 HTML 内容:

    当克劳德代码在云容器中运行时,它所启动的每个子进程——curlghpythonkubectl——都需要访问外部服务。但该容器位于组织的安全边界之后。组织需要在出站 HTTPS 请求中注入凭证(API 密钥、认证头),为合规性记录流量,并阻止未授权的端点。子进程对此一无所知,它只想执行 curl https://api.datadog.com

    一种天真的解决方案是:配置一个企业代理,并假设所有工具都会遵守 HTTPS_PROXY 环境变量。但这仅在工具信任代理的 TLS 证书时才有效。用于检查 HTTPS 流量的企业代理会出示自己的证书——这是一种中间人证书,除非 curlpython 信任签发该证书的证书颁发机构(CA),否则它们会拒绝该证书。每种运行时环境都有自己的 CA 信任存储:Node 使用 NODE_EXTRA_CA_CERTS,Python 使用 REQUESTS_CA_BUNDLESSL_CERT_FILE,curl 使用 CURL_CA_BUNDLE,Go 则使用系统信任存储。漏掉任何一个,子进程就会因 CERTIFICATE_VERIFY_FAILED 而失败。

    还有一个更深层次的问题。该容器的入口是一个带有路径前缀路由的 GKE 第七层负载均衡器。它不支持原始的 HTTP CONNECT 隧道——这是代理处理 HTTPS 的标准方式。你不能简单地将 HTTPS_PROXY 指向该入口并期望 CONNECT 能正常工作。基础设施需要一种不同的传输机制。

    克劳德代码通过一个上游代理中继来解决这个问题:这是一个本地 TCP 服务器,接收来自子进程的标准 HTTP CONNECT 请求,通过 WebSocket 将字节流隧道传输到云端网关,并由网关负责 TLS 拦截和凭证注入。该中继运行在容器内部,绑定到本地回环地址(localhost),对智能体不可见。子进程看到的是位于 127.0.0.1:<端口> 的标准 HTTPS 代理,以及一个同时信任系统 CA 和网关中间人证书的 CA 证书包。

    本文将逐层剖析整个机制:初始化序列、令牌生命周期、反 ptrace 防御、CA 证书链、基于 WebSocket 的 CONNECT 协议、protobuf 有线格式、NO_PROXY 绕过列表,以及将这一切串联起来的子进程环境注入机制。

    何时会激活此功能?

    上游代理是 CCR(云代码运行时)的一项功能。只有在满足以下三个条件时才会激活:

    function initUpstreamProxy():
        # 关卡 1 我们是否处于云容器中
        if not env.CLAUDE_CODE_REMOTE:
            return 已禁用
    
        # 关卡 2 服务器是否为此会话启用了代理
        if not env.CCR_UPSTREAM_PROXY_ENABLED

    免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部