为 npm、yarn 和 pnpm 配置代理
简介
Node.js 包管理器(npm、yarn、pnpm)从 npm registry 下载软件包。在企业网络中,或出于匿名目的使用代理时,必须为这些包管理器配置代理才能使其正常工作。
基本配置
npm
npm config set proxy http://proxy_ip:port
npm config set https-proxy http://proxy_ip:port
带认证:
npm config set proxy http://user:pass@proxy_ip:port
检查:
npm config get proxy
删除:
npm config delete proxy
npm config delete https-proxy
yarn
yarn config set proxy http://proxy_ip:port
yarn config set https-proxy http://proxy_ip:port
pnpm
pnpm config set proxy http://proxy_ip:port
pnpm config set https-proxy http://proxy_ip:port
也可以通过环境变量设置:HTTP_PROXY、HTTPS_PROXY —— 这对三个包管理器都有效。
高级配置
环境变量
大多数工具都支持标准的代理环境变量:
- HTTP_PROXY / http_proxy —— 用于 HTTP 请求的代理
- HTTPS_PROXY / https_proxy —— 用于 HTTPS 请求的代理
- NO_PROXY / no_proxy —— 排除列表(绕过代理的地址)
- ALL_PROXY / all_proxy —— 用于所有协议的代理
SSL 与自签名证书
企业代理常常使用自己的 SSL 证书。要通过它们正常工作,您需要:
1. 向管理员索取代理的 CA 证书
2. 将其添加到系统的证书存储中
3. 或者关闭 SSL 校验(仅限测试)
认证
支持两种主要的认证方式:
用户名和密码 —— 标准的 HTTP Basic 认证。每次请求都会发送凭据。URL 格式:http://user:pass@proxy_ip:port
按 IP 地址(白名单) —— 将您的 IP 加入白名单,无需发送凭据。
验证配置
配置完成后,请验证:
1. 通过代理发起一次测试请求
2. 确认您的 IP 地址已改变
3. 检查连接速度
4. 确认没有 DNS 泄漏
故障排查
代理无法连接
- 检查地址和端口是否正确
- 确认防火墙没有拦截连接
- 验证代理在您的网络中是否可达
SSL 错误
- 企业代理请添加 CA 证书
- 测试时可临时关闭 SSL 校验
- 将 SSL 库更新到最新版本
认证错误
- 检查用户名和密码
- 确认凭据格式正确
- 尝试对密码中的特殊字符进行 URL 编码
最佳实践
- 使用环境变量 —— 兼顾灵活性与安全性
- 不要把凭据硬编码 —— 使用环境变量或配置文件
- 配置排除项 —— 不要让 localhost 和内网地址走代理
- 记录配置 —— 写在项目 README 或团队 wiki 中
- 改动后测试 —— 任何配置变更都需要验证
结论
正确的代理配置可保证工具稳定运行和连接安全。请遵循本指南的建议,并在配置后始终验证其可用性。
