Node.js设置代理

一句话 axios 用 proxy 对象;fetch 默认不读环境变量。先 curl 测通同一条接入,不要叠两套。

Node.js 走代理:请求库自己认代理字段,不是「装了 Node 就自动出网」。 axios 用 proxy 对象;官方 fetch 默认不读 HTTP_PROXY。先用同一条接入在 curl 里测通,再抄进脚本。不要环境变量和库内配置叠两套。

网页出口先接动态住宅。本篇只讲进程怎么接到网关,不是采集教程。

Node.js 里代理填在哪?

填在发出 HTTP 请求的那个库里。主机、端口、用户名、密码来自控制台生成结果。网页请求生成 HTTP/HTTPS。库只有 SOCKS5 栏再改 SOCKS5,换协议不会换产品池。

axios 可以这样写:proxy.hostproxy.portproxy.protocolhttpsocks5)、proxy.auth.usernameproxy.auth.password。控制台代码示例也是这一组字段。不要把账密写进 host

fetch(Node 18+ / undici)默认直连。要走代理,给 dispatcher 配代理 agent,或换一个会读代理的库。只 export HTTP_PROXY=...fetch(url),出口经常仍是这台机器的宽带。

环境变量适合命令行工具和部分老库:http_proxy / HTTPS_PROXY 写成 http://用户名:密码@主机:端口。SOCKS5 用 ALL_PROXY=socks5h://...。有的进程只认大写,有的只认小写。Docker、pm2、systemd 读不到你在交互 shell 里 export 的值,要写进各自的环境。

动态住宅按 GB,起步 $0.79/GB。池是 超9000万合规采集,国家按控制台在线列表选(公开页写 195+)。Node 进程只决定怎么连网关,不决定池的大小。

生成步骤在如何使用动态住宅代理。接口参数以文档为准。

axios 和 fetch 为什么一个走一个不走?

因为它们不是同一条通道。axios 认自己的 proxyfetch 认 dispatcher。你在 axios 里填对了,同文件里的 fetch 仍可能直连。反过来,只 export 了环境变量,axios 在部分版本会读、在部分版本要你显式写 proxy

不要两套一起开。环境变量已经指向 A 接入,axios 又写了 B 接入,报错时分不清是哪一层在认证。测的时候只留一套:先 curl -x,见curl使用代理;再只配 axios 或只配 fetch。

HTTPS 目标站时,库要走 HTTPS 代理字段或同一条 HTTP 代理的 CONNECT。只配了 http、没配 https,页面请求会直连。用户名密码里的 @:# 要编码,否则网关收到的不是完整账密。

需要同一个 IP 撑一会儿,用粘性会话;订购期内固定地址才买静态住宅。对方说的短效 / 长效 / 包时,用粘性、按 GB、按 IP 理解即可。协议对照见HTTP代理和SOCKS5哪个好

407、超时、出口没变,先改哪?

打开 IP 查询接口看出口国家和 IP。网关 7×24 监控,网络成功率 99.97% 管连通,不是某一个网站的通过率。

  1. 407:代理收到了请求,不接受认证。先对用户名密码是否和控台同一条,再看有没有和白名单一起开,见407代理认证失败。白名单填的是跑 Node 这台机器此刻的公网 IP,不是脚本打印出来的出口。
  2. ECONNREFUSED / 超时:主机端口协议和生成结果不一致,或还叠了系统代理。先 curl,不要先换库。
  3. 脚本打印的仍是本机 IPfetch 没挂 agent,或 axios 的 proxyfalse 关掉了。有人用自定义 agent 时必须设 proxy: false,否则库会再包一层;只关了 proxy、忘了挂 agent,就是直连。
  4. curl 通、Node 不通:账密编码、协议、是否走 CONNECT,这三处和 curl 对齐。不要为了出网关掉证书校验。

不要把本篇当成未授权访问的教程。频率和目标站条款由你负责。套餐以定价为准。只在官方网站购买,开始使用无需信用卡。

查看产品查看定价打开帮助中心