指南

如何在 cURL、Python 和 Node.js 中使用 HTTP 或 SOCKS5 代理

IPronix 编写 · 更新于

所有 IPronix 代理都使用用户名和密码认证。住宅、移动和数据中心网关各有一个 HTTP 端口和一个 SOCKS5 端口;静态 ISP IP 同一时间只能运行 HTTP 或 SOCKS5 其中一种协议(可在订单页面切换,IP 和端口保持不变)。静态 ISP 代理列在“我的代理”(My Proxies)中;住宅、移动和数据中心流量通过网关主机转发,您的定位设置(国家、地区、城市、会话)会写入凭据中,或写入在控制面板中生成的端点列表。以下示例使用文档专用地址 203.0.113.10 和占位凭据,请替换为您自己的信息。

1. 构建代理 URL

大多数工具都接受一个完整的代理 URL:协议、凭据、主机和端口。HTTP 端口使用 http://,SOCKS5 端口使用 socks5h://(流量网关的两个端口不同;静态 ISP IP 需先切换协议,再使用同一端口)。socks5h 中的 h 表示由代理解析 DNS,因此目标主机名不会泄露给您本地的解析器。

http://USER:PASS@203.0.113.10:8000
socks5h://USER:PASS@203.0.113.10:8001

如果密码包含 @、: 或 / 等字符,请先对其进行 URL 编码(JavaScript 中使用 encodeURIComponent,Python 中使用 urllib.parse.quote)。

2. cURL

# HTTP proxy
curl -x http://USER:PASS@203.0.113.10:8000 https://api.ipify.org?format=json

# SOCKS5 proxy (DNS resolved by the proxy)
curl -x socks5h://USER:PASS@203.0.113.10:8001 https://api.ipify.org?format=json

响应会显示网站看到的 IP 地址。它应当是代理的 IP,而不是您自己的 IP。

3. Python(requests)

import requests

proxy = "http://USER:PASS@203.0.113.10:8000"
proxies = {"http": proxy, "https": proxy}
r = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
print(r.json())

如需使用 SOCKS5,请安装 SOCKS 扩展并更改协议:

# pip install "requests[socks]"
proxy = "socks5h://USER:PASS@203.0.113.10:8001"
proxies = {"http": proxy, "https": proxy}

4. Node.js(axios)

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

const agent = new HttpsProxyAgent("http://USER:PASS@203.0.113.10:8000");
const { data } = await axios.get("https://api.ipify.org?format=json", {
  httpsAgent: agent,
  proxy: false, // let the agent handle the proxy
});
console.log(data);

如需使用 SOCKS5,请改用 socks-proxy-agent:

import { SocksProxyAgent } from "socks-proxy-agent";

const agent = new SocksProxyAgent("socks5h://USER:PASS@203.0.113.10:8001");
const { data } = await axios.get("https://api.ipify.org?format=json", {
  httpAgent: agent,
  httpsAgent: agent,
  proxy: false,
});

5. 常见错误排查

  • 407 Proxy Authentication Required:用户名或密码错误,或密码中的特殊字符未进行 URL 编码。
  • 连接立即被拒绝或重置:端口与协议不匹配,例如把 SOCKS5 URL 指向了 HTTP 端口。请复制与您所用协议对应的端口。
  • 流量产品返回 407:请检查是否完整复制了密码,包括密钥后面的定位部分;不受支持的国家、地区或城市会被拒绝。
  • 流量请求停止工作:套餐流量可能已用完。请在控制面板中查看剩余流量并购买更多流量。
  • 静态 ISP IP 显示为待分配:IP 仍在分配中,准备就绪后会显示在订单中。

对于静态 ISP 代理,您还可以使用订单页面上的 ping 按钮检查代理是否响应并查看其延迟。

开始使用

首个代理 $2.54 起

登录后用银行卡为钱包充值,几步即可下单。最终价格在结账时计算。

或使用邮箱注册