如果你去搜索免费代理列表,三十秒之内就能找到一份。有几十个站点在发布成千上万组 IP 与端口,按分钟更新,可以按国家和匿名等级筛选,还能下载成文本文件。这些供给是真实存在的,也确实免费。
更难回答的问题是:把这些 IP 粘贴进爬虫之后会发生什么。这件事其实已经被测量过两次,规模都不小,研究者也公开了自己的方法。其中一项研究追踪了 107,000 多个被列出的开放代理,累计发起 13M 次请求;另一项则在 30 个月里跟踪了 640,600 个代理。它们的结论,比又一份排行榜要有用得多。
本文覆盖两个部分:先看现有的免费代理列表,以及每一份实际能给你什么;再看这些测量数据在可用性、流量完整性以及真实运行成本上说明了什么。文章最后会补上大多数同类文章都跳过的一点:“免费代理”其实指向两种完全不同的产品,而只有其中一种适合出现在生产环境附近。
被叫做免费代理的是两种东西
第一类是开放代理聚合列表。发布方扫描互联网,寻找愿意为任何人转发流量的主机,检测它们是否响应,然后把有响应的那些公布出来。发布方并不拥有这些机器,也和机器的主人没有任何关系。你借用的是一台陌生人的服务器,而你和发布方都不知道这个陌生人为什么愿意让你用。
第二类是商业厂商的免费额度或试用。一家运营代理网络的公司免费切给你一小块按量计费的资源:固定的请求数、带宽上限,或者有时限的试用。这些 IP 来自公司自己采购、有据可查、并且需要为之负责的基础设施。
两者都被叫作“免费代理”,但表现完全不同。下文提到的所有测量结果都针对第一类。理解这个区分,基本上就区分了一个能干活的爬虫和一个悄悄收集垃圾数据的爬虫。
点名这些免费代理列表
下面是这个关键词下出现频率最高的聚合站点,以及每一家实际提供的东西。池子规模是撰写时发布方自己给出的说法,而且它们一直在变,这本身也是故事的一部分。
| 来源 | 列出的池规模 | 覆盖范围 | 协议 | 导出方式 | 刷新频率 |
|---|---|---|---|---|---|
| ProxyScrape | 20,000+ 个存活 | 180+ 个国家 | HTTP、HTTPS、SOCKS4、SOCKS5 | TXT、JSON、CSV、免费 API | 约 1 分钟 |
| ProxyNova | 每日检测 1M+ 个 | 240+ 个国家和地区 | HTTP | 仅网页表格 | 约 15 分钟 |
| Spys.one | 28,000+ | 160 个国家 | HTTP、HTTPS、SOCKS5 | 无,需手动挑选 | 不固定 |
| ProxyDB | 27,000+ | 100+ 个地区 | HTTP、HTTPS、SOCKS5 | 可提取 | 不固定 |
| Hidemy.name | 10,000+ | 60 个国家 | HTTP、HTTPS、SOCKS5 | 付费导出 | 1 分钟到 4 小时 |
| Geonode | 约 6,200 个在线 | 96 个国家 | HTTP、HTTPS、SOCKS4、SOCKS5 | TXT、CSV、API | 持续更新,24 小时后剔除 |
| free-proxy-list.net | 4,748 个,分布在 2,643 个子网 | 105 个国家 | 逐条标注 HTTP、HTTPS | 仅网页表格 | 约 30 分钟 |
把这些站点的小字条款读一遍,有一点会变得很清楚:它们大多把这件事的性质说得明明白白。ProxyScrape 写道,“我们提供的代理是公共代理,这意味着代理可能已被感染。”Geonode 提醒,免费公共代理“可能会记录流量、注入广告,或者本身就是蜜罐”,并补充说,“绝不要通过免费代理发送敏感数据。”free-proxy-list.net 则把自己的库存描述为“不稳定、通常很慢,但非常便宜”,并指出这些代理在主流站点上不起作用。
这里的问题不在发布方身上,这一点值得说准确。它们只是索引机器,并不运营机器。下文测量到的一切,都是那些匿名运营者的属性,正是他们的服务器最终出现在这些列表里。
测量结果之一:几乎没有代理会应答
代理列表上那个醒目的数字,并不是可用代理的数量,而是条目的数量。
在An Extensive Evaluation of the Internet's Open Proxies(Mani、Vaidya、Dworken 与 Sherr,ACSAC 2018)中,研究者从聚合站点抓取了 107,000 多个被列出的开放代理,在 50 天内向它们推送了 13M 次请求。他们的结论是:出现在聚合站点上的开放代理中,超过 92% 没有任何响应。
Free Proxies Unmasked(Mehanna、Rudametkin、Laperdrix 与 Vastel,MADWeb 2024)跟踪的时间更长、范围更广,在 30 个月里追踪了来自 11 家提供方的 640,600 个代理。他们给出的可用性数字是:在整个观测窗口内,只有 34.5% 曾经活跃过哪怕一次。
这两项研究给答案划出了区间。一份已发布列表中,大约只有三分之一到十二分之一会有任何响应,而响应过一次并不等于可用。Proxyway 的实测从一份热门列表里取了 35 个地址,最初有 15 个可用,半小时后仍有 11 个可用。
这就是为什么免费代理池在五分钟的试用里看起来能用,一放进定时任务就崩掉。少数几个存活的代理,足够你手动抓一个页面;而一个需要持续吞吐的刷新周期,大部分时间都在对着你下载列表之后就不再应答的地址等待超时。
测量结果之二:有些代理会篡改你的流量
可用性只是无聊的那种失败。有意思的是,其中相当一部分主机会修改经过它们的内容。
MADWeb 2024 那项研究在追踪的 640,600 个代理里发现了 16,923 个会篡改内容的代理。研究者还扫描了这些代理 IP 本身,登记了 4,452 个不同的漏洞,其中 1,755 个可用于远程代码执行,2,036 个可用于权限提升。对于“这些东西究竟由谁在运行”这个问题,最能说明情况的一点是:其中 42,206 个看起来运行在 MikroTik 路由器上,也就是说,是消费级和小微企业的网络设备,而不是任何像代理服务的东西。
ACSAC 2018 那项研究记录了具体的行为。研究者观察到 TLS 中间人攻击、被重写以注入加密货币挖矿代码的 HTML,以及在传输途中被改写、携带远程访问木马的二进制文件。作为对照,同一团队测量了 Tor 出口节点,没有发现任何 TLS 拦截或内容篡改的实例。这提醒我们:问题出在匿名开放代理这种特定的激励结构上,而不是中转流量本身。
请求 https:// 目标可以防止被动型代理读取或编辑页面正文,也能挫败上面提到的大部分注入行为。但它并不能让一个来历不明的代理变得安全。运营者仍然能看到你访问的每一个主机名和每次请求的时间,可以有选择地拒绝或拖慢连接,还可以向任何粗心到跳过校验的客户端出示自己的证书。把加密当作损害控制,而不是当作许可。
它们为什么是免费的
“免费”这个词意味着有人在承担成本。对聚合代理来说,四种解释几乎能覆盖全部情况,而只有第一种是无辜的。
- 配置失误。这台主机本来就不该是开放代理。路由器或缓存服务器上的默认设置,让它替整个互联网转发流量。MADWeb 数据里那 42,206 台 MikroTik 设备就是这种情况,而且是大规模的,机主几乎肯定毫不知情。
- 采集流量。运行一个代理是收集别人请求流的廉价手段:主机名、请求头、Cookie、会话令牌,以及任何未加密发送的内容。流量本身就是产品。
- 注入内容。如果内容以未加密方式经过,它就可以被编辑。已发表的研究结果包括广告、联盟链接改写和挖矿脚本,它们把你的带宽和你用户的 CPU 变成收入。
- 观察流量。有些开放代理是蜜罐,由研究人员、安全厂商或网络运营方架设,目的是看看有什么流量经过。意图是善意的,但你的流量依然多了一位观众。
这些都不需要谁是高水平的攻击者。它们只需要一台会转发数据包的机器,和一份把它宣传出去的列表。
免费代理池的算术
使用免费列表的理由是它不花钱。可这个理由只有在你的时间不值钱、失败请求也不花成本时才成立,而过了原型阶段,两者都不成立。
用你自己的数字把这个模型算一遍。如果一个任务需要 S 次成功抓取,而代理池的转化率是 p,那么你大约要发起 S / p 次尝试。按上面测得的存活率,对一份你一小时前下载的列表来说,p 落在 0.3 到 0.4 之间已经算乐观,于是一个 50,000 页的任务会变成 125,000 到 165,000 次尝试,其中大多数是超时,而不是快速被拒。超时是代价最高的那种失败,因为每一次都会占住一个工作线程好几秒。
然后再加上那些不会出现在请求计数器里的部分:
- 反复下载并重新校验列表,因为条目会在你使用期间失效。
- 搭建并维护健康检查、重试逻辑和失效代理剔除机制。这是一个小型分布式系统,而现在它归你维护了。
- 重跑那些完成时留下静默缺口的批次,这是代价最高的失败模式,因为你只会在下游的数据里才发现它。
- 核实采集到的语料中没有任何内容在传输途中被修改过。
一位工程师每月为此花两天,成本就已经超过一份付费套餐,而且没有产出任何产品。我们那份代理厂商评分标准更详细地讨论了同一笔权衡。
什么时候免费代理列表是对的工具
这里确实有一个真实的答案,装作没有就不诚实了。当代价为零时,聚合列表是真的有用。
-
学习机制。在 curl、在
requests,或者在你所用语言的 HTTP 客户端里配置一个代理,看着自己的对外 IP 发生变化,这是一个值得做的练习,而免费代理完全够用。 - 对某个公开页面做一次用完即弃的抓取。不带凭据,不带会话,不涉及任何你在意的东西。
- 检查公开内容是否随国家而变,在投入真正的地理定向之前作为一个粗略的信号。
- 测试你自己的代码路径能否处理代理失败,在这件事上,一个不可靠的代理池可以说是理想的测试装置。
要守住的底线是:绝不要通过来历不明的代理发送任何你不愿意让陌生人留存的东西。也就是说,不要传登录信息、API 密钥、Cookie、个人数据,以及任何你日后打算相信其完整性的内容。我们关于代理是否安全的文章列出了向任何厂商追问来源时该问的问题,而轮换住宅代理的全景说明了免费代理池相对付费方案处于什么位置。
真正能用的免费额度
回到本文开头的那个区分。如果你想要的是暂时不花钱就能抓取,答案不是一份陌生人路由器的清单,而是一块有主人的、按量计费的基础设施。这样的选择有好几个。Webshare 提供 10 个静态数据中心 IP 和每月 1 GB 流量。Oxylabs 提供一个仅限美国的免费额度,每月上限 5 GB。
Crawlbase Smart AI Proxy 给你 5,000 次额度,无需信用卡,背后是 140M 住宅 IP 的池子,地理定向覆盖 45+ 个国家,平均成功率 99%,并且带宽不限。封锁和验证码在端点内部就被处理掉,而不是丢进你的重试循环。
运营层面的差别比池子大小更重要。只有一个主机名和一个端口。没有列表要下载、校验、轮换或剔除,因为轮换发生在上游,每个请求都从一个新的 IP 发出。
curl -x 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013' \ -k 'https://httpbin.org/ip'
你的令牌就是用户名,密码留空。端口 8013 是 HTTPS 代理,也是推荐使用的那个;8012 以纯 HTTP 与代理通信,供必须这样做的客户端使用。两个端口都能处理 HTTP 和 HTTPS 目标。字典的键命名的是目标地址的协议,每个条目都使用其端口所要求的协议:HTTP 代理在 8012 上响应,HTTPS 代理在 8013 上响应。用 Python 做同一件事:
import requests proxies = { 'http': 'http://YOUR_TOKEN:@smartproxy.crawlbase.com:8012', 'https': 'https://YOUR_TOKEN:@smartproxy.crawlbase.com:8013', } res = requests.get('https://httpbin.org/ip', proxies=proxies, verify=False) print(res.text)
Smart AI Proxy 会终止 TLS,以便附加自己的控制请求头,因此你的客户端看到的是 Crawlbase 的证书,而不是目标站点的证书。这就是示例里传入 -k 和 verify=False 的原因。这是整套配置唯一偏离普通正向代理的地方,值得理解而不是照抄:你选择信任的是一家有合同约束、有名有姓的厂商,这和对一台匿名主机跳过校验是完全不同的决定。
逐请求的地理定向、设备类型和粘性会话是通过请求头设置的,而不是靠切换端点;如果你只想要轮换而不需要 AI 层,那只是一个配置选项,标准轮换与 AI 层的对比一文有详细说明。
在几种方案之间做选择
| 聚合列表 | 商业免费额度 | Smart AI Proxy | |
|---|---|---|---|
| 谁在运营这些 IP | 未知 | 具名公司 | 具名公司 |
| 有应答的比例 | 实测 34.5% 到 8% | 基本全部 | 平均成功率 99% |
| 轮换 | 自己搭建 | 视情况而定,常为静态 | 上游完成,逐请求轮换 |
| 封锁与验证码 | 你自己的问题 | 你自己的问题 | 在端点内处理 |
| 可否用于会话或凭据 | 不可以 | 可以 | 可以 |
| 流量完整性 | 已知 16,923 个会篡改 | 有合同保障 | 有合同保障 |
| 诚实的适用场景 | 学习、用完即弃的抓取 | 小任务、评估 | 生产环境抓取 |
如果你在挑厂商之前还在决定一个任务需要哪种 IP,那么数据中心与住宅代理的对比和按目标站点匹配代理类型是接下来该读的两篇。至于轮换本身的实现机制,逐请求轮换与粘性会话里有代码。
简短版本
免费代理列表是真实的、数量众多的,而且大多已经失效。两项经过同行评审的研究把可用比例定在 8% 到 34.5% 之间,而发布方自己就把这些库存描述为可能已被感染的公共机器。已经观察到数千台这样的主机在篡改流量,其中数万台是某个人配置错误的路由器,而维持这样一个代理池存活所需的人力,比一份套餐更贵。
如果需求真的是“暂时没有预算”,那就选一个有名有姓的运营方提供的按量免费额度。你在第一个请求就能拿到一个可用的 IP,而不是一队超时,也不必把“被人读取流量”当成入场费。
一个端点,140M 个轮换住宅 IP,地理定向覆盖 45+ 个国家,平均成功率 99%,封锁和验证码在响应到你手上之前就已清除。没有列表要下载、校验或照看。先用 5,000 次额度开始,无需信用卡。
常见问题
免费代理适合用于网页抓取吗?
对任何你在意的事情都不适合。一项经过同行评审的测量在 640,600 个免费代理中发现 16,923 个会修改经过它们的内容;更早的一项针对 107,000 个代理的研究,记录了 TLS 拦截、被注入的加密货币挖矿脚本,以及在传输途中被改写以携带远程访问木马的二进制文件。有几家列表发布方自己也这么说,ProxyScrape 自己的页面就指出它的代理“可能已被感染”。把它们用于学习和对公开页面的一次性抓取可以,但绝不要用于登录、API 密钥、Cookie、个人数据,或任何你打算相信其完整性的语料。
免费代理为什么是免费的?
四个原因能覆盖其中的大多数。很多只是配置失误:一项研究发现 42,206 个看起来运行在 MikroTik 路由器上,而机主几乎肯定并不想运营一个公共代理。另一些存在的目的是采集流经它们的流量、向未加密页面注入广告或挖矿代码,或者作为蜜罐观察流量。总有人在为带宽付钱,而流量通常就是那笔钱。
一份免费列表里到底有多少代理真的能用?
远少于那个醒目的数字。ACSAC 2018 的研究发现,聚合列表上的开放代理中超过 92% 没有响应。MADWeb 2024 的研究发现,640,600 个代理里只有 34.5% 在 30 个月内活跃过哪怕一次。流失还会在你工作期间继续:一次独立实测从某份列表取了 35 个地址,最初有 15 个存活,30 分钟后仍有 11 个存活。一个公布出来的 20,000 规模的池子,是一张 20,000 行的表格,而不是 20,000 个可用 IP。
免费代理列表和免费代理试用有什么区别?
区别在于可追责性。列表索引的是陌生人运行的机器,这些人和你、和发布方都没有任何约定。试用或免费额度则是某家公司运营、记录在案、并需要为之负责的网络中按量切出的一块。这两个说法很像,两种产品却没法比较;本文里所有关于可用性和完整性的结论,都只适用于前一种。
我能把免费代理列表用在生产环境的爬虫上吗?
能,只是成本会从别处冒出来。按大约三分之一的存活率,每 50,000 次成功抓取大约需要 150,000 次尝试,其中大多是缓慢的超时,此外还要加上列表重新校验、健康检查、失效 IP 剔除,以及为那些完成时留有静默缺口的批次重跑。那是一个压在你真正工作底下、没人付钱的分布式系统项目,它耗掉的工程时间通常比一份套餐花的钱更多。
用 HTTPS 就能让免费代理变安全吗?
有帮助,但不够。加密让被动型代理无法读取或编辑页面正文,也就化解了研究者记录到的大部分注入行为。运营者仍然会知道你在什么时候请求了哪些主机名,可以有选择地拖慢或断开连接,还可以向任何跳过校验的客户端出示自己的证书。HTTPS 缩小了影响范围,但并不能把一台匿名主机变成一台可信的主机。
大规模爬取任何站点,无需与基础设施对抗。
Crawlbase 负责处理代理、指纹和 CAPTCHA,让你的团队专注于交付数据流水线,而非维护爬取管道。1,000 次请求免费,无需信用卡。
