套了 Cloudflare 以后,很多人都会遇到一个很微妙的问题:域名是同一个域名,节点是同一个节点,可今天丝滑得飞起,明天就开始卡成电子相册。你问它为什么,它不说;你测一下 IP,哦~原来走的边缘节点又开始表演了。
所以优选 CF IP 这件事,听起来像玄学,其实朴素得很:在你当前这条宽带上,挑几个更顺手的 Cloudflare Anycast IP,让客户端先连它们,再靠 SNI / Host 回到你的真实域名。 地址换成 IP,域名信息别丢。就这么点事,偏偏手动做起来又烦又容易翻车,讨厌死了。
现在好了——新版 luci-app-cloudflare-ip 做了一个 LuCI 界面,把整个流程塞进 OpenWrt 后台。你安装一个 .ipk(或 .apk),在 LuCI 菜单里点点鼠标,剩下的事情——下载 CFST、测速、挑 IP、验证连通性、写回 PassWall 或 OpenClash——全部自动完成。你负责在网页上填配置,它负责半夜悄悄干活。 很懒,但懒得有章法,我喜欢~😏

它到底解决什么嘛#
旧玩法大家应该都见过:跑 CloudflareSpeedTest,复制第一个 IP,打开 PassWall 或 OpenClash,找到节点,把地址改掉,保存,重启。然后过几天线路一抽风,再来一遍。再来一遍!再来一遍!!人类发明自动化,就是为了不做这种重复小苦力活嘛,不然要机器干嘛,供起来拜吗?
新版的 LuCI 插件完全不一样了。打开 服务 → Cloudflare IP 优选,一个概览页面就告诉你:CFST 装好了没、上次运行结果、当前最优 IP 列表。想改配置?左边切到设置页,填完保存就行。想手动跑一次?点一下按钮。想看日志排查问题?也在页面上。全程不用 SSH,不用背命令,不用改配置文件——这才像 2026 年的工具嘛。
如果你之前用过旧版脚本(
cf-openwrt-auto.sh+cf-openwrt-auto.conf),那套东西现在已经被 LuCI 界面取代了。脚本还在,但推荐直接用插件,更省心。

先装插件呀#
下载安装#
去 Releases 页面下载对应格式的包:
| 格式 | 适用版本 | 安装命令 |
|---|---|---|
.ipk | OpenWrt 24.10.x | opkg install luci-app-cloudflare-ip_*.ipk |
.apk | OpenWrt 25.12+ | apk add luci-app-cloudflare-ip*.apk |
依赖会自动处理,核心就这几个:
bash curl tar jq ca-bundle ca-certificates luci-base rpcd安装完做什么#
装好以后刷新浏览器缓存(或者直接硬刷新 Ctrl+F5),LuCI 菜单里就会出现 服务 → Cloudflare IP 优选。点进去,概览页面会告诉你当前状态。
第一次用的话,CFST 还没下载,概览页会显示一个「下载 CFST」按钮。点一下,插件会自动拉对应架构的 CloudflareSpeedTest,具体耗时看路由器访问 GitHub 的速度。如果是从旧版脚本迁移过来的,CFST 已经在了,它会自动识别,直接显示「更新 CFST」。
概览页:一眼看全#
打开概览页,你会看到三块信息:
运行状态:当前服务是否运行、上次运行结果、运行模式(PassWall 还是 OpenClash)。如果刚装好还没跑过,上次结果会是空的;先点「启动」或配置好自动运行,它就开始干活。
环境检查:CFST 装没装、PassWall/OpenClash 检测到没。如果 CFST 没装,按钮是「下载 CFST」;装了就是「更新 CFST」。PassWall 和 OpenClash 会显示当前检测状态,如果你只装了其中一个,对应另一个的选项卡会自动隐藏,不会出来碍眼。
优选 IP 列表:最新一次测速得到的最优 IP。如果还没跑过,这里是空的;服务运行后可以在概览页手动触发一次测速,也可以等它按计划自动跑。
概览页还放了几个日常最常用的按钮:启动、停止、重启服务,手动运行测速,以及下载 / 更新 CFST。也就是说,平时想确认状态或临时跑一次,基本不用离开概览页。

基本设置:填好就不用管了#
基本设置页就是几个关键选项,填一次就行:
| 选项 | 说明 | 默认 |
|---|---|---|
| 启用 | 开启定时自动优选 | 关 |
| 模式 | PassWall / OpenClash(自动检测已安装的服务) | PassWall |
| IP 数量 | 保留几个优选 IP | 4 |
| IP 类型 | ipv4 / ipv6 / both | ipv4 |
| 测速协议 | tcp / http | tcp |
| 运行计划 | 自动运行频率,可选 6h、1h、30m 或 cron 表达式 | 每 6 小时 |
| 下载测速数量 | 参与下载测速的 IP 数量 | 10 |
| 平均延迟下限 | 过滤异常低延迟 IP | 40ms |
| 平均延迟上限 | 过滤高延迟 IP,留空不限制 | — |
| 测速前停止代理 | 避免代理干扰测速结果 | 开 |
| 保留 CFST | 系统升级时保留 CFST 二进制 | 开 |
启用开关打开以后,procd 守护进程会按你设的运行计划自动跑。默认是每 6 小时一次,也可以选每天 3 点、每 30 分钟,或者填自定义计划。刚开始不确定效果的话,先不开自动也行,去概览页手动跑一次看看。
测速协议选 http 的话,可以额外按数据中心筛选,比如填 HKG,NRT,LAX,只测这几个地区的节点。适合你明确知道自己想靠近哪些数据中心的时候用。不知道就留空,别为了显得专业乱填,网络不会因为你填了三个缩写就突然爱上你,真的不会。
PassWall 设置#
如果你选的是 PassWall 模式,切到 PassWall 设置页:
| 选项 | 说明 | 默认 |
|---|---|---|
| 目标域名 | 要优选的节点域名,逗号分隔 | — |
| 名称后缀 | 节点名称后缀,支持 {n} 序号和 {ip} 占位符 | [CF-{n}] |
它的工作方式很直接:读 uci show passwall,找 address 等于目标域名的节点,把 address 改成优选 IP,然后 uci commit passwall,最后重启 PassWall。就这三板斧,朴实无华。
这里有一个重点,敲黑板:你的 SNI、Host 或传输层域名,还是应该填自己的域名。 优选 IP 只是连接地址,不是你的证书名字,也不是你的 CDN 回源域名。把它们混成一坨,能连上才奇怪,真的。这就好比快递地址写了隔壁小区门牌号,收件人写的却是你自己——快递小哥不懵谁懵?
OpenClash 设置#
OpenClash 模式稍复杂一点,因为它要改 YAML 配置文件:
| 选项 | 说明 | 默认 |
|---|---|---|
| 配置文件 | OpenClash YAML 配置文件路径 | /etc/openclash/config/config.yaml |
| 目标域名 | 要优选的节点域名,逗号分隔 | — |
| 名称后缀 | 节点名称后缀,支持 {n} 和 {ip} | [CF-{n}] |
| 传输过滤 | 按传输协议过滤节点(如 ws,grpc) | — |
| 备份数量 | 配置备份保留数量 | 3 |
首次运行时,它会找 server 等于目标域名的代理节点当模板,然后按 IP 数量生成 [CF-1]、[CF-2] 等新节点。后续运行会优先刷新这些标记节点,缺了还会自动补齐——像个小管家,操心但不烦人。
OpenClash 设置页底部还有配置备份管理——可以查看历史备份、恢复或删除,不用自己翻 /etc/openclash/config/ 目录了。
它会把:
server: cdn.example.com改成测速得到的 IP,但保留:
servername: cdn.example.com
ws-opts:
headers:
Host: cdn.example.comxHTTP 也一样,xhttp-opts.headers.Host 继续保留域名。说人话就是:连接可以冲着 IP 去,身份识别还得拿域名说话。 不然 TLS 和 CDN 都会一脸「你谁啊」,然后把你晾在门外,门都不给你开,超冷淡的。
支持 vless、vmess、trojan,要求 tls: true 或 network 为 ws、xhttp、grpc、h2、http。不会到处乱动不相关的节点,比某些什么都想管的工具有边界感多了。
高级设置#
切到高级设置页,有几个贴心的选项:
| 选项 | 说明 | 默认 |
|---|---|---|
| 自更新 | 启用脚本自更新 | 开 |
| 自更新地址 | 脚本更新下载地址 | 项目默认地址 |
| GitHub 镜像 | 加速 GitHub 下载的镜像地址 | — |
| 下载重试 | GitHub 下载重试次数 | 3 |
| 重试延迟 | 重试间隔(秒) | 5 |
| 启动延迟 | 随机延迟秒数,留空或 random = 0~300s | — |
| 详细日志 | 输出详细运行日志 | 关 |
| 工作目录 | 存放 CFST、IP 列表和结果文件 | 脚本目录 |
启动延迟留空或设成 random 的话,会随机等 0 到 300 秒,适合多台设备同一时间跑任务,避免大家一起冲出去测速。网络已经够忙了,别再集体排队踩油门——又不是抢演唱会门票,急什么嘛!
自更新打开后,脚本启动时会检查 GitHub 有没有新版本,有就自己更新。当然啦,更新前会备份,翻车了也能滚回去——这点良心还是有的。
日志与维护#
诊断页就专心做两件事:
- 查看运行日志
- 查看 IP 历史记录
出了问题时,先看日志。日志里会告诉你哪一步挂了——是 CFST 下载失败,还是测速超时,还是写回配置出错。想手动测速、重启服务或更新 CFST,就回概览页;想手动更新脚本,就去高级设置页。分工还挺清楚的,对吧~

GitHub 抽风怎么办呀#
路由器访问 GitHub,有时候就像薯片袋里的空气,存在感很强,实际东西不多。插件做了几个兜底:
- 下载失败会按你设的重试次数和间隔重试
- 可以配 GitHub 镜像加速下载
- 如果已经有可执行的
cfst,会继续用现有二进制
还可以手动下载对应架构的 CloudflareSpeedTest 压缩包(比如 cfst_linux_amd64.tar.gz),放到工作目录里。脚本下载失败时会优先用本地包。比起一报错就倒地不起,这种「能跑就先跑」的态度还是比较可爱的。
一点小提醒#
优选 IP 提升的是「你到 Cloudflare 边缘节点」这一段。后面的回源、服务器带宽、客户端内核、运营商晚高峰,该拉的还是会拉。它不是魔法棒,是一个自动挑路的小工具。别指望它把 1M 小水管变成千兆光纤——做不到的啦,物理定律又不是我写的。
所以我的建议是:装上插件后,先在概览页启动服务并手动跑一次,再去诊断页看日志,确认它到底改了哪些节点;然后打开客户端实际连一下;最后再打开「启用」开关。工具再自动,也别闭眼开车。知道了没!
如果你还在用旧教程手动复制 IP,那现在真的可以收手啦。LuCI 插件已经把最烦的那部分接过去了:测速、筛选、验证、写回、重启。你只要把域名和模式填对,然后让它安安静静工作。网络工具能做到「不打扰但有用」,已经很难得了,哼~
好啦,去试试吧,路由器在等你宠幸它呢~






