用 Node.js 和 Axios 接住宅代理:https-proxy-agent 怎么配、怎么测通

Axios 内置 proxy 选项对 HTTPS 隧道往往不可靠;用 https-proxy-agent,并设 proxy:false。凭据来自控制台,示例用假占位符,代码须渲染为真代码块。不支持中国大陆。

Axios 内置 proxy 选项对 HTTPS 隧道往往不可靠;用 https-proxy-agent,并设 proxy:false。凭据来自控制台,示例用假占位符,代码须渲染为真代码块。不支持中国大陆。

先从控制台复制协议、主机、端口、认证,再写进客户端。Axios 自带的 `proxy` 选项对 HTTPS 的 `CONNECT` 隧道经常不可靠;常见写法是使用 `https-proxy-agent`,并设置 `proxy: false`,以免 Axios 再套一层或被环境变量带走。

Python 版见用 Python 接住宅代理。字符串格式见代理格式。协议见HTTP / SOCKS5 配置。命令以文档快速开始为准。

本站提供动态住宅(按 GB)与静态住宅(按 IP·月)。示例是假占位符,不要当成生产地址。仅限授权目标。不支持中国大陆使用。

开始前备齐什么

准备项从哪里来
协议、主机、端口、认证仅控制台返回值(不用本文假占位符)
Node.js 与 `axios`、`https-proxy-agent`本机环境
测通 URL你有权访问的 HTTPS 目标
动态或静态订单动态 vs 静态

占位符(非生产):主机 `proxy.example.invalid`,端口 `10000`,用户 `USER_EXAMPLE`,密码 `PASS_EXAMPLE_NOT_REAL`。

推荐写法:agent + proxy:false

凭据放在环境变量里。用户名或密码含 `@`、`:` 时先做 URL 编码。`httpAgent` 与 `httpsAgent` 都指向同一 agent。

import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

const user = encodeURIComponent(process.env.ZT_PROXY_USER ?? "USER_EXAMPLE");
const pass = encodeURIComponent(process.env.ZT_PROXY_PASS ?? "PASS_EXAMPLE_NOT_REAL");
const host = process.env.ZT_PROXY_HOST ?? "proxy.example.invalid";
const port = process.env.ZT_PROXY_PORT ?? "10000";

const agent = new HttpsProxyAgent(`http://${user}:${pass}@${host}:${port}`);

const res = await axios.get("https://example.com", {
  httpAgent: agent,
  httpsAgent: agent,
  proxy: false, // 不要让 Axios 内置 proxy 或环境变量再处理一次
  timeout: 30_000,
});

console.log(res.status);

不要编造写在用户名里的国家码或会话字段。若控制台提供这类参数,以控制台说明为准;否则不要自行拼接。SOCKS5 仅在控制台返回 SOCKS 且你改用对应 agent 时才需要,且不要假设提供 UDP。

会话与粘性

复用同一个 agent 可能复用到网关的连接,这不是静态 IP,也不自动等于粘性会话。见粘性 ≠ 静态。

常见问题对照

现象先检查什么
407用户名密码、URL 编码、订单是否有效
HTTPS 仍走本机是否漏了 `proxy: false`;是否只设了其中一个 agent
超时协议和端口是否与控制台一致;是否误用假主机
地区不对订单地区;是否在本机解析了域名

更完整的症状表见407 与超时排查。命令行先测可见用 curl 测通。

合规与范围

只用于授权目标。不把本页写成绕过限制的教程。价格以控制台为准(动态约 $0.40/GB,100 TB 整包约 $0.20/GB;静态共享约 $1.50、独享约 $5 /IP/月)。USDT/USDC 可用;Visa/Mastercard 申请中。不支持中国大陆使用。

FAQ

为什么不直接用 Axios 的 proxy 选项?

它对 HTTPS 隧道经常不稳定。用 agent 并关闭内置 `proxy` 是更常见、也更好排错的写法。

示例主机能直接用吗?

不能。必须改成控制台返回值。

可以在用户名里自己加 -country-us 吗?

不要自造语法。只有控制台或文档写明的字段才能用。

要装 socks-proxy-agent 吗?

仅当控制台返回 SOCKS5,并且你选择 SOCKS 客户端时才需要。

复用 agent 会保持同一 IP 吗?

不一定。连接复用 ≠ 静态,也不自动等于粘性。

可以用来突破登录限制吗?

不可以。仅限合法授权目标。

Node 和 Python 选哪个?

取决于你的运行时。写法不同,凭据来源相同:都是控制台。

价格以哪里为准?

以控制台与价格方案为准。

下一步

  1. 从控制台复制真实字段。
  2. 对授权目标测通。
  3. 需要选型时打开动态或静态。