黑暗访客

:information_source: 摘要 将 Known Agents 服务与 Discourse 集成,以跟踪访问您论坛的不良爬虫和抓取工具。
:hammer_and_wrench: 仓库链接 https://github.com/magicball-network/discourse-darkvisitors
:open_book: 安装指南 如何在 Discourse 中安装插件

:information_source: 截至 2026 年 2 月 3 日Dark Visitors 服务已更名为 Known Agents。Discourse 插件的名称未更改。

功能

Known Agents 是一项服务,用于跟踪访问您网站的 代理(爬虫、抓取工具和其他类型的机器人)。他们的主要关注点是分析人工智能代理。

它提供两项服务:

  • robots.txt 生成和监控
  • 代理分析;包括服务器端和客户端

robots.txt 服务是免费的。分析服务提供免费套餐。我建议您访问其网站以获取更多信息。

此 Discourse 插件连接到所有这些服务,所有这些服务都是可选的,并且在一定程度上可配置。

robots.txt 生成

Discourse 已经提供了配置 robots.txt 的选项。此插件对其进行了扩展。启用后,插件会检索不同类别的代理列表(目前仅支持 AI 类别)以及那些在已配置代理中缺失的代理,并将其添加进去。列表将每天更新。这样,当识别出新的 AI 抓取工具时,它就会被添加到您的 robots.txt 中。

此功能仅在 Discourse 管理 robots.txt 且您尚未手动覆盖它时才有效。该插件不会更改“Blocked crawler user agents”(阻止的爬虫用户代理)设置,它会增加 robots.txt 中缺失的新代理。因此,您仍然可以完全控制管理此列表。

当您访问您网站的 robots.txt 时,您将看到上次更新的起始注释,以及 Known Agents 返回的代理数量。尚未配置的代理将添加到列表的末尾。它们应该位于 Googlebot 和 sitemap 指令(如果已配置)之间。

代理分析

服务器端和客户端分析可以单独启用。它可以为所有访问者启用,也可以仅为未经验证的访问者启用。

服务器端分析向 Known Agents 报告已跟踪的访问。它将发送请求路径、访问者的远程地址、User-Agent 标头以及更多浏览器标头

有一些额外的设置可以确定报告哪些请求,请参阅下面的设置。默认情况下,仅跟踪 Discourse 标记为视图的请求。以下对 Discourse 的请求永远不会被报告:

  • 对管理区域的请求
  • 后台和 API 请求

客户端分析是通过向您的页面添加 Javascript 来处理的,该 Javascript 在特定条件下会向 Known Agents 发送调用:

  • 浏览器看起来是自动化的,或是一个 AI 浏览器
  • 用户来自 AI 聊天服务

所有跟踪的请求都计入影响您付款计划的事件。

配置

您需要注册 Known Agents 才能使用此插件。免费套餐为您提供每月 100,000 个事件。当达到该限制时,您将看不到其分析中的任何新事件,但您仍然可以发送新信息并继续使用 robots.txt 服务。

注册后,您必须创建一个项目(即要跟踪的站点)。这将为您提供一个访问令牌,该令牌是 robots.txt 和服务器端分析功能所必需的。

当您启用 robots.txt 功能时,需要一段时间才能更新。访问 https://yoursite/robots.txt 查看它是否有效。顶部应该有一个注释

# Augmented by Dark Visitors on 2025-05-07T12:46:00+00:00 with 28 agents

启用服务器端分析后,您可以通过从 Known Agents 的项目设置请求测试访问来测试它是否有效。这可能需要几秒钟。您应该在 Known Agents 上的实时页面中看到结果。

设置

名称 描述
darkvisitors enabled 启用整个插件的全局标志
darkvisitors access token robots.txt 和服务器端分析与 Known Agents 通信所需的秘密访问令牌。您可以在 Known Agents 项目的设置下找到此信息。
darkvisitors robots txt enabled 启用后,Discourse 的 robots.txt 将使用其他代理进行扩充
darkvisitors robots txt agents 要添加到 robots.txt 的代理类型。
darkvisitors robots txt path 要拒绝访问的路径。最好将其保留为 /,以便拒绝访问整个站点。
darkvisitors server analytics 启用服务器端分析。我建议仅为匿名用户启用它。
darkvisitors server analytics include 附加请求跟踪。您还可以跟踪对已上传文件或 404 Not Found 请求的跟踪。
darkvisitors server analytics ignore 用户代理中要忽略的子字符串(区分大小写)。如果您使用正常运行时间监控,我强烈建议将它们的识别用户代理包含在此列表中。
darkvisitors client analytics 启用客户端分析。这将使您了解来自 AI 聊天服务的正常用户访问您论坛的情况。
darkvisitors client analytics project key 对于客户端分析,您必须配置(公共)项目密钥。您可以在 Known Agents 项目设置的JavaScript Tag部分找到此信息,它是 project_key= 之后的部分
5 个赞

谢谢你,elmuerte!我已经设置好了,运行得很棒。

我看到在插件设置中,可以通过 robots.txt 排除的代理类型有:

  • AI Data Scraper [默认选中]
  • Undocumented AI Agent [默认选中]
  • AI Agent
  • AI Assistant
  • AI Search Crawler

但 Dark Visitors 代理类型的完整列表是:
粗体 = 附加)

Crawlers & Scrapers…

  • AI Assistant
  • AI Data Scraper
  • AI Search Crawler
  • Archiver
  • Developer Helper
  • Fetcher
  • Intelligence Gatherer
  • Scraper
  • Search Engine Crawler
  • Security Scanner
  • SEO Crawler
  • Uncategorized Agent
  • Undocumented AI Agent

AI Agents…

  • AI Agent
  • Headless Agent

并非所有这些代理类型都是你想阻止的,但我希望包含一些像 Scraper、AI Data Scraper、SEO Crawler…

这些附加的代理类型是不是比你的插件更新?能否将它们添加到 settings.yml 的当前列表选项中?

除了 robots.txt 只是一个请求。机器人会遵循它,或者不遵循。防火墙是阻止这些机器人的唯一方法。

是的,我明白——但由于 Dark Visitors 仅适用于 robots.txt,我想让它尽可能地发挥作用。

(我实际上正在阅读你建议使用 Nginx 反向代理进行实际阻止的几篇文章,但我还不确定是否需要走到那一步。)

这有点太硬核了。但是 Dark Visitor 应该能与 Discourse 的 banlist 一起使用,在某种程度上发挥作用。当然,有了它,您就不需要手动添加 OpenAI 或其他遵循 robots.txt 的内容了。

我于今年 5 月 3 日就此事联系了 Dark Visitors,他们的回应是“目前不行”。但我看到当前文档列出了更多类型。

目前,Dark Visitors API 支持以下类型:

我已确保 Discourse 中的设置可以通过添加其他代理类型来扩展。

添加新类型并保存设置后,robots.txt 应会立即使用所有新代理进行更新。

1 个赞

哦,我完全错过了“搜索或创建”字段。我的主题在那里的对比度非常低,它逃过了我的眼睛。感谢您的澄清!