跳至内容
ipcrazy.

NODE.JS / ESM / QUICKSTART

从 Node.js 服务建立代理连接。

使用原生 HTTPS 客户端,并明确指定代理 Agent。

准备工作

使用维护中的 Node.js 版本与 ES 模块(.mjs 或 type: module),在项目中安装 https-proxy-agent。

当前为配置指南,购买与真实代理连接尚未开放。示例需要实际交付的代理凭证,不会替你创建资源。

在服务端进程中设置代理变量。用 URL API 构造代理地址以处理凭证编码,再向 HTTPS 请求传入明确的 Agent。

npm install https-proxy-agent

设置环境变量

将以下参数保存在服务端进程环境。不要将代理密码或密钥放入网页代码、公开仓库和截图。

PROXY_HOST
分配的代理主机,不包含协议前缀
PROXY_PORT
与所选协议对应的端口
PROXY_USERNAME
代理用户名,不是网站登录邮箱
PROXY_PASSWORD
代理密码,不是账户密码或 API Key

发起请求

示例使用 HTTP 代理访问 HTTPS 目标。若实际入口为 SOCKS5,请使用支持 SOCKS5 的客户端与对应端口;HTTP 代理地址不能直接当作 SOCKS5 使用。

import { HttpsProxyAgent } from "https-proxy-agent";
import https from "node:https";

const proxy = new URL(
  `http://${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`
);
proxy.username = process.env.PROXY_USERNAME;
proxy.password = process.env.PROXY_PASSWORD;
const request = https.get("https://httpbin.org/ip",
  { agent: new HttpsProxyAgent(proxy) }, response => {
    response.pipe(process.stdout);
  });
request.setTimeout(30000, () => request.destroy());
request.on("error", () => console.error("Connection failed"));

检查结果

先运行一次示例,检查测试服务的响应。30 秒 socket 超时限制连接空闲时间;正式任务还需设置总时限并处理 HTTP 状态码。

常见问题

连接错误排查
现象检查方法
407核对代理用户名、密码和账户资源状态,勿反复自动重试。
超时 / 无法连接核对主机、端口、防火墙及协议,先用一个请求定位问题。
403 / 429区分目标站响应与代理鉴权错误。遵守目标站限制,降低频率并停止不允许的请求。
出口与预期不同检查是否为轮换套餐、会话是否过期,以及地区参数是否被实际资源支持。
选择适合任务的产品
Node.js | ipcrazy