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 | 区分目标站响应与代理鉴权错误。遵守目标站限制,降低频率并停止不允许的请求。 |
| 出口与预期不同 | 检查是否为轮换套餐、会话是否过期,以及地区参数是否被实际资源支持。 |