独享代理 Node.js 示例
这个示例基于 demo-sdk-dedicated-proxy 的 Node.js 目录整理,适合先验证 axios 代理配置和管理接口调用。
运行前准备
- 安装依赖:
npm i axios http-proxy-agent https-proxy-agent - 设置环境变量:
PRIVATE_HOSTPRIVATE_PORTPRIVATE_USERNAMEPRIVATE_PASSWORD- 可选:
PRIVATE_BASE - 可选:
TARGET_URL
示例代码
1const axios = require('axios')23const host = process.env.PRIVATE_HOST || 's1.ip.16yun.cn'4const port = process.env.PRIVATE_PORT || '39010'5const user = process.env.PRIVATE_USERNAME || process.env.PRIVATE_USER6const pass = process.env.PRIVATE_PASSWORD || process.env.PRIVATE_PASS7const target = process.env.TARGET_URL || 'https://httpbin.org/ip'8const base = (process.env.PRIVATE_BASE || 'http://s1.ip.16yun.cn:887').replace(/\/$/, '')910if (!user || !pass) {11throw new Error('缺少 PRIVATE_USERNAME/PRIVATE_PASSWORD')12}1314async function main() {15for (const path of ['current-ip', 'switch-ip', 'update']) {16const url = `${base}/simple/${path}?username=${encodeURIComponent(user)}&password=${encodeURIComponent(pass)}`17const resp = await axios.get(url, { timeout: 15000 })18console.log(path, resp.status, resp.data)19}2021const resp = await axios.get(target, {22proxy: {23protocol: 'http',24host,25port: parseInt(port, 10),26auth: { username: user, password: pass },27},28timeout: 15000,29})3031console.log(resp.status, resp.data)32}3334main().catch((error) => {35console.error(error.message)36process.exit(1)37})
适合什么情况
- 你使用 Node.js 脚本或服务接入独享代理
- 你想快速确认 axios 的代理配置
- 你需要一个最小可运行的 JavaScript 示例