---
title: "Mac 上的 npm error code ECONNRESET：连接为何被重置 · Kilobat 指南"
url: "https://kilobat.app/zh-hans/guides/npm-econnreset.html"
description: "在 Mac 上运行 npm install 时出现 npm error code ECONNRESET 并中止。找出重置连接的代理、VPN、过滤器或网络，然后解决问题。"
---

错误信息

# Mac 上出现“npm error code ECONNRESET”

ECONNRESET 表示对方强行关闭了连接。Node.js 文档称之为“Connection reset by peer”（连接被对方重置）。

适用于：npm 10 及更高版本输出“npm error”，更早的版本输出“npm ERR!”。适用于所有当前 macOS 版本。 · 核查日期：2026年10月29日

## 症状

- `npm install` 中止并显示 `npm error code ECONNRESET`。
- npm 还会提示这是与网络连接有关的问题。
- 在公司网络、VPN 下或装有安全软件时出现。

## 可能的原因

- **代理或过滤器重置了连接。**公司代理或安全软件可能会关闭它不允许的连接。
- **TLS 检查。**检查加密流量的代理可能会破坏连接。参阅[公司代理证书导致 Mac 上的终端工具出错](https://kilobat.app/zh-hans/guides/corporate-proxy-certificates.html)。
- **VPN 重新连接。**VPN 重新连接时，经由它的连接会关闭。
- **连接不稳定。**Node.js 文档指出，远端超时或重启都可能导致此错误。

## 如何检查

1. 显示 npm 的 registry 和代理设置。

   ```
   npm config get registry
   npm config get proxy
   npm config get https-proxy
   ```
2. 测试 registry 是否响应。

   ```
   npm ping
   ```
3. 用 curl 测试 registry，查看证书颁发者。

   ```
   curl -v -o /dev/null https://registry.npmjs.org/ 2>&1 | grep -i issuer
   ```
4. 在其他网络（例如手机热点）上尝试安装。

## 如何修复

1. 如果网络需要代理，为 npm 设置代理。

   ```
   npm config set https-proxy http://proxy.example.com:8080
   ```
2. 如果公司代理会检查 TLS，为 Node.js 添加其根证书。参阅[公司代理证书导致 Mac 上的终端工具出错](https://kilobat.app/zh-hans/guides/corporate-proxy-certificates.html)。
3. 增加 npm 的重试次数。

   ```
   npm config set fetch-retries 5
   ```
4. 如果打开了 VPN、代理或安全 App，请暂时关闭它进行测试，测试后再重新打开。

## 使用 Kilobat

1. Kilobat 的连接诊断会逐层测试 registry：网络、代理、DNS、规则、IPv4、IPv6、TLS 和服务器，并指出失败的是哪一层。

   ```
   kilobat why https://registry.npmjs.org/
   ```
2. Kilobat 的这些检查都是免费的。AI 智能体可以通过 MCP 用 `diagnose_connection` 和 `diagnose_network` 运行它们。请参阅[找出某个网站或 API 连不上的原因](https://kilobat.app/zh-hans/guides/recipes/why-cant-it-connect.html)。

## 常见问题

**ECONNRESET 是我项目里的 bug 吗？**

通常不是。是与 registry 的连接被关闭了。在另一个网络上运行同样的安装进行对比。

## 参考资料

- [Node.js 文档：Common system errors](https://nodejs.org/api/errors.html#common-system-errors)
- intro(2)，ECONNRESET，macOS 27.2 自带的手册页
- [npm 文档：config](https://docs.npmjs.com/cli/v11/using-npm/config)
- curl(1)，macOS 27.2 自带的 man 手册页

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本；在“终端”中用 `man <name>` 打开。

## 相关指南

- [Mac 上出现“npm error code ETIMEDOUT”](https://kilobat.app/zh-hans/guides/npm-etimedout.html): ETIMEDOUT 表示对方没有及时应答。
- [Mac 上 Homebrew 或 npm 下载失败](https://kilobat.app/zh-hans/guides/homebrew-npm-download-fails.html): Homebrew 通过 curl 和 Git 下载。
- [Mac 上公司代理证书导致“终端”工具出错](https://kilobat.app/zh-hans/guides/corporate-proxy-certificates.html): 一些公司网络会检查 HTTPS 流量。
- [Mac 上代理设置导致 App 无法连接](https://kilobat.app/zh-hans/guides/proxy-settings-breaking-apps.html): 代理设置会让流量经由另一台服务器转发。
