Fortress – A Stealth Chromium Browser for Unblocked Agent Traffic
Fortress – A Stealth Chromium Browser for Unblocked Agent Traffic
Fortress provides a stealth Chromium environment that prevents automated agents from being blocked
Fortress 是一个开源项目,它提供了一个修改过的 Chromium 构建版本,旨在隐藏无头(headless)或自动化浏览器的特征签名。通过掩盖这些签名,Fortress 使网页抓取、测试和其他自动化任务能够绕过那些原本会拦截或限制流量的反机器人防御机制。
The core problem is that modern anti‑bot services detect standard headless Chromium
现代反机器人服务日益依赖指纹识别技术——例如检查 navigator.webdriver、检查 Chrome 扩展程序或分析时间异常——来识别并拦截无头浏览器。当浏览器被标记时,请求会被限流,或者弹出 CAPTCHA,或者连接被完全终止,从而中断自动化工作流。
Fortress solves this by embedding anti‑fingerprinting patches directly into Chromium
Fortress 通过将反指纹识别补丁直接嵌入到 Chromium 中来解决这个问题。Fortress 从源码编译 Chromium,并应用了一组补丁,这些补丁可以:
- Remove or randomize the
navigator.webdriverflag. - Spoof typical user‑agent strings and platform identifiers.
- Disable or obfuscate DevTools protocols that reveal automation.
- Randomize timing information to mimic human interaction.
这些更改被内置于二进制文件中,因此通过常用的 Selenium、Playwright 或 Puppeteer API 启动 Chromium 的脚本无需额外配置即可继承这些隐身行为。
How to get started with Fortress
- Clone the repository
git clone https://github.com/tiliondev/fortress.git cd fortress - Build the browser (requires a recent Linux/macOS environment with the Chromium build dependencies installed):
./build.sh # The script pulls Chromium source and applies the stealth patches - Run your automation script using the path to built binary:
通过指定from selenium import webdriver options = webdriver.ChromeOptions() options.binary_location = "$(pwd)/out/Release/chrome" driver = webdriver.Chrome(options=options) driver.get("https://example.com")executablePath选项,同一个二进制文件也可以在 Playwright 或 Puppeteer 中使用。
Community reception and limitations
HN post 获得了 37 个赞成票和 47 条评论,表明人们对现成的隐身浏览器有浓厚兴趣。然而,评论区目前为空,因此尚无外部验证或已报告的问题。潜在的局限性包括:
- Maintenance overhead: Keeping the patches up‑to‑date with upstream Chromium releases requires ongoing effort.
- Platform support: The repository primarily targets Linux/macOS; Windows users may need to adapt the build scripts.
- Legal considerations: Modifying Chromium binaries may affect licensing compliance; users should review the Chromium license and any third‑party components.
When to use Fortress versus existing stealth libraries
现有的 JavaScript 库(例如 puppeteer-extra-plugin-stealth)对标准 Chromium 二进制文件应用运行时补丁。Fortress 的不同之处在于它在编译时嵌入了这些补丁,这可以:
- Reduce runtime overhead because the browser starts already stealthy.
- Offer a more stable fingerprint surface, as the modifications are less likely to be reverted by Chromium updates.
- Provide a single binary that works out‑of‑the‑box with any automation framework.
如果你需要一个快速的、脚本层面的解决方案,运行时插件可能就足够了。但对于大规模抓取操作,如果一致性和性能至关重要,像 Fortress 的编译型隐身浏览器可以更加可靠。
Conclusion
Fortress 提供了一个经过加固的 Chromium 构建版本,它移除了常见的自动化指纹,允许代理程序(agents)在不被反机器人系统拦截的情况下运行。通过将隐身补丁直接集成到浏览器二进制文件中,它为运行时插件提供了一个性能友好的替代方案,尽管用户必须自行管理构建更新和平台兼容性。