ProxyScrape 设置指南:端点与你的第一个已验证请求
一份适合初学者的演练,带你从空的 ProxyScrape 账户走到一个已验证的代理请求:如何选择代理类型和协议,构建正确的 HTTP 或 SOCKS5 端点字符串,在任意桌面操作系统上用 curl 测试它,并将其应用到浏览器
概述
本指南是针对 ProxyScrape 的首次运行设置演练。它将带你从空账户走到一个已验证的代理请求,并解释你之后会在脚本、浏览器配置文件和应用程序设置中复用的端点字符串。不假设你具备任何代理经验。
阅读完本指南后,你将能够:
- 在住宅、数据中心和移动代理之间,以及在 HTTP 与 SOCKS5 之间进行选择。
- 根据 ProxyScrape 仪表盘中的连接详细信息构建有效的端点字符串。
- 确认流量确实通过代理而不是你自己的连接离开。
- 将同一端点应用到桌面浏览器,而不会破坏 HTTPS。
开始之前
- 一个有效的 ProxyScrape 套餐。提供住宅、数据中心和移动代理,计费方式可以是按量付费或按月固定费用。
- 来自 ProxyScrape 仪表盘的连接详细信息:代理主机名、端口、用户名和密码。这些信息因产品而异,因此请复制它们,而不是猜测。
curl,它随 Windows 10 及更高版本、macOS 和大多数 Linux 发行版一起提供。- 一个测试目标。示例使用公共 IP 回显服务
api.ipify.org和ipinfo.io,因此你不需要托管任何东西。
选择代理类型
| 你的任务 | 代理类型 | 为什么适合 |
|---|---|---|
| 从固定机器进行快速自动化 | 数据中心 | 延迟更低,长连接稳定 |
| 会屏蔽托管 IP 段的站点 | 住宅 | 请求看起来来自普通家庭连接 |
| 应用或运营商级测试 | 移动 | 出口 IP 与移动网络绑定 |
ProxyScrape 宣称拥有超过 9700 万个 IP 的池。特定国家或城市的可用性取决于你选择的产品和套餐,因此在围绕它们设计工作流之前,请先在仪表盘中确认定位选项。
选择协议
- HTTP/HTTPS:支持最广泛。每个浏览器、大多数 CLI 工具和大多数库都接受它。HTTPS 目标通过 CONNECT 隧道访问。
- SOCKS5:与协议无关,因此它也能承载非 HTTP 的 TCP 流量。当某个工具不支持 HTTP 代理时选择它,并且当你希望由代理解析 DNS 名称而不是由你自己的机器解析时,使用
socks5h://形式。
端点格式
每个代理连接都归结为一个如下形式的字符串:
<scheme>://<username>:<password>@<proxy-host>:<port>
具体来说:
http://<username>:<password>@<proxy-host>:<port>
socks5://<username>:<password>@<proxy-host>:<port>
socks5h://<username>:<password>@<proxy-host>:<port>
有两个细节容易让人出错:
- 对于 HTTPS 目标,你通常仍然在 scheme 中写
http://。curl 会打开一个 CONNECT 隧道,TLS 握手端到端进行。只有当你的提供商明确给你一个受 TLS 保护的代理端点时,才使用https://scheme。 - 主机和端口因产品而异。绝不要复用博客文章中的端口;请从你自己的仪表盘复制这两个值。
步骤
步骤 1:收集你的凭据
- 登录你的 ProxyScrape 账户,并打开你要使用的套餐的连接详细信息。
- 记下代理主机名和端口。
- 如果你的套餐使用用户名和密码认证,请记下用户名和密码。
- 如果你的套餐改为通过 IP 地址授权你,请在测试前在仪表盘中注册将要发送请求的机器的公网 IP。
步骤 2:构建端点字符串
- 将这四个值代入模板。
- 保留凭据和主机之间的
@。 - 如果这些字符出现在你的密码中,请对其进行百分号编码:
@、:、/、?、#、%。例如,p@ss变成p%40ss。
http://<username>:<password>@<proxy-host>:<port>
步骤 3:将端点存储在环境变量中
将凭据排除在一次性命令之外,可防止它泄漏到 shell 历史记录、日志和截图中。
export PROXY_URL='http://<username>:<password>@<proxy-host>:<port>'
步骤 4:发送你的第一个请求
macOS 和 Linux
curl -x "$PROXY_URL" -sS https://api.ipify.org
Windows (PowerShell)
$env:PROXY_URL = 'http://<username>:<password>@<proxy-host>:<port>'
curl.exe -x $env:PROXY_URL -sS https://api.ipify.org
在 PowerShell 中,curl 是 Invoke-WebRequest 的别名,它不接受相同的标志。请始终调用 curl.exe。
步骤 5:证明请求已通过代理
在不使用代理的情况下运行相同请求,并比较结果。
env -u ALL_PROXY -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy curl -sS https://api.ipify.org
两个 IP 必须不同。如果它们相同,说明从未使用代理:检查 scheme、主机,以及任何可能覆盖你设置的全局代理变量。
步骤 6:确认位置和网络
curl -x "$PROXY_URL" -sS https://ipinfo.io/json
检查 ip 属于该代理,country 和 city 与你选择的定位匹配,并且 org 显示的是代理网络而不是你自己的互联网服务提供商。对于使用远程 DNS 的 SOCKS5:
curl -x 'socks5h://<username>:<password>@<proxy-host>:<port>' -sS https://api.ipify.org
步骤 7:将端点应用到浏览器
- Windows: 设置,然后网络和 Internet,然后代理,然后手动代理设置。输入主机和端口。Windows 在此处理 HTTP 和 HTTPS 目标;对于 SOCKS5,请使用 Firefox 或支持 SOCKS 的客户端。
- macOS: 系统设置,然后网络,然后你的连接,然后详细信息,然后代理。启用网页代理 (HTTP) 和安全网页代理 (HTTPS),或为 SOCKS5 启用 SOCKS 代理,然后输入主机和端口。
- Firefox(所有平台): 设置,然后网络设置,然后手动代理配置。Firefox 原生支持 SOCKS v5,并在使用 SOCKS v5 时提供一个用于代理 DNS 查找的复选框,这与
socks5h行为很好地配合。 - Chrome 和 Edge: 它们在 Windows 和 macOS 上读取操作系统代理。
--proxy-server命令行标志接受主机和端口,但通常以交互方式询问凭据,而不是从 URL 中读取它们。
保存设置后加载一个 HTTPS 站点,然后重新加载 IP 回显页面,以确认浏览器(而不仅仅是 curl)正在使用代理。
步骤 8:正确处理会话和轮换控制
如果你的套餐公开了会话或轮换控制,它们通常表示为用户名内的额外片段,并且确切语法因产品和套餐而异。请从连接详细信息面板中逐字复制该值,而不是猜测,因为错误的会话片段是认证失败的常见原因。
步骤 9:将凭据排除在版本控制之外
# .env - 在运行时加载这些内容,切勿提交该文件
PROXY_URL='http://<username>:<password>@<proxy-host>:<port>'
# .gitignore
.env
故障排除
| 症状 | 可能原因 | 修复方法 |
|---|---|---|
curl: (5) Could not resolve proxy |
主机名拼写错误 | 再次从仪表盘复制主机 |
curl: (7) Failed to connect to ... port |
端口错误,或端口与错误的协议配对 | 确认该端口属于你选择的产品和协议 |
407 Proxy Authentication Required |
凭据错误,或不需要的会话片段 | 重新粘贴用户名和密码;如果你的套餐使用 IP 授权,请检查你的公网 IP 是否已注册 |
| HTTP 站点可加载但 HTTPS 站点失败 | 代理未接受 CONNECT 隧道,或你使用了错误的端口 | 使用 curl -x "$PROXY_URL" -I https://example.com 重新测试 |
| SOCKS5 请求在主机名上失败 | DNS 正在本地解析 | 从 socks5:// 切换到 socks5h:// |
| 目标站点返回 403 或 429 | 目标屏蔽了该 IP 段,或者你发送了过多请求 | 从数据中心 IP 切换到住宅或移动 IP,降低并发,并增加延迟 |
| curl 可用但浏览器不可用 | 浏览器未使用系统代理 | 在应用内配置代理,或使用 Firefox 并手动设置代理 |
总结
- 选择与任务匹配的代理类型和协议,然后从 ProxyScrape 仪表盘准确复制主机、端口和凭据。
- 每个连接都是一个 URL:
<scheme>://<username>:<password>@<proxy-host>:<port>。当你希望由代理解析 DNS 时,使用socks5h://。 - 在构建之前先验证:发送一个通过代理的请求和一个直接请求,并确认 IP 不同。
- 将凭据视为机密:在本地使用环境变量,将
.env列在.gitignore中,绝不要硬编码在共享脚本里。