Best Proxies for Node.js 2026 cover

Node.js 广泛用于网页抓取和自动化。发起 HTTP 请求时,最常用的是 Axios 和内置的 fetch。为两者配置代理并不难,但各有注意事项:Axios 内置的 proxy 选项对 HTTPS 支持不够可靠,而原生 fetch 没有代理选项,需通过 agent 或 dispatcher 转发请求。本指南会讲解如何在 Node.js 中使用代理,涵盖 Axios、原生 fetch、node-fetch、SOCKS5 和轮换代理,并评选 2026 年 8 款最佳 Node.js 代理。DataImpulse 的 $1/GB 是衡量性价比的基准。

我是 Andrii Byzov,一名每天交付 Node.js 爬虫的 AI-Native Fractional CMO。本文提供可直接复制粘贴的实用方案,说明 Axios 处理 HTTPS 时的常见陷阱,并推荐值得付费的服务商。


关键事实

  • 对于 Axios,请使用代理 agent,而不是内置选项。 Axios 的 proxy 配置对 HTTPS 目标并不可靠。请将 https-proxy-agent 作为 httpsAgent 传入,并设置 proxy: false
  • 原生 fetch(Node 18+)没有代理选项。 通过 dispatcher 选项使用 undici 的 ProxyAgent 来路由它。
  • node-fetch(npm 包;v3 仅支持 ESM)可接受一个 agent,请使用 https-proxy-agent
  • 将凭据写入代理 URLhttp://user:pass@host:port。SOCKS5 请使用 socks-proxy-agent
  • DataImpulse 性价比较高:住宅代理按量付费 $1/GB,数据中心代理 $0.50/GB,移动代理 $2/GB,覆盖 195 个国家/地区的 90M+ IP,支持 HTTP/HTTPS/SOCKS5、国家/城市/ASN 定向。

如何在 Node.js 中使用代理

1. Axios(使用 https-proxy-agent 的可靠做法)

// npm i axios https-proxy-agent
const axios = require('axios');
const { HttpsProxyAgent } = require('https-proxy-agent');

const proxy = 'http://YOUR_LOGIN__cr.us:[email protected]:823'; // __cr.us = US
const agent = new HttpsProxyAgent(proxy);

axios.get('https://httpbin.org/ip', { httpsAgent: agent, proxy: false })
  .then(r => console.log(r.data));  // confirm the egress IP

设置 proxy: false 后,Axios 会使用该 agent,而不会启用自身对 HTTPS 支持不完善的代理机制。URL 中的凭据会自动生效。

2. 通过 undici ProxyAgent 使用原生 fetch(Node 18+)

// npm i undici
const { ProxyAgent } = require('undici');

const dispatcher = new ProxyAgent('http://YOUR_LOGIN__cr.us:[email protected]:823');
const res = await fetch('https://httpbin.org/ip', { dispatcher });
console.log(await res.json());

原生 fetch 没有 proxy 选项,因此需要传入 dispatcher。也可以使用 undici 的 setGlobalDispatcher(dispatcher),将其应用到所有 fetch 调用。

3. 通过 agent 使用 node-fetch

// npm i node-fetch https-proxy-agent
// node-fetch v3 is ESM-only — use import (or pin node-fetch@2 for require)
import fetch from 'node-fetch';
import { HttpsProxyAgent } from 'https-proxy-agent';

const agent = new HttpsProxyAgent('http://YOUR_LOGIN__cr.us:[email protected]:823');
const res = await fetch('https://httpbin.org/ip', { agent });
console.log(await res.json());

4. SOCKS5 与轮换

// npm i socks-proxy-agent  — for SOCKS5 (port 824)
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5://YOUR_LOGIN__cr.us:[email protected]:824');
axios.get('https://httpbin.org/ip', { httpsAgent: agent, proxy: false }).then(r => console.log(r.data));

使用 DataImpulse 的轮换住宅网关时,经该 agent 发出的每个请求都会使用新的出口 IP,无需自行管理代理列表。若要轮换静态代理列表,请针对每个请求以不同的代理 URL 创建新的 agent。


Node.js 最佳代理速览

提供商 最适合 Node.js 的场景 住宅代理价格 协议 亮点
DataImpulse 性价比高,适合爬虫和自动化任务 $1/GB PAYG HTTP/HTTPS/SOCKS5 90M+ IP 池,流量永不过期
Bright Data 企业级需求和托管服务 ~$4/GB 促销价;$8 常规价 HTTP/HTTPS/SOCKS5 Web Unlocker、SERP API、数据集
Oxylabs 企业级 SLA 起价 $6/GB HTTP/HTTPS/SOCKS5 175M+ IP 池,抓取 API
Decodo 中端市场,地理定位选择全面 $3.75/GB(1TB+ 时约 $2) HTTP/HTTPS/SOCKS5 115M+ IP 池,粘性会话最长 24h
IPRoyal 长时间粘性会话 起价 $7.35/GB HTTP/HTTPS/SOCKS5 粘性会话最长 7 天;低价 PAYG
SOAX 住宅 + 移动代理组合 $3.60/GB Starter HTTP/HTTPS/SOCKS5 155M+ 住宅代理,33M+ 移动代理
Webshare 预算有限的自助服务 住宅代理起价 $3.50/mo;数据中心代理 $2.99/mo HTTP/SOCKS5 免费套餐,最便宜的数据中心代理
NetNut ISP 住宅代理稳定性 起价 $3.53/GB HTTP/HTTPS 消费者 ISP 静态 IP

Best proxies for Node.js 2026: raw residential per-GB pricing vs managed scraping API per-1,000-requests pricing (heterogeneous units)


简要推荐

DataImpulse 是 Node.js 项目的高性价比基准选择:住宅代理按量付费 $1/GB(数据中心 $0.50/GB,移动 $2/GB),覆盖 195 个国家的 90M+ IP,支持 HTTP/HTTPS 和 SOCKS5,并可在用户名中设置国家/城市/ASN 定向。流量永不过期,不必担心开发测试消耗订阅期限。公布的成功率为 99.51%;G2 评分 4.8/5;24/7 人工支持。对于高流量 Node.js 抓取任务,它的单次成功请求成本较低。

Bright Data 是企业级选择(住宅代理常规约 $8/GB,促销约 $4),提供 Web Unlocker、SERP API 和数据集。Oxylabs(起价 $6/GB,175M+ 代理池)是 SLA 级选项。Decodo(起价 $3.75/GB,粘性会话最长 24h)是较为均衡的中端选择。IPRoyal(起价 $7.35/GB,粘性会话最长 7 天)适合长时间、会话稳定的脚本。SOAX($3.60/GB,155M+ 住宅代理 + 33M+ 移动代理)还提供规模可观的移动代理池。Webshare(免费套餐,数据中心代理起价 $2.99/mo)适合预算有限的自助入门用户,而 NetNut(起价 $3.53/GB)是 ISP 住宅稳定性之选。


常见 Node.js 代理错误

  • 依赖 Axios 内置的 proxy 选项处理 HTTPS。 它对 HTTPS 目标并不可靠。请使用 https-proxy-agent 作为 httpsAgent,并设置 proxy: false
  • 期望原生 fetch 支持 proxy 选项。 它不支持。请通过 dispatcher 传入 undici ProxyAgent
  • 为协议使用了错误的 agent。 对 HTTP/HTTPS 代理使用 https-proxy-agent,对 SOCKS5 使用 socks-proxy-agent
  • 没有设置超时。 失效的代理可能会让请求挂起;请为 Axios 设置超时,或为 fetch 使用 AbortController
  • 在防护严格的网站上使用数据中心 IP。 这类 IP 很快可能被封锁;请改用住宅代理,并使用真实的请求头(User-Agent)。

Node.js 中的轮换代理与粘性代理

对于大规模抓取,轮换住宅网关很合适:经 agent 发出的每个请求都会获得新的 IP。对于有状态流程,例如登录后继续调用,请使用粘性代理,并复用 Axios 实例或 cookie jar,让同一 IP 和 cookie 保持有效。大多数 Node.js 抓取任务都是无状态的,因此轮换代理通常是默认选择。


Node.js 应选择哪种代理类型:住宅、数据中心还是移动?

  • 住宅 ($1/GB):适合受防护的网站,例如电商、SERP 和社交平台,也是只能选一种时的默认选择。
  • 移动 ($2/GB):使用真实运营商 IP,适合最难访问的网站和移动网页场景。
  • 数据中心 ($0.50/GB):用于无防护任务、API 和自有基础设施时速度最快、成本最低;不适合反机器人机制严格的网站。

DataImpulse 在同一个按量付费账户中提供这三种类型,因此单个 Node.js 爬虫可通过用户名和端点,为每个请求选择合适的代理类型。

如何开始使用 DataImpulse + Node.js

第 1 步。 创建 DataImpulse 账户并获取住宅代理凭据。$5 / 5GB 入门套餐永不过期,可放心用于测试。

第 2 步。 使用 http://YOUR_LOGIN__cr.us:[email protected]:823 创建 https-proxy-agent,并将其作为 httpsAgent(Axios)或 dispatcher/agent(fetch/node-fetch)传入,并在用户名中追加国家/地区代码进行地理定位。SOCKS5 请使用 socks-proxy-agent 和端口 824

第 3 步。 设置超时,使用更真实的请求头,并让轮换网关为每个请求分配新的 IP。参阅 DataImpulse 教程住宅代理页面。


常见问题

如何在 Axios 中使用代理?

使用代理 agent,而非 Axios 的内置选项,因为后者对 HTTPS 支持不可靠。安装 https-proxy-agent,根据代理 URL 创建 agent,并将其作为 httpsAgent 传入,同时设置 proxy: falseaxios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@host:port'), proxy: false })。DataImpulse 使用 gw.dataimpulse.com:823

如何在 Node.js 的原生 fetch 中使用代理?

原生 fetch(Node 18+)没有代理选项。请通过 undici 的 ProxyAgent 转发请求:const dispatcher = new ProxyAgent('http://user:pass@host:port'); fetch(url, { dispatcher })。使用 setGlobalDispatcher(dispatcher) 可将其应用于所有 fetch 调用。

Node.js 最佳代理是什么?

对于有防护的网站,住宅代理更合适。DataImpulse $1/GB 的性价比较高(HTTP/HTTPS/SOCKS5、90M+ IP、永不过期流量)。Bright Data 和 Oxylabs 是企业级选项;Webshare 的入门成本最低。它们都可与 https-proxy-agent(Axios/node-fetch)或 undici ProxyAgent(原生 fetch)配合使用。

Node.js 支持 SOCKS5 代理吗?

支持。使用 socks-proxy-agent 包,创建 new SocksProxyAgent('socks5://user:pass@host:port'),并将其作为 agent 传入(Axios 使用 httpsAgent,node-fetch 使用 agent)。DataImpulse 在端口 824 提供 SOCKS5。对于原生 fetch,需要兼容 undici 的 SOCKS dispatcher。

为什么我的 Axios 代理在 HTTPS 网站上不起作用?

Axios 内置的 proxy 配置处理 HTTPS 隧道时长期存在问题。解决办法是绕过它:设置 proxy: false,并将 https-proxy-agent 作为 httpsAgent 传入。agent 会正确处理 CONNECT 隧道。请将凭据放入代理 URL 中。

Node.js 代理的费用是多少?

住宅代理通常按 GB 计费:DataImpulse $1/GB(性价比基准),NetNut 起价 $3.53,SOAX $3.60,Decodo $3.75,Oxylabs 起价 $6,IPRoyal $7.35;Webshare 提供起价 $3.50/mo 的经济型订阅。抓取一个页面只占 GB 的很小一部分,因此对于高容量抓取,按 GB 计费的住宅代理远比按记录计费的托管 API 便宜;托管选项适合最难处理的目标。



Share article: