cf-pref:Cloudflare 优选节点自动管理工具(一键部署)
免费自动管理你的 Cloudflare 优选节点:扫描(阿里/腾讯/甲骨文等云段)→ 严格验证(证书+内容防串台)→ 自动更新 DNS → 健康监测 + 故障转移,全部带 Web 面板,一次配置全自动运行。两种部署方式任选其一:
一、部署方式(二选一)
方式一:一键脚本(推荐)
SSH 到你的 NAS,粘贴下面这一行直接执行(脚本自包含,无需下载任何文件):
( wget -qO- https://blog.k5.cc.cd/cf-pref-install.sh 2>/dev/null || curl -sL https://blog.k5.cc.cd/cf-pref-install.sh ) | sh方式二:单文件 Docker Compose
只需下载 cf-pref-compose.yml 一个文件(无需其他任何文件/压缩包),改名为 docker-compose.yml 后启动——使用预构建镜像(已内置全部代码与修复),无需下载/安装,拉取即用:
下面是 docker-compose.yml 完整内容(点右上角复制按钮即可复制整段):
# cf-pref 优选节点自动管理 - 通用版# 使用预构建镜像(已内置全部代码与修复), 无需下载/安装, 拉取即用# 配置在网页面板完成: http://NAS的IP:13010services: cf-pref: image: a354245023/cf-pref:latest container_name: cf-pref restart: unless-stopped ports: - "13010:8000" volumes: - ./data:/data environment: - CFP_CONFIG=/data/config.json - CFP_DATA=/data - TZ=Asia/Shanghai - PYTHONUNBUFFERED=1wget https://blog.k5.cc.cd/cf-pref-compose.ymlmv cf-pref-compose.yml docker-compose.ymldocker compose up -d端口冲突时可指定 CFP_PORT:CFP_PORT=13110 docker compose up -d --build
二、首次配置(全在面板里,不用改文件)
打开 http://<你的NAS-IP>:13010 → 点 ⚙️ 设置,按下面填:
| 字段 | 填什么 | 备注 |
|---|---|---|
| ① CF 令牌 | Cloudflare API 令牌 | 头像→个人资料→API令牌→创建令牌,选编辑区域DNS模板;权限:区域→DNS→编辑 (Zone→DNS→Edit) + 区域→区域→读取 (Zone→Zone→Read),两项都要,否则”加载Zone列表”会失败 |
| ② Zone(域名) | 你的域名 | 点”加载Zone列表”自动读取 |
| ③ DNS 记录名 | 如 cf.你的域名.com | 点”➕创建/修复DNS记录”自动创建/更新,之后每小时自动指向最优节点 |
| ④ 验证域名 | 你网站的真实域名 | 需已配 CF SaaS/橙云,用于验证节点是否服务你的站 |
| ⑤ 期望内容 | 首页独有文字 | 打开你网站首页,复制一段只属于你网站的文字(标题/副标题/版权行等);别用”首页/登录/欢迎”等通用词;可填多个,逗号分隔,匹配任一即通过,防止节点串台到别人网站 |
| ⑥⑦⑧⑨ | 扫描/健康间隔、失败次数、切换阈值 | 默认即可:60分扫描、1分健康、2次失败切换、15ms防抖 |
| ⑩ 高级设置 | 扫描池/探活域名/跟踪域名/种子IP等 | 可选,一般默认即可 |
填完顺序:💾 保存配置 → ➕ 创建/修复DNS记录 → 立即扫描
✅ 完整操作步骤(照做即可):
- 填 ① CF 令牌 → 点 “加载Zone列表”,下拉自动列出你的域名(令牌需 DNS编辑 + Zone读取 两项权限)
- 在 ② Zone 选中你的域名,填 ③ DNS 记录名(如 cf.你的域名.com)
- 填 ④ 验证域名(你网站真实域名,需已配 CF SaaS/橙云)+ ⑤ 期望内容(首页独有文字,防串台)
- (可选)⑩ 高级设置:跟踪域名、种子IP 等,一般默认即可
- 点 💾 保存配置 → ➕ 创建/修复DNS记录(自动创建记录并保存ID)→ 立即扫描
- 首次扫描约 5~6 分钟,完成后 DNS 记录自动指向最优节点,之后每小时扫描、每分钟健康检查,全自动运行
高级设置推荐值(点复制即可粘贴到面板)
这两个是可选进阶项,不填系统也能跑。想直接抄作业的话,点代码块右上角复制按钮,粘贴到 ⑩ 高级设置 对应的输入框,再点保存:
跟踪域名(每3分钟解析这些同方案网站,把它们正在用的节点抓出来自动验证进池):
hiir.cn,www.hiir.cn,nrtcfdns.zone.id,cloudflare-dl.byoip.top种子IP(历史验证过的好节点,每轮扫描重新验证,合格的直接进池):
152.67.210.234,43.155.202.169,47.74.62.45,27.50.49.226,77.105.163.215,47.84.10.220,43.159.5.120提示:种子IP 可按需增删;个别节点可能失效,系统每轮会自动验证,不合格的自动剔除,不影响使用。
跟踪到的节点 IP(当前 hiir.cn 等网站正在用的节点,会动态变化,仅作参考;系统会自动验证筛选,不合格的自动判废):
8.217.91.143,43.161.226.55三、工作原理
| 环节 | 频率 | 说明 |
|---|---|---|
| 全量扫描 | 每小时 | 云厂商段采样 → TCP延迟 → CF特征 → 前N个做证书+内容验证 |
| 跟踪同款网站 | 每3分钟 | 自动解析同方案网站,抄它正在用的节点 |
| 健康检查 | 每分钟 | 检查当前 DNS 节点;连续失败2次 → 快速故障转移(秒级) |
| 全池体检 | 每5分钟 | 池内所有节点重新测速验证:活的留、死的踢、延迟刷新 |
| DNS 更新 | 每小时+故障时 | 新节点比当前快 ≥15ms 才切换,防抖动;记录被删自动重建,重复记录自动清理 |
严格验证四道关:TCP延迟 → CF特征 → HTTPS证书有效 → 内容指纹。四关全过才可用——既能防串台,也保证访客浏览器不会出现”不安全”。
四、功能清单
- 云厂商段扫描:阿里云 / 腾讯云 / 甲骨文 / 华为云 / AWS / GCP / Azure / 搬瓦工
- 跟踪同款方案网站自动采集节点
- 种子池(历史验证节点,每轮重验)、扫描结果持久化
- 四重验证防串台 + 证书校验保 HTTPS
- CF 封锁检测(Error 1034 / Edge IP Restricted 自动判废)
- 自动黑名单:节点累计失败 ≥5 次自动拉黑(24小时,验证通过自动解黑),烂节点不再反复横跳
- DNS 记录自愈 + 重复记录自动清理 + 失败诊断日志
- Web 面板:状态 / 可用节点 / 跟踪节点 / 监测站点 / 切换历史 / 日志 / 手动控制
- 配置持久化:容器重建不丢设置(命名卷)
五、常见问题
Q:令牌要什么权限? 需要两项权限:区域→DNS→编辑 (Zone→DNS→Edit) + 区域→区域→读取 (Zone→Zone→Read)。用”编辑区域DNS”模板创建后,再追加一条 Zone→Zone→Read 即可。
Q:期望内容填什么? 一段只属于你网站的文字,用来确认节点返回的是你的站而不是别人的(防串台)。怎么填:打开你网站首页 → 复制一段固定出现的文字,比如标题、副标题、导航文字或底部版权行。例子:博客填站名;alist 类网盘填你自定义的标题;媒体站填站点名。填多个用逗号分隔,匹配任一即通过。注意:别填”首页""登录""欢迎”这类通用词,也别填会变化的文字(日期/访客数等)。
Q:DNS 记录会自动生成吗? 会。点”➕创建/修复DNS记录”自动创建/更新 A 记录(仅DNS、TTL 60s),之后系统每小时自动指向最优节点。
Q:多久换一次节点? 当前节点挂了 2 分钟内切换;平时只有发现明显更优(≥15ms)才换,避免无意义抖动。
Q:升级/重建会丢配置吗? 不会。配置保存在命名卷/本地 config.json 里,重建容器自动保留。
Q:刚装好”可用节点”列表是空的? 正常。首次扫描约 5~6 分钟,扫描完成前节点池为空;完成后自动出现可用节点,DNS 记录自动指向最优节点。
Q:跟踪到的节点显示”不可用”? 正常,这是防串台+封锁检测在工作:CF封锁(1034/Edge IP Restricted) 或 内容不符(疑似串台) 的节点会被自动判废剔除,不会进池,更不会切过去。
Q:跟踪域名/种子IP 默认是空的? 已内置推荐默认值(跟踪同方案网站 + 历史好节点),不想用可清空;这两个是可选进阶项:跟踪域名=每3分钟盯住同方案网站抄它正在用的节点;种子IP=每轮扫描重新验证的历史好节点。不填系统照常工作,填了多两个节点来源。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!














