Xget 在代理 dl.fedoraproject.org(Fedora DNF 包管理器的上游)时,返回的不是 XML 元数据,而是 Cloudflare 的 "Are you a bot?" 验证 HTML 页面。
dl.fedoraproject.org
"Are you a bot?"
官方实例 xget.xi-xu.me 同样存在此问题,我已实测验证。
xget.xi-xu.me
# Xget 代理返回 bot 验证页面(5263 字节 HTML) curl -s https://xget.johntime.top/fedora/pub/fedora/linux/releases/43/Everything/x86_64/os/repodata/repomd.xml | head -5 # → <!doctype html><html lang="en"><head><title>Making sure you're not a bot!</title>... # 官方实例同样(16 字节,bot 页面) curl -s https://xget.xi-xu.me/fedora/pub/fedora/linux/releases/43/Everything/x86_64/os/repodata/repomd.xml | head -5 # → <!doctype html>...同样的 bot 页面 # 直连 dl.fedoraproject.org 正常(5966 字节 XML) curl -s https://dl.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/repodata/repomd.xml | head -5 # → <?xml version="1.0" encoding="UTF-8"?><repomd ...(正常)
dl.fedoraproject.org 也使用了 Cloudflare 的 Bot Management 保护。Xget 部署在 Cloudflare Workers 上,Workers 的出站 fetch() 请求会被目标站的 Cloudflare Bot 检测识别为自动化流量,从而触发 Challenge 页面。这是 CF Workers → CF 保护站点之间的架构限制。
fetch()
xget.johntime.top
libdnf/0.73.0
GitHub 来源:https://github.com/xixu-me/xget/issues/271 作者:johntime2005 · 创建时间:2026-05-09T11:22:20Z
No dependencies set.
The note is not visible to the blocked user.
问题描述
Xget 在代理
dl.fedoraproject.org(Fedora DNF 包管理器的上游)时,返回的不是 XML 元数据,而是 Cloudflare 的"Are you a bot?"验证 HTML 页面。官方实例
xget.xi-xu.me同样存在此问题,我已实测验证。复现步骤
根因分析
dl.fedoraproject.org也使用了 Cloudflare 的 Bot Management 保护。Xget 部署在 Cloudflare Workers 上,Workers 的出站fetch()请求会被目标站的 Cloudflare Bot 检测识别为自动化流量,从而触发 Challenge 页面。这是 CF Workers → CF 保护站点之间的架构限制。环境信息
xget.johntime.top(Cloudflare Workers)xget.xi-xu.medl.fedoraproject.org(Fedora 43)问题
libdnf/0.73.0)来绕过 bot 检测?GitHub 来源:https://github.com/xixu-me/xget/issues/271
作者:johntime2005 · 创建时间:2026-05-09T11:22:20Z