You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Faraday配置代理触发ConnectionFailed: end of file reached报错

问题根源

报错Faraday::ConnectionFailed: end of file reached是默认net_http适配器的HTTPS代理TLS配置逻辑缺陷导致:
你使用的VGS代理为HTTPS协议(监听8443端口),net_http适配器默认仅会将你配置的CA证书用于和目标业务站点的TLS连接校验,不会将该CA证书用于和代理服务本身的TLS握手校验。由于VGS沙箱环境代理使用自有CA签发的证书,和代理握手时证书校验不通过,连接被直接重置触发EOF错误。
而Curl::Easy底层依赖libcurl,会自动将配置的CA证书同时应用于代理连接和目标站点连接的TLS校验,因此相同参数下可以正常请求。

修复方法

二选一即可:

  • 方法1:保留net_http适配器,补全代理TLS校验配置
    修改Faraday初始化的ssl配置段,显式指定代理连接使用的CA证书路径:
    options = {
      headers: { 'Content-Type' => 'application/json' },
      ssl: { 
        ca_file: ssl_cert_path,
        # 新增以下配置,为代理连接指定CA证书
        proxy_ca_file: ssl_cert_path,
        verify: true
      },
      proxy: VGS.proxy_uri,
    }
    
  • 方法2:更换底层为libcurl的Faraday适配器,和Curl行为保持一致
    先在Gemfile中添加对应适配器依赖:
    # 二选一即可
    gem 'faraday-patron'
    # gem 'faraday-typhoeus'
    
    安装依赖后将Faraday默认适配器替换为对应值即可,无需额外调整代理SSL配置:
    Faraday.default_adapter = :patron
    # 若使用typhoeus则配置为 :typhoeus
    
验证

修改完成后重新执行rake vgs:faraday任务,即可正常提交数据并拿到响应,不会再触发EOF报错。

内容的提问来源于stack exchange,提问作者Ziyan Junaideen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 06:24:16