错误信息
Mac 上出现“npm error code ECONNRESET”
ECONNRESET 表示对方强行关闭了连接。Node.js 文档称之为“Connection reset by peer”(连接被对方重置)。
症状
npm install中止并显示npm error code ECONNRESET。- npm 还会提示这是与网络连接有关的问题。
- 在公司网络、VPN 下或装有安全软件时出现。
可能的原因
- 代理或过滤器重置了连接。公司代理或安全软件可能会关闭它不允许的连接。
- TLS 检查。检查加密流量的代理可能会破坏连接。参阅公司代理证书导致 Mac 上的终端工具出错。
- VPN 重新连接。VPN 重新连接时,经由它的连接会关闭。
- 连接不稳定。Node.js 文档指出,远端超时或重启都可能导致此错误。
如何检查
显示 npm 的 registry 和代理设置。
npm config get registry npm config get proxy npm config get https-proxy测试 registry 是否响应。
npm ping用 curl 测试 registry,查看证书颁发者。
curl -v -o /dev/null https://registry.npmjs.org/ 2>&1 | grep -i issuer在其他网络(例如手机热点)上尝试安装。
如何修复
如果网络需要代理,为 npm 设置代理。
npm config set https-proxy http://proxy.example.com:8080如果公司代理会检查 TLS,为 Node.js 添加其根证书。参阅公司代理证书导致 Mac 上的终端工具出错。
增加 npm 的重试次数。
npm config set fetch-retries 5如果打开了 VPN、代理或安全 App,请暂时关闭它进行测试,测试后再重新打开。
使用 Kilobat
Kilobat 的连接诊断会逐层测试 registry:网络、代理、DNS、规则、IPv4、IPv6、TLS 和服务器,并指出失败的是哪一层。
kilobat why https://registry.npmjs.org/Kilobat 的这些检查都是免费的。AI 智能体可以通过 MCP 用
diagnose_connection和diagnose_network运行它们。请参阅找出某个网站或 API 连不上的原因。
常见问题
ECONNRESET 是我项目里的 bug 吗?
通常不是。是与 registry 的连接被关闭了。在另一个网络上运行同样的安装进行对比。
参考资料
- Node.js 文档:Common system errors
- intro(2),ECONNRESET,macOS 27.2 自带的手册页
- npm 文档:config
- curl(1),macOS 27.2 自带的 man 手册页
参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。