最顶  

FlareSolverr:分步指南 [2024]

从本质上讲,FlareSolverr 是绕过 Cloudflare 保护的代理服务器。 它是 Cloudflare 反僵尸措施与高效数据检索需求之间的桥梁。 通过利用 Python、Selenium 和 ChromeDriver 的强大功能,FlareSolverr 使您能够克服 Cloudflare 的挑战并无缝访问受保护的网站内容。

本指南全面介绍了 2024 年的 FlareSolverr。我们将仔细研究其在 Linux、Docker 和 Windows 上的安装。我们还将介绍其配置,从如何设置变量到为 Plex、Prometheus 以及 Jackett 和 Prowlarr 等其他应用程序进行配置。 

FlareSolverr 指南

免责声明: 免责声明:本材料仅供参考。它并不构成对任何活动(包括非法活动)、产品或服务的认可。在使用我们的服务或依赖此处的任何信息时,您全权负责遵守适用的法律,包括知识产权法。对于因以任何方式使用我们的服务或此处包含的信息而造成的损害,我们不承担任何责任,除非法律明确要求。

目录 

  1. Flaresolverr 简介
    • 什么是 Flaresolverr?
    • FlareSolverr 如何工作?
    • 使用 FlareSolverr 的优缺点
  2. 安装 Flaresolverr。
    • 在 Linux 上安装 Flaresolverr(通过终端)
    • 在 Docker 上安装 Flaresolverr
    • 在 Windows 上安装 FlareSolverr
  3. 配置 Flaresolverr
    • 更改环境变量
    • 为 Cloudflare 配置 FlareSolverr。
    • 为 Plex 配置 FlareSolverr。
    • 为 Prometheus 配置 FlareSolverr
    • 为其他应用程序配置 FlareSolverr。 
  4. 使用 Flaresolverr
    • 在 Linux 上使用 FlareSolverr 和 "curl "命令。
    • 将 FlareSolverr 与 Python Requests 库一起使用。 
  5. 结论 

1.Flaresolverr 简介

a.Flaresolverr 是什么,与 Cloudflare 有什么关系?

Cloudflare 提供的反僵尸保护工具主要用于维护网站安全(避免 DDoS 攻击)、性能和保护用户数据。

为了对付机器人和识别人类,CloudFlare(向浏览器)提出了涉及 JavaScript 代码和数学挑战的障碍。传统访问受 Cloudflare 保护的网站需要经历各种障碍,如指纹识别挑战、验证码和其他证明人机交互的测试。这些障碍基本上是为了阻止恶意僵尸行为而设置的。 

FlareSolverr 是一款开源代理服务器,用于应对(或绕过)Cloudflare 反僵尸措施带来的挑战。

FlareSolverr
照片来自 FlareSolverr

注意: 并非所有机器人都是为恶意行为而构建的!机器人只是执行任务的自动化程序。当然,有些机器人是为垃圾邮件、黑客攻击和欺诈等邪恶目的而设计的,但也有一些机器人是为合法使用情况而设计的。例如搜索引擎爬虫、聊天机器人、社交媒体机器人、网络清除器、监控和警报机器人、虚拟助手等。 

b.FlareSolverr 如何工作?

FlareSolverr 作为代理服务器运行,旨在规避 Cloudflare 的反僵尸协议。 它模拟实际浏览器的行为,因此可以应对挑战、进行安全检查和呈现网页内容。 

请参考下图。

  • 用户(即 Python HTTP 客户端)发起请求
  • FlareSolverr 等待用户请求(空闲状态),然后使用 Python Selenium未检测到的铬eDriver 创建网络浏览器(Chrome)实例。 
  • 然后,它将请求转发到网站(受 CloudFlare 保护)。它等待 Cloudflare 挑战被解决。 
  • 目标网站照常响应请求。Cloudflare 也会响应请求,因为其挑战已顺利解决。
  • HTML 代码会被刮除,cookie 会被发回给用户。
  • 由此产生的 HTML 代码和 Cookie 可供客户端与其他 HTTP 客户端(如 Python Requests)一起使用。
FlareSolverr 如何工作

c.优点和缺点。

FlareSolverr 是绕过 Cloudflare 反僵尸机制的重要工具。想要访问受 CloudFlare 保护内容的用户将受益于 FlareSolverr。不过,使用时也要注意一些缺点和注意事项。

优势

  • 自动旁路: FlareSolverr 的自动方法使您无需手动解决 Cloudflare 的难题。
  • 高效刮削: 使用 FlareSolverr,您可以从 Cloudflare CDN 托管的网站上高效地抓取数据。
  • 增强无障碍环境: 它能通过成功冒充真实网络浏览器,顺利访问受 Cloudflare 保护的内容。
  • 无缝集成: FlareSolverr 使用 Python Selenium未检测到的 ChromeDriver.这种集成可确保该解决方案轻松融入您现有的搜索工作流程。
  • 多功能性: 您可以将从 FlareSolverr 解决方案中获取的 HTML 代码和 cookie 与其他 HTTP 客户端(如 Python Requests)一起使用。 

了解如何 使用 Python 和 Requests 库进行网络搜刮 并将 FlareSolverr 集成到您的项目中。 

缺点

  • 法律和伦理问题: FlareSolverr 最重要的用途是其法律和道德问题。绕过反僵尸保护机制可能会违反某些网站或服务的使用条款。 
  • 网站稳定性: 使用 FlareSolverr 或类似工具绕过保护可能会给目标网站的服务器带来额外负担。
  • 资源消耗: 绕过 Cloudflare 的挑战需要启动额外的浏览器实例和解决 JavaScript 难题。这两项任务都会消耗更多的计算资源。
  • 依赖第三方服务: FlareSolverr 依赖于 Selenium、ChromeDriver 和其他第三方工具。因此,如果这些工具没有更新或失效,FlareSolverr 也会受到影响。 
  • 验证码挑战: 虽然 FlareSolverr 可以处理许多反僵尸机制,但在某些情况下可能会出现验证码。验证码的设计意图是让自动系统难以解决。 更新!截至 2023 年 8 月,FlareSolverr 的验证码解码器都无法正常工作。 

2.安装 Flaresolverr。

在本节中,我们将为您提供在不同操作系统上安装 FlareSolverr 的分步说明。我们将在 Linux(通过终端和无头浏览器)、Docker 和 Windows 上安装 FlareSolverr。 

免责声明: 本指南中的信息仅供一般用途,不保证准确、完整或最新。对于因使用本信息而造成的任何损失或损害,我们概不负责。与外部网站的链接并不表示我们认可这些网站,我们也不对其内容负责。使用 FlareSolverr 可能涉及法律问题,请确保遵守相关法律和使用条款。本指南不能替代专业建议。使用本指南即表示您同意这些条款。

a.在 Linux 上安装 FlareSolverr(通过终端)

在 Linux 上安装 Flaresolverr 是一个简单明了的过程,本指南将指导您完成在系统上启动和运行 Flaresolverr 的步骤。我们将在 Ubuntu 22.04 上安装 FlareSolverr。

先决条件

在开始安装过程之前,请确保您拥有 Python 和 Python 包管理器 (pip)。您需要使用 pip 来安装和管理 Flaresolverr 的依赖项。

安装步骤:

按照以下步骤在 Linux 系统上安装 Flaresolverr(预编译二进制文件):

  • 在 Linux 机器上启动终端窗口。 
  • 创建目录 保存 FlareSolverr 下载的位置。 

例如

  • 下载二进制文件: 您可以使用 wget 命令直接从 Flaresolverr 的官方 URL 下载二进制文件。 最新发布 并复制链接)
安装 FlareSolverr
  • 提取存档: 使用 tar 命令解压缩下载的存档内容:
  • 进入解压缩目录。
  • 现在可以使用 ./flaresolverr 命令运行 FlareSolverr:
FlareSolverr 启动

祝贺你 如果看到与上述类似的信息,则表示 FlareSolverr 已经启动并运行。输出结果表明网络浏览器安装测试成功,FlareSolverr 服务现已在 http://0.0.0.0:8191 上提供服务。

访问 FlareSolverr!

FlareSolverr 现在应在 Linux 机器后台运行。 地址 0.0.0.0 表示 Flaresolverr 绑定到主机上所有可用的网络接口。这意味着您可以使用机器的 IP 地址或主机名从同一网络上的任何设备访问 Flaresolverr。

故障排除 

我们通过虚拟机(无图形用户界面)运行 FlareSolverr,因此出现了以下错误。

  1. "如果您看到以下错误"加载共享库时出错:libatk-1.0.so.0:无法打开共享对象文件:No such file or directory" -- ERROR Chrome / Chromium version not detected!" 你需要为 Chrome 或 Chromium 浏览器安装必要的依赖项。 

发出以下命令

FlareSolverr 故障排除
  1. 如果出现以下错误"OSError:找不到 Xvfb。请安装后重试。"这意味着 Flaresolverr 无法找到 Xvfb,而 Xvfb 是启动 FlareSolverr 功能的网络浏览器所必需的。Xvfb 是一种虚拟帧缓冲 X 服务器,允许应用程序在没有物理显示器的情况下运行图形界面。Xvfb 用于模拟无头浏览器的显示环境。即使在没有物理显示器的情况下,无头浏览器也需要它才能正常运行。

使用以下命令安装 Xvfb: 

故障排除 FlareSolverr

此外,如果使用的是无头浏览器,还需要在 FlareSolverr 的环境变量中定义无头浏览器。下一节将详细介绍。

b.在 Docker 上安装 Flaresolverr

以下是在 Docker 中安装 FlareSolverr 的分步指南。我们假设您的计算机上已经安装了 Docker。

我们将使用在 Ubuntu 22.04 Jammy 上运行的 24.0.5 版 Docker 来逐步展示本指南。有关如何安装 Docker 的更多信息,请参阅以下官方文档 向导

  • 中找到 FlareSolverr Docker 映像。 DockerHub. 该镜像支持不同的架构,包括 x86: linux/386, x86-64: linux/amd64ARM32: linux/arm/v7和 ARM64: linux/arm64.
  • 启动 FlareSolverr 容器。 使用 Docker Compose 或 Docker CLI。FlareSolverr 提供了一个 docker-compose.yml 配置文件,它比 CLI 简单得多(如果你已经安装了 Docker Compose)。此外,也不需要调用镜像,因为这已经在 Compose 文件中被引用了。
    • 克隆包含 docker-compose.yml 配置文件:
  • 导航至版本库目录:
  • 使用 Docker Compose 启动容器(确保有管理员权限运行此命令或使用 sudo):
Docker FlareSolverr

验证安装.

执行以下命令,检查 FlareSolverr 容器是否正在运行:

  • 您应该看到 耀斑分解器 列表中的容器。
FlareSolverr Docker

访问 FlareSolverr

FlareSolverr 现在应该正在 Docker 容器中运行。您可以在网页浏览器中访问 "http://localhost:8191"。

就是这样!您已经使用 Docker 容器成功安装了 FlareSolverr。现在,您可以使用它绕过受 Cloudflare 保护的网站的挑战。

c.在 Windows 上安装 FlareSolverr

建议使用预编译二进制文件在 Windows 上安装 FlareSolverr,该二进制文件仅适用于 Windows x64 架构。 虽然也可以从源代码安装,但由于架构的限制,不建议在 Windows 下安装。此外,FlareSolverr Docker 容器 "镜像 "主要设计用于在基于 Linux 的主机(而非 Windows)上运行。

在 Windows 上安装 FlareSolverr 的步骤如下:

  • 下载 FlareSolverr 二进制文件: 前往 FlareSolverr 发布 页面。在 "Assets(资产)"部分找到最新版本,并找到适用于 Windows 的相应下载。它应该是一个压缩文件。下载适用于 Windows x64 的 FlareSolverr 压缩文件。
  • 解压缩并执行 FlareSolverr 二进制文件: 运行下载的 FlareSolverr.exe 可执行文件。运行后,终端将打开,让你知道 FlareSolverr 用户代理已成功运行。
  • 允许从 Windows 防火墙访问此应用程序。 
Windows 上的 FlareSolverr

就是这样!您已经使用预编译二进制文件在 Windows 上成功安装并执行了 FlareSolverr。

3.配置 Flaresolverr

现在您已经成功安装了 Flaresolverr,是时候对其进行配置了。

为 Cloudflare 和 Plex 等网络应用程序和服务配置 FlareSolverr 需要配置必要的环境变量。因此,如果你成功安装了 FlareSolverr,现在应该可以修改其环境变量了。 

FlareSolverr 提供了环境变量,可以用来配置其行为。有关这些变量的信息,请参阅 FlareSolverr 的 GitHub 代码库.

a.更改环境变量。

在 Linux 中设置变量 

在 Linux 中,使用 "export "命令设置 FlareSolverr 的环境变量,然后在终端启动 FlareSolverr 进程。 方法如下

  • 导出要更改的环境变量。
  • 例如,要将 LOG_LEVEL 更改为调试,并更改时区,可以运行 
测试 FlareSolverr

在 Docker 中更改变量

要在 Docker 中更改 FlareSolverr 变量,需要在文本编辑器中打开并修改 docker-compose.yml 文件。

  • 找到与 FlareSolverr 服务相对应的服务部分--在我们的例子中,它被命名为 flaresolverr。在 flaresolverr 服务定义中,你会看到环境部分。在这里,你可以更新环境变量。 
  • 例如,可以将 LOG_LEVEL 环境变量更改为调试、时区、默认端口、在无头模式下运行网络浏览器等。
FlareSolverr Docker

以下是为上述各种情况配置 FlareSolverr 的步骤:

在 Windows 中配置变量 

在 Windows 中更改变量: 首先,转到 FlareSolverr 的安装目录,然后运行 "set"(设置)命令,后面跟上要修改的变量。 

Windows 上的 FlareSolverr

现在,您已经知道如何设置 FlareSolverr 的变量,让我们来看看如何为特定的网络应用程序更改这些变量。 

b.为 Cloudflare 配置 FlareSolverr: 

您可以通过调整环境变量来配置 FlareSolverr 如何绕过 Cloudflare 挑战。 关键变量是 CAPTCHA_SOLVER 和 LOG_LEVEL。

  • 以下更改将把验证码解算器设置为 "hcaptcha",并把日志记录级别提高到调试。
  • 启动 FlareSolverr:
  • FlareSolverr 现在应配置为有效处理 Cloudflare 挑战。
FlareSolverr 变量

注意: 截至 2023 年 9 月,没有一个验证码求解器投入使用。CloudFlare 的挑战可能不仅仅涉及数学任务和浏览器测试;验证码可能还需要人工干预。遇到验证码挑战时,FlareSolverr 会显示 "检测到验证码,但未配置自动解码器 "的错误信息。

c.为 Plex 配置 FlareSolverr:

在以下情况下可能需要为 Plex 配置 FlareSolverr Plex媒体服务器 的保护。 您可能已经知道,Cloudflare 的安全措施可能会给访问 Plex 内容带来挑战。 

通过将 FlareSolverr 与 Plex 集成,您可以提高 Plex 媒体服务器的可靠性。这种设置可确保授权用户轻松访问媒体内容,而不会遇到 Cloudflare 相关障碍。

如何做到这一点?

  • 设置环境变量 对于 Plex,您通常需要设置 PROXY 环境变量。该代理变量将通过代理服务器路由 Plex 的流量。此外,确保调整其他相关环境变量,如 LOG_LEVEL(如需要)。
  • 将 "http://proxy-server-address:proxy-port "替换为代理服务器的实际地址和端口。
  • 启动 FlareSolverr:
  • 这将配置 FlareSolverr 作为 Plex 流量的代理。

d.为 Prometheus 配置 FlareSolverr。 

如果您正在使用 普罗米修斯 (开源监控工具)来跟踪受 Cloudflare 保护的网络服务或 API。如果您使用 Prometheus,由于 Cloudflare 的保护机制,您在访问端点时很可能会遇到困难。 将 FlareSolverr 与 Prometheus 集成时,可以配置 Prometheus 通过 FlareSolverr 代理发出请求。 

要将 Prometheus 与 FlareSolverr 集成,请按照以下步骤操作:

  • 启用 Prometheus 输出程序:
    • 在 FlareSolverr 中将环境变量 PROMETHEUS_ENABLED 设为 true。
    • 如果使用 Docker,请在 Docker 配置中公开 Prometheus 输出端口 (PROMETHEUS_PORT)。
  • 配置 Prometheus 输出端口:
    • 设置环境变量 PROMETHEUS_PORT,指定出口程序的监听端口。
  • 使用配置的环境变量运行 FlareSolverr。如果使用 Docker,请确保已暴露 Prometheus 输出端口。
  • 打开 Prometheus 配置文件 (prometheus.yml),添加 scrape_config 部分,指定从 FlareSolverr 抓取指标。有关如何配置 Prometheus 的更多信息、 查看官方指南

e.为其他应用程序配置 FlareSolverr: 

包括 Prowlarr 和 Jackett 在内的两个出色的索引管理器/代理似乎受到了 CloudFlare 挑战的影响。由于一些 torrent 和 Usenet 索引器使用 Cloudflare 保护以避免成为 DDoS 攻击的目标,因此这些工具无法以编程方式访问某些网站。 

在 FlareSolverr 中,设置为相应的 CAPTCHA_SOLVER 环境变量(如果可用)。您可能还需要在目标应用程序中添加 FlareSolverr 的 IP 或主机名。以下是几个示例: 

  • 杰克特 要让 Jackett 成功与 torrent 跟踪器和 Usenet 索引器通信,请确保以下几点:
    • 确保 Jackett 启动并运行。配置 FlareSolverr URL(例如 flaresolverr:8191)并应用更改。如果要长期使用此配置,请禁用更新。 
    • 查看 杰克特完整指南 了解如何安装、配置和使用 Jackett。 
  • Prowlarr. 为了使 Prowlarr 能够成功地与 torrent 和 Usenet 网站对话,它需要克服 Cloudflare 带来的验证码难题。
    • 进入 Prowlarr 的设置。导航至 "添加索引器代理 "并选择 FlareSolverr。
    • 输入主机。应类似于 http://flaresolverr:8191。检查我们的 Prowlarr 指南 了解如何使用和配置该工具。 

此外,PVR 自动化工具,如 Sonarr, Radarr巴扎尔 访问其中一些网站的媒体和字幕信息,也会受到间接影响。它们使用 Jackett 和 Prowlarr 来访问网站信息,但很快就会受到 Cloudflare 算法的质疑和阻止。 

4.使用 FlareSolverr

您可以使用 Linux 中的 "curl "命令或 Python Requests 来使用 FlareSolverr。 

a.在 Linux 上使用 FlareSolverr 和 "curl "命令。

使用Linux上的 "curl "命令,你可以与FlareSolverr的API交互,执行各种操作。curl 命令有助于从命令行发出 HTTP 请求。它适用于快速和简单的请求,因此如果你要测试 FlareSolverr 的 API 端点,它是你的最佳选择。但要知道,在处理更复杂的交互(如数据处理和自动化)时,"curl "会变得更加复杂。

i.创建新会话

启动新的浏览器实例并创建会话:

curl -L -X POST 'http://localhost:8191/v1' \
-H 'Content-Type: application/json' (内容类型:应用程序/json
-data-raw '{
  "cmd":"sessions.create"
}’

ii.列出活动会话

要获取所有活动会话的列表,请执行以下命令:

curl -L -X POST 'http://localhost:8191/v1' \
-H 'Content-Type: application/json' (内容类型:应用程序/json
-data-raw '{
  "cmd":"sessions.list"
}’

iii.销毁会话

要销毁现有会话,请执行以下命令。

curl -L -X POST 'http://localhost:8191/v1' \
-H 'Content-Type: application/json' (内容类型:应用程序/json
-data-raw '{
  "cmd":"sessions.destroy"、
  "会话":"session_id_here"
}’
不要忘记将 "session_id_here "替换为要销毁的会话。如果不知道会话 ID,请返回上一条命令。 

iv.提出 GET 请求

使用特定会话进行 GET 请求。

curl -L -X POST 'http://localhost:8191/v1' \
-H 'Content-Type: application/json' (内容类型:应用程序/json
-data-raw '{
  "cmd":"request.get"、
  "url":"http://www.example.com"、
  "maxTimeout"(最大超时):60000
}’
不要忘记将示例网址 "http://www.example.com/"替换为您要测试的网站。 

在 GET 请求命令中使用 curl 命令的示例:

将 FlareSolverr 与 curl 结合使用

b.使用 FlareSolverr 和 Python Requests 库。 

Python 提供了许多广泛的库和工具,用于处理网络 API(这对 FlareSolverr 来说再好不过了)。 使用 Python,您可以创建与 FlareSolverr 交互的更复杂的脚本。 这种方法非常适合自动化和创建自定义脚本。当然,要使用 Python,你需要开发一个脚本,这可能比使用 "curl "命令更耗时,也更具挑战性。

要使用 Python,您需要具备以下条件: 

  • 确保系统已安装 Python。
  • 安装请求库:使用请求库提出 HTTP 请求。 
  • 执行脚本前,确保 FlareSolverr 已启动并运行。
  • 确保 FlareSolverr 配置正确,并监听预期端口(如 8191)。 
  • 您的系统应具备网络连接能力,以便访问 http://localhost:8191 地址。

下面是一个使用请求库的 Python 脚本示例。 

注意: 我们使用自己的 URL(rapidseedbox.com)进行测试。但您只需将 与自己的目标网站进行比较。


进口请求

post_body = {
"cmd":"request.get"、
"url": "https://www.rapidseedbox.com/"、
"maxTimeout"(最大超时):60000
}

response = requests.post('http://localhost:8191/v1', headers={'Content-Type': 'application/json'}, json=post_body)

print(response.json())

  • 您可以复制上述脚本并将其保存为 .py。然后在 Python 环境中运行。
FlareSolverr Python
  • 结果应返回带有 cookie(会话)的 HTML 代码。
  • 在 IDLE Shell 上运行的脚本模块中(如下图所示),您会在第一行看到这个特定网站没有发出 Cloudflare 挑战。
  • 您可以在 Cloudflare 后台的网站上试用该脚本,因为这些网站会带来挑战。 
FlareSolverr Python 脚本

5.结论。 

FlareSolverr 是增强网络搜刮和数据检索能力的重要工具。如果您使用 Prometheus 监控受 Cloudflare 保护的网络服务或 API,它也是一个重要工具。此外,FlareSolverr 还可与 Jackett 和 Prowlarr 等工具配合使用,帮助与 torrent 和 Usenet 网站(在 Cloudflare 的 CDN 后面)建立通信。

在本 FlareSolverr 指南中,我们通过 Linux、Docker 或 Windows 安装了 FlareSolverr。我们学习了如何为 Prometheus、Plex 和其他应用程序等不同服务配置 FlareSolverr。此外,我们还简要学习了如何使用 curl 命令和 Python Requests 库。 

希望本指南对您有所帮助。如果您对 FlareSolverr 有任何问题和建议,请随时在下面的评论区留言。 

关于作者 Diego Asturias

Diego Asturias的头像

Diego Asturias是一位科技记者,将复杂的技术术语转化为引人入胜的内容。他拥有美国华盛顿特区的互联网技术学位,并获得了思科、麦克菲和Wireshark的技术认证。他在拉丁美洲、韩国和西非拥有实际工作经验。他的作品曾出现在SiliconANGLE Media、Cloudbric、Pcwdld、Hackernoon、ITT Systems、SecurityGladiators、Rapidseedbox等媒体上。

加入 40K+ 新闻通讯订阅者行列

定期获取有关 Seedbox 使用案例、技术指南、代理服务器以及 隐私/安全提示。

  1. 感谢您提供的指南! 更新 docker 的方法将是本指南的一大亮点。

    1. 谢谢你,诺林!

      我们会在下次更新时考虑您的建议!

  2. 也许可以修改第一行代码,使其在声学上有效。你不觉得有点尴尬吗? 至少给它校对一遍吧

    1. 感谢您的善意提醒。由于某些原因,双破折号没有正确显示。我们将尽快解决这个问题。

把你的想法说出来

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注