跳到正文

npm 怎么设置代理:npm config、.npmrc、pnpm 和 Yarn

让 npm 通过代理安装包:三个设置项、写在哪里、账号和密码、pnpm 和 Yarn、怎么关掉,以及怎么确认它真的在用。

代理改变什么,不改变什么

代理只改变你的电脑到包仓库之间的网络路径,不改变 npm 从哪个仓库下载:那是单独的 registry 设置,所以代理和镜像源是两回事,谁也代替不了谁。本文讲 npm,并简要说明 pnpm 和 Yarn。如果要在 Node.js 程序的代码里使用代理,请看 Node.js 那篇指南。

npm 里要用到的三个设置

npm 配置页列出三个键。proxy 是出站 http 请求用的代理(类型为 null、false 或一个 URL,默认 null)。https-proxy 是出站 https 请求用的代理(一个 URL,默认 null);registry 地址 https://registry.npmjs.org 是 https 地址,所以通常真正起作用的是这个键。noproxy 放的是不走代理的域名后缀,默认值取自环境变量 NO_PROXY。该页还说明,npm 底层使用的库会遵循 HTTP_PROXY、HTTPS_PROXY 及其小写形式的环境变量。

командой npm config 设置代理

npm config set 默认把键写进你的用户配置文件,加 --location 可以改写到别处。npm config get 会把值打印出来,方便确认写进去了什么;npm config delete 会把键从所有配置文件里删掉。把两个键设成同一个 HTTP 地址即可,值是 URL,账号和密码写在主机前面。

命令设置代理:示例

npm config set proxy http://USERNAME:PASSWORD@HOST:PORT
npm config set https-proxy http://USERNAME:PASSWORD@HOST:PORT
npm config get https-proxy

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

账号和密码

如果账号或密码里有 @、:、/、% 这类字符,要写成百分号编码:@ 写成 %40,: 写成 %3A,/ 写成 %2F,% 写成 %25。pnpm 文档对带账号密码的代理地址提出的正是这个要求,并说明账号与密码之间的冒号不用编码。npm 的文档没有说明这条规则,所以设置完后请用 npm ping 检查(见下面的验证)。直接从「我的资产」复制比手打更稳妥。要注意配置文件是明文的:能读到 ~/.npmrc 的人就能看到密码。

.npmrc 文件,以及哪个优先

同样的设置也可以直接写进 .npmrc 文件。npmrc 文档列出四个:项目根目录里的项目级文件(只对该项目有效)、用户级文件 ~/.npmrc、全局文件 $PREFIX/etc/npmrc,以及 npm 自带、不能修改的内置文件。它们按优先级依次解析,文档给的例子是:用户级文件里的设置会覆盖全局文件里的同名设置。该页还说明,全局模式下不会读取项目级文件。文件里的值可以写 ${NAME},npm 会换成同名的环境变量,这样密码就不必写进文件。

项目里的 .npmrc:示例

# .npmrc in the project folder
proxy=http://USERNAME:PASSWORD@HOST:PORT
https-proxy=http://USERNAME:PASSWORD@HOST:PORT
noproxy=localhost,127.0.0.1

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

用环境变量

npm 配置页点名了 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY(及其小写形式),说明底层的库会遵循它们;pnpm 文档也说它会退回去读这些变量。它们很适合只管当前这个终端窗口:不写入磁盘,关掉窗口设置就没了。Windows PowerShell 里不用 export,写成 $env:NAME = "value"。

只对当前窗口的环境变量:示例

export HTTPS_PROXY=http://USERNAME:PASSWORD@HOST:PORT
export HTTP_PROXY=http://USERNAME:PASSWORD@HOST:PORT
export NO_PROXY=localhost,127.0.0.1
npm ping

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

哪些地址不走代理

把内网或本机的地址放进 noproxy(npm 里写的是域名后缀,也接受逗号分隔的字符串)或 NO_PROXY,npm 就会直接连它们。pnpm 里同一个设置叫 noProxy:一串逗号分隔、代理不应用于的域名后缀。npm 文档没有说明主机名怎样与条目匹配,所以请写下你需要的完整域名并测试。

SOCKS5

npm 配置页完全没有提到 SOCKS,我们读过的 pnpm 和 Yarn 页面也没有,所以本文只给 HTTP 代理地址。这些工具请使用 HTTP 代理:在 Proxy302 生成代理时协议选 HTTP 即可。

pnpm 和 Yarn

pnpm:它的设置是 httpsProxy、httpProxy(类型 url,默认 null)和 noProxy(逗号分隔的字符串)。pnpm 文档说,没有设 httpsProxy 时会去查环境变量 HTTPS_PROXY 或 https_proxy,所以上面的环境变量对 pnpm 同样有效;其设置页还说明代理设置可以从 .npmrc 读取。Yarn(新版 Berry):.yarnrc.yml 页面列出 httpProxy(「发出 HTTP 请求时使用的代理」)和 httpsProxy(「发出 HTTPS 请求时使用的代理」),示例都是 http:// 地址。该页上我们没有找到 noProxy 设置。

Yarn Berry:.yarnrc.yml:示例

httpProxy: "http://USERNAME:PASSWORD@HOST:PORT"
httpsProxy: "http://USERNAME:PASSWORD@HOST:PORT"

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

怎么关掉代理

npm config delete 会把这些键从所有配置文件里删掉。然后运行 npm config list:它会列出所有设置,加 -l 还会显示默认值。如果代理还在,就检查环境变量,在这个终端里取消 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY,再看一下项目里的 .npmrc。

关掉代理:示例

npm config delete proxy https-proxy noproxy
npm config list

这里没有要替换的内容,原样运行这两条命令:第一条删掉三项设置,第二条列出剩下的设置。

怎么确认 npm 在用代理

  1. 看看现在设了什么

    运行 npm config get proxy 和 npm config get https-proxy,它们会把存着的值打印出来。

  2. ping 一下仓库

    npm ping 会访问当前配置的 registry 并验证认证。能通时会打印一行 PING 和一行带毫秒数的 PONG,不通则打印错误。

  3. 用 curl 看出口地址

    下面的第二条命令会显示网站通过同一个代理看到的 IP、国家和网络。

  4. 最后装个小包试试

    在一个空文件夹里运行 npm init -y,再运行 npm install is-odd。能装上就说明成了。

确认 npm 在用代理:示例

npm ping
curl -x http://USERNAME:PASSWORD@HOST:PORT https://ipinfo.io/json

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

常见错误

• 407 Proxy Authentication Required:代理拒绝了账号或密码。请重新复制,并检查百分号编码。

• npm ping 失败或超时:HOST 或 PORT 不对,或者租期已结束。用上面的 curl 命令测同一个地址。

• 包还是直连下载:运行 npm config list,看有没有项目里的 .npmrc 或环境变量覆盖了设置。

• 公司自己的仓库里的包装不上:把它的域名加进 noproxy,让 npm 直接连。

用 Proxy302 怎么做

这里的每条命令都只需要 Proxy302 代理的主机、端口、账号和密码。npm、pnpm 和 Yarn 用的是 HTTP 地址,所以生成代理时协议选 HTTP。动态住宅流量按 GB 计费,出口国家在生成代理时设置;HTTP 在 proxy.proxy302.com 的 2222 端口,SOCKS5 在 3333 端口。静态 ISP IP 在整个租期内固定、不轮换,适合希望每次都从同一个地址出去的工具。HTTP 还是 SOCKS5 在购买时选择,一个 IP 只带一种协议。

用 Proxy302 怎么做:步骤

  1. 第 1 步

    打开动态住宅页面,选择线路,「协议」保持 HTTP,然后点击「确认费用并生成」。

  2. 第 2 步

    打开「我的资产」(控制台里放着你买到的全部代理),复制 HOST(地址)、PORT(端口)、USERNAME(账号)和 PASSWORD(密码)。「连接工具」页里有填好你自己连接信息的现成示例。

  3. 第 3 步

    把这些值填进上面的命令。

  4. 第 4 步

    通过代理访问 https://ipinfo.io/json 确认出口。

  5. 第 5 步

    在中国大陆,先在「连接工具」页打开辅助工具,使用代理期间保持开着。

价格与限制

低价线路每 GB 收费 US$1.50,100 GB 套餐每 GB US$1.35,300 GB 每 GB US$1.20。静态 ISP IP 一天 US$0.50,30 天 US$7.99。不提供免费试用,最小购买单位为 1 GB,或一个 IP 一天。可用的出口位置每天都会变化。

常见问题

registry 镜像要另外设置吗?

要。registry 设置决定 npm 从哪里下载,代理设置决定走哪条网络路径,两者互相独立。

proxy 和 https-proxy 都要设吗?

registry 地址是 https,所以最关键的是 https-proxy。两个都设成同一个地址最省事。

全局安装 npm install -g 也有效吗?

用户级和全局配置文件以及环境变量都生效。按 npmrc 文档,全局模式下不读项目里的 .npmrc。

npm 能用 SOCKS5 代理吗?

我们读过的 npm、pnpm、Yarn 文档都没有写 SOCKS。请使用 HTTP 代理地址。

参考资料

8
  1. npm Docs: config (proxy, https-proxy, noproxy)

    官方文档 · 确认日期:

    Read on 2 November 2026: proxy is the proxy for outgoing http requests (null, false or URL, default null); https-proxy is the proxy for outgoing https requests (null or URL, default null); noproxy is domain extensions that should not use any proxy, default the value of NO_PROXY, a comma-delimited string is accepted; HTTP_PROXY/HTTPS_PROXY and lower-case forms are honored by the libraries underneath.

    SOCKS is not mentioned. The page does not say how host names are matched against noproxy entries or that special characters must be percent-encoded.

  2. npm Docs: npmrc

    官方文档 · 确认日期:

    Read on 2 November 2026: four files (per-project .npmrc in the project root, per-user ~/.npmrc, global $PREFIX/etc/npmrc, built-in); options are resolved in priority order and a user-file setting overrides the global file; the project file is not read in global mode; ${VARIABLE_NAME} inserts an environment variable, ${VARIABLE_NAME?} gives an empty string if undefined.

  3. npm Docs: npm config

    官方文档 · 确认日期:

    Read on 2 November 2026: set writes keys to the user config unless --location is passed; get echoes values; delete removes keys from all config files; list shows all settings and -l adds defaults; --location takes global, user or project.

  4. npm Docs: npm ping

    官方文档 · 确认日期:

    Read on 2 November 2026: pings the configured or given registry and verifies authentication; success prints "npm notice PING <registry>" and "npm notice PONG <time>ms"; failure prints an error such as E404.

  5. pnpm Docs: network settings

    官方文档 · 确认日期:

    Read on 2 November 2026: httpsProxy and httpProxy (type url, default null) and noProxy (comma-separated string of domain extensions the proxy should not be used for); httpsProxy falls back to HTTPS_PROXY/https_proxy; a proxy URL with a username and password must be URL-encoded, with the colon between them not encoded.

  6. pnpm Docs: settings

    官方文档 · 确认日期:

    Read on 2 November 2026: lists httpsProxy, httpProxy and noProxy under network settings and says that proxy settings are read from .npmrc files.

  7. Yarn Docs: .yarnrc.yml

    官方文档 · 确认日期:

    Read on 2 November 2026: httpProxy ("Proxy to use when making an HTTP request") and httpsProxy ("Define a proxy to use when making an HTTPS request"), examples use http://proxy:4040.

    No noProxy entry and no mention of SOCKS were found on the page. Yarn 1 (Classic) was not checked.

  8. Proxy302 product facts and price list

    产品观察 · 确认日期:

    Product facts file of the site (values checked against the console, the backend and the price table on 18-19 October 2026): products, prices in US$ (1 PTC = US$1), lease terms, protocols and ports, countries, quantity limits, no free trial.

准备好试试了吗?

注册账号、充值一次,就能选动态住宅、静态 ISP 或数据中心 IP,几分钟配进你的浏览器。