Socks5Proxy

代理连接指南:各语言工具的SOCKS5/HTTP配置方法

Socks5Proxy连接指南,详细介绍了Python requests、Node.js、cURL、Selenium、Puppeteer、Playwright、Scrapy七种工具连接SOCKS5和HTTP代理的方法,并附有实际运行的代码。

Python requests整理Python requests连接HTTP代理和SOCKS5代理(socks5h)的方法,涵盖认证、IP轮换、重试机制和会话管理的完整代码示例。Node.js整理Node.js中通过ProxyAgent连接HTTP代理、socks-proxy-agent连接SOCKS5代理的方法及IP轮换代码示例。cURL使用 cURL 连接 HTTP 代理(-x)和 SOCKS5 代理(--socks5-hostname)的方法,认证、响应时间测量、批量测试列表脚本整理。SeleniumSelenium中Chrome和Firefox连接HTTP·SOCKS5代理的方法,Chrome中使用IP认证的原因和设置,多浏览器并行执行总结。Puppeteer整理Puppeteer中通过--proxy-server连接HTTP/SOCKS5代理、用page.authenticate传递认证信息的方法,以及浏览器独立IP分配方案。Playwright整理Playwright中通过proxy选项连接HTTP/SOCKS5代理的方法、按上下文分配不同IP的技巧,以及Python和Node.js示例。ScrapyScrapy中使用HttpProxyMiddleware和meta proxy连接代理的方法,每次请求轮换IP的下载器中间件,速度设置总结。

连接代理需要哪些信息?

每行代理信息包含IP地址、HTTP端口、SOCKS5端口、用户名和密码。可通过控制台查看或下载指定格式列表,API也可获取相同数据。

本文所有示例使用IP 198.51.100.23,HTTP端口8000,SOCKS5端口1080,用户名spx_user,密码spx_pass。注意198.51.100.0/24为文档专用地址,实际使用时请替换为您代理列表中的真实值。

提供两种认证:用户名密码组合,或在仪表板预存最多10个服务器IPv4实现IP认证(仅需ip:port连接)。适合Chrome启动参数等无法接收密码的工具。

项目示例值说明
IP198.51.100.23代理服务器地址
HTTP端口8000HTTP与HTTPS(CONNECT)连接
SOCKS5端口1080SOCKS5 TCP连接
用户名spx_user用户名·密码认证
密码spx_pass用户名·密码认证

使用HTTP还是SOCKS5连接?

绝大多数网页和API请求任务使用HTTP端口即可。HTTPS地址同样通过CONNECT方式加密传输,代理不会修改内容。

SOCKS5不仅可以传输HTTP连接,还可以传输TCP连接,并且可以在代理端进行域名解析。Python使用socks5h,cURL使用--socks5-hostname,这样我的服务器的DNS请求就不会暴露出去。同一个IP有两个端口,选择工具支持的方式即可。

如何通过代码获取并使用列表?

API密钥需在控制台的[API密钥]页面创建,创建后请立即安全保存。所有请求需携带Authorization: Bearer头。以下是通过API获取SOCKS5代理列表(user:pass@ip:port格式)的Python示例,各工具连接方法详见对应指南。

import requests

API = "https://socks5proxy.io/api/v1"
KEY = "YOUR_API_KEY"

# Download the proxy list as plain text, one proxy per line
r = requests.get(
    API + "/proxies/download",
    params={"format": "user:pass@ip:port", "protocol": "socks5"},
    headers={"Authorization": "Bearer " + KEY},
    timeout=30,
)
r.raise_for_status()
proxies = [line.strip() for line in r.text.splitlines() if line.strip()]
print(len(proxies), "proxies loaded")

应该从哪个指南开始?

选择符合您编程语言和工具的指南。所有指南均包含连接验证方法、故障排查要点及IP分配技巧。

  • Python requests:最简单的HTTP/SOCKS5连接与IP轮换
  • Node.js: undici ProxyAgent(HTTP)与socks-proxy-agent(SOCKS5)
  • cURL:在命令行中测试连接和测量响应时间
  • Selenium:Chrome和IP认证,Firefox设置
  • Puppeteer: --proxy-server与page.authenticate
  • Playwright: 浏览器与上下文独立代理
  • Scrapy:每次请求使用meta proxy和循环中间件

应选择哪种列表格式?

不同工具接受的格式不同,下载列表时可以选择格式。大多数库接受地址格式(http://user:pass@ip:port或socks5://user:pass@ip:port)。对于设置项分为IP、端口、用户名、密码的程序,使用ip:port:user:pass格式更容易拆分输入。

使用IP授权时选择ip:port格式即可。电子表格场景推荐CSV格式,可分别获取HTTP和SOCKS5端口列表。

格式示例适合的场景
ip:port:user:pass198.51.100.23:8000:spx_user:spx_pass分栏式设置界面
user:pass@ip:portspx_user:spx_pass@198.51.100.23:8000代码中的地址拼接
http://user:pass@ip:porthttp://spx_user:spx_pass@198.51.100.23:8000requests, cURL, Scrapy
socks5://user:pass@ip:portsocks5://spx_user:spx_pass@198.51.100.23:1080SOCKS5库
ip:port198.51.100.23:8000IP授权与浏览器启动参数
CSVip,http_port,socks_port,user,pass,country表格计算,管理文档

如何安全存储代理信息?

切勿将代理账号密码和API密钥提交到代码仓库,请使用环境变量或密钥管理工具存储。若意外提交,请立即在控制台重新生成API密钥使旧密钥失效。

若服务器使用固定IP,IP授权是最安全的方式。即使代理列表外泄,未注册的IP也无法连接。最多可添加10个允许IP,并随时更改。

团队成员较多时,与其共享列表文件,不如通过API各自获取更易管理。API调用记录也有助于问题排查。

连接失败时如何排查?

先用cURL测试单行请求验证代理连通性。407响应表示账号密码错误,若使用IP认证请确认服务器IP已加入白名单。连接超时请检查端口配置(不同代理的HTTP端口如8000与SOCKS5端口如1080可能不同)。

如果问题仍未解决,您可以在仪表板的客服中心提交咨询。请提供使用的行、工具和错误信息,以便快速确认。

代理连接指南:Python/Node.js/Selenium设置 | Socks5Proxy