独享代理 Node.js 示例

这个示例基于 demo-sdk-dedicated-proxy 的 Node.js 目录整理,适合先验证 axios 代理配置和管理接口调用。

运行前准备

  • 安装依赖:npm i axios http-proxy-agent https-proxy-agent
  • 设置环境变量:
    • PRIVATE_HOST
    • PRIVATE_PORT
    • PRIVATE_USERNAME
    • PRIVATE_PASSWORD
    • 可选:PRIVATE_BASE
    • 可选:TARGET_URL

示例代码

const axios = require('axios')

const host = process.env.PRIVATE_HOST || 's1.ip.16yun.cn'
const port = process.env.PRIVATE_PORT || '39010'
const user = process.env.PRIVATE_USERNAME || process.env.PRIVATE_USER
const pass = process.env.PRIVATE_PASSWORD || process.env.PRIVATE_PASS
const target = process.env.TARGET_URL || 'https://httpbin.org/ip'
const base = (process.env.PRIVATE_BASE || 'http://s1.ip.16yun.cn:887').replace(/\/$/, '')

if (!user || !pass) {
  throw new Error('缺少 PRIVATE_USERNAME/PRIVATE_PASSWORD')
}

async function main() {
  for (const path of ['current-ip', 'switch-ip', 'update']) {
    const url = `${base}/simple/${path}?username=${encodeURIComponent(user)}&password=${encodeURIComponent(pass)}`
    const resp = await axios.get(url, { timeout: 15000 })
    console.log(path, resp.status, resp.data)
  }

  const resp = await axios.get(target, {
    proxy: {
      protocol: 'http',
      host,
      port: parseInt(port, 10),
      auth: { username: user, password: pass },
    },
    timeout: 15000,
  })

  console.log(resp.status, resp.data)
}

main().catch((error) => {
  console.error(error.message)
  process.exit(1)
})

适合什么情况

  • 你使用 Node.js 脚本或服务接入独享代理
  • 你想快速确认 axios 的代理配置
  • 你需要一个最小可运行的 JavaScript 示例

相关入口