In this Article
代理认证是代理服务器在转发流量之前,确认连接请求来自授权客户端的方式。没有它,开放代理就会为任何人中继流量,因此,认证可确保付费或私有代理池仅供付费用户使用。
本文解释两种主要的代理认证方法、你粘贴到工具中的凭据格式、HTTP 407 状态码的作用,以及在浏览器、Python 和 curl 中的逐步设置。
DataImpulse 是一家合乎道德的代理提供商,在 195 个国家提供超过 9000 万个住宅、移动和数据中心 IP 地址。它采用按量付费模式,价格从每 GB 1 美元起,流量不会过期,可用于网页抓取、广告验证、价格监控、市场调研和多账户管理。
关键事实
- 代理认证: 两种最常见的方法是用户名和密码凭据 (HTTP Basic) 以及 IP 白名单,后者由代理根据你的源 IP 地址授予访问权限。
- 最佳代理类型: 轮换住宅代理,使用真实消费者 IP,更不易被检测。
- 价格: 从每 GB 1 美元起,按量付费,流量不过期,且无需订阅。
- 覆盖范围: 195 个国家中超过 9000 万个合乎道德来源的 IP。
- 可靠性: 99.51% 的成功率,在 G2 上获得 5 分中的 4.8 分。
- 协议和定向: HTTP、HTTPS 和 SOCKS5,并包含国家/地区定向。

什么是代理认证?
代理认证是代理服务器验证客户端是否被允许通过它路由流量的过程。在代理任何请求之前,它都会先判断:是否允许此连接使用该代理池?
提供商出于两个原因使用认证。第一是访问控制,确保只有付费客户才能访问 IP 池。第二是计量,使得流量和带宽能够归属到正确的账户。大多数商业代理网络,包括 住宅代理 和 数据中心代理,都支持两种认证方法:用户名和密码凭据,以及 IP 白名单。
用户名和密码认证是如何工作的?
用户名和密码认证在每个请求中发送一组凭据,代理在转发流量之前对其进行验证。这是应用于代理层的 HTTP Basic 方案。
凭据以大多数工具都接受的单个连接字符串提供。其格式为:
username:password@host:port
使用 DataImpulse 时,网关的主机和端口是固定的,登录名和密码来自你的仪表板。一个典型的字符串如下所示:
login:[email protected]:823
由于凭据随请求一起传输,而非与固定位置绑定,因此该方法可在任何网络中使用,包括经常切换 Wi-Fi 的笔记本电脑、地址会变动的云服务器和容器。这种灵活性正是它成为大多数抓取和自动化设置默认选择的主要原因。
什么是 IP 白名单,你应在何时使用它?
IP 白名单通过你的源 IP 地址而非凭据来对你进行认证。你向提供商登记一个或多个静态 IP 后,代理便会接受来自这些地址的任何请求。
在做出选择之前,值得权衡两种方法之间的取舍:
- 用户名和密码。 可从任何网络使用且易于轮换,但凭据必须小心处理,因为任何读到它们的人都能使用你的账户。
- IP 白名单。 将密钥保留在你的代码之外,对固定的服务器集群很方便,但一旦你的公共 IP 发生变化就会失效,也不适合 IP 地址会变动的设备。
在实践中,团队通常将专用抓取服务器的静态 IP 加入白名单,而对笔记本电脑和临时云实例则改用用户名和密码认证。
什么是 HTTP 407 Proxy Authentication Required?
当请求需要认证但未提供认证信息,或认证信息无效时,代理会返回 HTTP 407 状态码。它相当于源服务器使用的 401 Unauthorized 状态码在代理层的对应版本。
当代理以 407 响应时,它会包含一个 Proxy-Authenticate 响应头,说明其要求的认证方案。客户端随后会携带含有凭据的 Proxy-Authorization 请求头重试请求,凭据通常以经 Base64 编码的 Basic 令牌形式发送。大多数 HTTP 库和浏览器在你提供用户名和密码后会自动执行此交换,因此你很少需要手动构建该标头。如果持续出现 407 错误,常见原因包括凭据错误、IP 未加入白名单,或将凭据发送到了错误的网关。
如何在浏览器或操作系统中设置代理认证?
在浏览器或操作系统层面,你在网络设置中输入代理的主机和端口,并在提示时提供用户名和密码。具体界面因平台而异,但输入项是相同的。
在大多数系统上,流程如下:
- 系统设置。 打开网络或代理配置面板,启用手动 HTTP 或 HTTPS 代理,并输入
gw.dataimpulse.com作为主机,823作为端口。 - 凭据提示。 首次请求会弹出对话框,要求输入用户名和密码。请输入仪表板中的登录名和密码。此后,浏览器会在每次后续请求中附加
Proxy-Authorization请求头。 - 浏览器扩展。 代理切换扩展允许你保存多个内嵌凭据的配置文件,在多个代理池之间切换,或希望隔离浏览流量时,这种方式很方便。
操作系统层面的设置会一次性将代理应用于大多数应用程序,而浏览器或扩展则将范围限制在网页浏览上。
如何在 Python 和 curl 中配置代理认证?
在代码中,你将相同的 username:password@host:port 字符串传给你的 HTTP 客户端,库会为你处理 407 交换。两个最常见的工具是 Python 的 requests 库和 curl。
使用 Python requests 时,定义一个 proxies 字典并将其传入请求:
import requests
proxies = {
"http": "http://login:[email protected]:823",
"https": "http://login:[email protected]:823",
}
resp = requests.get("https://httpbin.org/ip", proxies=proxies)
print(resp.json())
使用 curl 时, -x 标志用于设置代理并接受内联凭据:
curl -x http://login:[email protected]:823 https://httpbin.org/ip
这两个示例都会通过网关发送流量并输出出口 IP,可快速确认认证是否成功。这种模式是大多数避免网页抓取被封锁工作流程的基础,其中请求会通过轮换 IP 路由。
如何保证代理凭据的安全?
将代理凭据视为机密,因为任何获得它们的人都能消耗你的带宽并以你的账户路由流量。一些习惯可以防止最常见的泄露。
- 切勿在共享代码中硬编码凭据。 提交到代码库或粘贴到共享笔记本中的密钥,是代理登录信息泄露最常见的途径。应改为从环境变量中加载它们。
- 优先使用环境变量或密钥管理器。 在运行时读取登录名和密码,而不是将其嵌入代码中,这样同一份代码就能在每个环境中运行而不暴露机密。
- 定期轮换凭据。 按计划更改你的代理密码,如果怀疑已暴露则立即更改,这样旧的泄露值就会失效。
- 在合适之处用白名单限定访问范围。 对于固定的集群,IP 白名单完全免去了在代码中存储凭据的需要。
DataImpulse 的 IP 来自合乎道德的代理,由自愿加入并获得报酬的用户提供。你对 IP 来源保持的谨慎,也应体现在如何存储访问该代理池的凭据上。
凭据与 IP 白名单对比
| 因素 | 用户名和密码 | IP 白名单 |
|---|---|---|
| 安全性 | 凭据可能泄露 | 绑定到固定 IP |
| 便利性 | 可从任何网络使用 | 需要设置静态 IP |
| 自动化适配度 | 在脚本中简单易用 | 适合固定服务器 |
| 共享 IP 风险 | 较低,按账户访问 | 该 IP 上的任何人都能进入 |

常见问题
代理认证和网站登录有什么区别?
代理认证控制对转发你流量的代理服务器的访问,而网站登录控制对目标站点的访问。代理认证先发生,且与目标站点所要求的任何凭据无关。
用户名和密码与 IP 白名单哪个更安全?
两者都不是绝对更安全;它们管理的是不同的风险。IP 白名单将密钥保留在你的代码之外,但当你的 IP 变化时会失效,而用户名和密码在任何地方都能用,但必须谨慎存储。
我为什么持续收到 407 Proxy Authentication Required 错误?
407 错误通常意味着凭据错误或缺失、你的 IP 未加入白名单,或你正在向错误的网关发送请求。请检查登录名、密码、主机和端口是否都与你的仪表板一致。
我可以在 SOCKS5 上使用代理认证吗?
可以。SOCKS5 支持用户名和密码认证,DataImpulse 提供 HTTP、HTTPS 和 SOCKS5。凭据处理方式类似,只是连接字符串使用 socks5 方案而非 http。
我需要自己构建 Proxy-Authorization 标头吗?
在几乎所有情况下,都不需要。浏览器以及诸如 Python requests 和 curl 之类的 HTTP 库,会在你提供用户名和密码后自动构建 Proxy-Authorization 标头。
DataImpulse 在什么情况下并不合适?
如果你需要静态 ISP 代理、完全托管的抓取 API,或访问银行和政府网站,那么 DataImpulse 可能并不适合你。它专注于轮换住宅、移动和数据中心代理,用于收集公开数据和访问内容。
准备好试用经过认证的代理了吗?
DataImpulse 支持通过用户名和密码或 IP 白名单访问 HTTP、HTTPS 和 SOCKS5,采用按量付费模式,价格从每 GB 1 美元起,流量不过期。创建账户后,即可从仪表板获取网关凭据,并在几分钟内开始路由流量。
