首页

让Node.js走代理

1 周前

目前AI-MCP几乎全部是通过npx运行
以往想让npx的MCP走代理,最简单的办法是开启TUN
这种方式又慢又费力,本质上还是得让Node.js走代理,但传统的基本上是劫持Node.js走流量,需要安装依赖库,分流也挺麻烦的

这个功能的背景源于一个已开放8年多的GitHub issue,显示社区对此功能的长期呼声
Joyee Cheung(实现者)在社区讨论中明确表示,这是继fetch支持后,同时为http/https内置模块添加的代理支持

Node.js v22.21.0版本(2025-10-20)的更新当中终于正式更新了原生代理
那就是NODE_USE_ENV_PROXY环境变量

现在不需要复杂的代理逻辑,只需要加入NODE_USE_ENV_PROXY变量,值为1即可开启
配置一下HTTP_PROXY就可以让Node.js走代理了

很简单,只需两步


「环境变量」

Powershell/CMD

#1.开启原生支持的代理
setx NODE_USE_ENV_PROXY "1"

#2.配置HTTP_PROXY让Node.js读取到代理内容
setx HTTP_PROXY "http://127.0.0.1:代理端口号"

#3.可选项但不推荐,因为本地代理不需要走HTTPS,但是如果是公司代理可能需要配置HTTPS
setx HTTPS_PROXY "http://127.0.0.1:代理端口号"

Linux

#1.开启原生支持的代理
export NODE_USE_ENV_PROXY=1

#2.配置HTTP_PROXY让Node.js读取到代理内容
export http_proxy="http://127.0.0.1:代理端口号"

#3.可选项但不推荐,因为本地代理不需要走HTTPS,但是如果是公司代理可能需要配置HTTPS
export https_proxy="http://127.0.0.1:代理端口号"

重启软件,即可生效


补充知识点

HTTP_PROXY / HTTPS_PROXY:用于设置代理地址

NO_PROXY:用于设置哪些地址不走代理(相当于白名单)
实例:setx NO_PROXY "localhost,127.0.0.1"

版本要求:Node.js ≥ v22.21.0

消息来源:
更新日志:Node.js — Node.js 22.21.0 (LTS)
更新代号:[bedaaa11fc
更新地址:[https://github.com/nodejs/node/commit/bedaaa11fc]

如果你觉得这句写得特别好,那是我写的。如果读起来怪怪的,那是AI写的。

留下第一个评论