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

Mac环境下Axios请求持续出现socket hang up ECONNRESET错误求助

解决Axios在Mac上出现socket hang up ECONNRESET的方案

以下是针对你遇到问题的排查和解决步骤:

1. 检查系统代理与VPN

  • 关闭系统代理:打开「系统设置」→「网络」→ 选中当前网络点击「高级」→「代理」,取消所有勾选的代理选项,重启终端或Node服务后重试。
  • 断开VPN测试:部分VPN的路由规则会干扰正常网络连接,先切换到本地网络发起请求。

2. 调整Axios请求配置

  • 显式设置超时时间,避免因默认超时过短触发连接重置:
    let config = {
      method: "get",
      url: "https://google.com",
      timeout: 10000 // 设置10秒超时
    };
    
  • 强制使用HTTP/1.1(部分服务器对HTTP/2兼容性不佳),需先引入https模块:
    const https = require('https');
    
    let config = {
      method: "get",
      url: "https://google.com",
      httpsAgent: new https.Agent({
        keepAlive: true,
        maxVersion: 'TLSv1.2' // 也可指定TLS版本,避免兼容性问题
      })
    };
    

3. 验证系统网络连通性

  • 用curl命令测试目标URL,判断是系统网络问题还是Axios配置问题:
    curl -v https://google.com
    
    • 如果curl也报错:检查DNS设置(可切换至8.8.8.8或1.1.1.1),或联系网络管理员排查网络限制。
    • 如果curl成功:问题集中在Node.js/Axios层面,继续下一步。

4. 升级Node.js版本

旧版本Node.js的HTTP模块存在连接池或TLS协议的Bug,建议升级至LTS版本(如v18或v20),重新测试请求。

5. 检查防火墙与安全软件

  • 确认Mac自带防火墙未拦截Node.js:打开「系统设置」→「隐私与安全性」→「防火墙」,确保Node.js被允许联网。
  • 暂时关闭第三方安全软件(杀毒、防火墙工具),排除拦截可能性。

6. 修正代码逻辑问题

你的代码中存在未处理的异常分支风险,调整后确保错误场景下的正确响应:

let config = {
  method: "get",
  url: "https://google.com",
  timeout: 10000
};

try {
  const response = await axios(config);
  console.log(JSON.stringify(response.data));
  res.send(response.data); // 正确返回响应数据
} catch(err){
  console.log(err.message, err.code);
  res.status(500).send({ error: err.message, code: err.code }); // 错误时返回500状态码及信息
}

内容的提问来源于stack exchange,提问作者Nick Ghuman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:55:18