如何在 Node.js 中配置代理(Axios 与原生 Fetch)

更新于:

Axios 内置的 proxy: { host, port } 选项在请求 https:// 目标站点时会发生失败,因为其不会发起建立 HTTP CONNECT 隧道。为了在 Node.js 与 TypeScript 项目中干净稳定地通过 VinaProxy 带认证的 HTTP(S) 代理路由流量,请在 Axios 中使用 HttpsProxyAgent(https-proxy-agent),或在原生 Node fetch() 中使用 undici.ProxyAgent 调度器。

Node.js (Axios / Undici) · HTTP Proxy Format
new HttpsProxyAgent('http://user:pass@ip:port')
独享IPv4(机房)
🇺🇸 United States
有货
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND结算
批量阶梯价格
  • 1 个IP₫40,000
  • 5+ 个IP₫35,000
  • 10+ 个IP₫25,000
  • 20+ 个IP₫25,000
  • 50+ 个IP₫25,000
  • 100+ 个IP₫25,000
  • 200+ 个IP₫25,000
  • 500+ 个IP₫25,000
  • 1000+ 个IP₫22,000
  • 2000+ 个IP₫20,000
购买United States代理
独享IPv4(机房)
🇸🇬 Singapore
有货
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND结算
批量阶梯价格
  • 1 个IP₫40,000
  • 5+ 个IP₫35,000
  • 10+ 个IP₫25,000
  • 20+ 个IP₫25,000
  • 50+ 个IP₫25,000
  • 100+ 个IP₫25,000
  • 200+ 个IP₫25,000
  • 500+ 个IP₫25,000
  • 1000+ 个IP₫22,000
  • 2000+ 个IP₫20,000
购买Singapore代理

Axios 与原生 Node.js fetch() 代理配置对比

两种类库均支持直接使用来自 VinaProxy 控制台的标准 http://user:pass@ip:port URL 格式:

HTTP 客户端依赖 NPM 包推荐代码示例
Axiosnpm i https-proxy-agentaxios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false })
原生 fetch (Node 18+)npm i undicifetch(url, { dispatcher: new ProxyAgent('http://user:pass@ip:port') })
Gotnpm i hpagentgot(url, { agent: { https: new HttpsProxyAgent({ proxy: 'http://user:pass@ip:port' }) } })

Node.js 中的连接池复用与超时设置最佳实践

  • 在 Axios 中配置 httpsAgent 时务必同时声明 proxy: false,防止 Axios 被操作系统中冲突的 HTTP_PROXY 环境变量干扰
  • 在循环外部为每个代理 IP 仅实例化一次 HttpsProxyAgent 或 ProxyAgent,以复用底层的持久 TCP keep-alive 连接并减少开销
  • 利用我们的 代理格式转换工具 直接将 VinaProxy 代理列表导出为 JSON 数组格式,方便代码直接引入

操作步骤

  1. 1

    安装 https-proxy-agent(或 undici)

    在 Node.js 项目根目录下运行 npm install axios https-proxy-agent。

  2. 2

    创建 HttpsProxyAgent 实例

    使用你的 VinaProxy 凭证初始化 const agent = new HttpsProxyAgent('http://user:pass@ip:port');。

  3. 3

    将 httpsAgent 与 proxy: false 传入 Axios

    调用 const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });。

  4. 4

    验证出口 IP 地址

    打印 res.data,确认响应确由你分配的专属代理 IP 节点返回。

常见问题

为什么 Axios 默认的 proxy: { host, port, auth } 在请求 HTTPS 时会失败?

Axios 内置的 proxy 配置仅发送明文 HTTP 请求,而不会建立 HTTP CONNECT TLS 加密隧道。配合 proxy: false 使用 httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') 即可完美解决该问题。

如何在 Node.js 18/20/22 的原生 fetch() 中使用代理?

从 undici 中导入 ProxyAgent,并在 fetch() 的选项对象中传入 { dispatcher: new ProxyAgent('http://user:pass@ip:port') }。

是否可以将代理列表直接转换为适合 Node.js 读取的 JSON 格式?

可以。将 ip:port:user:pass 列表粘贴至我们免费的 代理格式转换工具,并选择导出为 JSON 即可。

使用独享静态 IP 赋能你的 Node.js 后端与爬虫程序

覆盖 7 大国家地区的即时开通、不限流量独享 IPv4 与静态 ISP 代理服务。

购买 Node.js 代理

相关文章

按平台选择代理
网络爬虫代理:面向 24/7 爬虫的不限流量独享 IPv4 与 ISP 代理池
为 Python、Playwright、Selenium 和 Scrapy 提供高速 HTTP(S) 独享 IPv4 与静态 ISP 代理,享无限月度流量。
代理配置教程
如何在 Puppeteer 中配置带认证的代理(Node.js 指南)
在 Node.js Puppeteer 中配置带身份验证的 HTTP(S) 代理:通过 --proxy-server 启动参数与 await page.authenticate() 结合实现稳定代理连接。
代理配置教程
如何在 Playwright 中设置代理(浏览器级与 Per-Context 认证)
在 Node.js 和 Python 的 Playwright 中配置带认证的 HTTP(S) 代理。通过 BrowserContext 在单一浏览器实例中运行多个独立的静态 IP。
免费工具
批量代理格式转换工具(100% 浏览器本地安全处理)
100% 浏览器本地运行的批量代理格式转换工具。支持在 ip:port:user:pass、user:pass@ip:port、http:// URL、SOCKS5 URI、JSON 数组及 FoxyProxy 导入格式之间即时转换。
按平台选择代理
SEO 与 SERP 排名追踪代理:精准监测 7 国搜索结果排名
追踪精准本地化关键词排名,审查 Geo 重定向,并使用不限流量独享 IPv4 与静态 ISP 代理运行 Screaming Frog 全站抓取。
按平台选择代理
Discord 代理:在独享静态 IP 上独立隔离账号与 Token
保护多个 Discord 账号与 Token 免受手机验证封锁和 Cloudflare 拦截。提供美国、新加坡及越南独享静态代理。
IPV4 · united states
美国独享IPv4代理:专用于大数据采集、SEO追踪与广告验证的高速美国IP
美国独享IPv4代理:专用于数据爬取、排名跟踪、广告验证及亚马逊调研。静态独享IP,不限流量,快速开通。
IPV4 · singapore
新加坡独享IPv4代理:东南亚跨境电商与海外广告投放的高速独享IP
新加坡独享IPv4代理:适用于Lazada与Shopee新加坡店铺、区域广告账号、广告验证及低延迟自动化。不限流量。