Openwrt安装Cloudflare Tunnel内网穿透
本来应该从从容容游刃有余,现在是匆匆忙忙连滚带爬……
先说结果:成功实现cf域名访问内网路由80,不需服务器,不需公网IP,零成本。

以下为连滚带爬过程:
对,还是那个跑了几年的瘦马D2560,原固件LuCI Master 2023.10.01
光猫拨号,无超密,无公网IPv4,无端口映射。要实现外网管理openwrt,尝试安装Cloudflare Tunnel。
通过软件包拉取的清华源,过滤器搜cloudflare,安装luci-i18n-cloudflared-zh-cn,依赖组件也会自动安装。
cloudflared - 2024.4.1-2
luci-app-cloudflared - 1.2
luci-i18n-cloudflared-zh-cn - 25.222.75657
但安装后,左侧菜单看不到此插件。
原因:luci-app-cloudflared 1.2 版本太旧,前端 JS 代码与OpenWrt 23.10.01 固件中的 LuCI Master 不兼容。
chatgpt指导我创建cloudflared.lua,斩钉截铁的说100% 解决,然后菜单出现了,但点开空白并伴F12错误。
豆包提示我LuCI 的核心配置文件 /etc/config/luci 损坏或格式错误,叫我重建 LuCI 配置文件,成功干翻master固件LuCI,变成了23.05 branch。
主题没了,菜单中的插件和服务都没了,千问说,定制版 LuCI(如 Master 分支)和官方 23.05 的 luci-base不兼容,别折腾了,推荐重刷固件。
我是能用的稳就不动,所以两年都没更新固件。就像电脑重做系统一样,要安装一堆应用并设置,比较繁琐;还有,软路由在吊顶上面,得拿下来接显示器,想想就头疼。
本来应该从从容容游刃有余,现在……得,重刷就重刷吧

VIP极致24.10分支SUPER版6.6内核/无应用商店/无docker/2G分区
LuCI虽变了,但路由器还正常,下载了sirpdboy固件:
EzOpWrt-Vip-Super-202511010121-6.6.110-x86_64-dev-efi.gz
https://github.com/sirpdboy/openwrt/blob/master/README.md
openwrt上传文件,在线刷比较方便,刷好访问192.168.8.1打不开(固件说明:192.168.8.1 密码无)
上吊顶请出软路由,接显示器键盘,设置IP为10.0.0.1,我喜欢用这个IP段,好看好打。
放回吊顶,PC设置dhcp、挂载点、共享。
Openclash
更新内核,覆写规则,配置订阅
之前是FakeIP增强模式,这次改为Redir兼容,后面展开说。
Cloudflare Zero Trust Tunnel
过滤器搜索cloudflare安装
(源:src/gz ezopwrt_core https://downloads.immortalwrt.org/releases/24.10-SNAPSHOT/targets/x86/64/packages)
cloudflared - 2025.5.0
luci-app-cloudflared - 1.2-r1
luci-i18n-cloudflared-zh-cn - 25.312.55771
这里的luci 1.2-r1是immortalwrt为新版LuCI维护的适配版。豆包AI曾给我推荐immortalwrt-collections、yichya、YuzukiHD的feed但没源。
安装后,左侧菜单VPN出现“Cloudflare 零信任隧道”
点蓝色的Cloudflare 零信任→网络→Tunnels→创建隧道

令牌token获取自cf网站:
隧道管理→运行时间后面的三个点,配置,操作系统选什么都无所谓,4命令就是令牌,点击复制
回到openwrt,令牌框里只填 eyJhIjoi...xxxx(不要写前面的 cloudflared.exe service install)

上传配置文件config.yml内容如下,并上传源站证书cert.pem(在上传框下面点击链接授权域名后获取)
tunnel: 0fc0a336-8680-46aa-bcd6-********** credentials-file: /etc/cloudflared/0fc0a336-8680-46aa-bcd6-**********.json ingress: - hostname: nas.*****.com service: http://127.0.0.1:80 - service: http_status:404
配置完成,启用。开全局,外网可访问。
不开全局实现外网访问
当cf网站的Cloudflare Tunnels连接器显示绿色正常,此时开全局可外网访问openwrt。
当关闭全局,则浏览器显示Error 1033。
查看日志:
root@OpenWrt:~# logread -f | grep cloudflared
Tue Nov 25 14:36:06 2025 daemon.err cloudflared[1991]: 2025-11-25T06:36:06Z ERR Unable to establish connection with Cloudflare edge error="TLS handshake with edge error: EOF" connIndex=0 event=0 ip=198.18.0.121
Tue Nov 25 14:36:06 2025 daemon.err cloudflared[1991]: 2025-11-25T06:36:06Z ERR Serve tunnel error error="TLS handshake with edge error: EOF" connIndex=0 event=0 ip=198.18.0.121
Tue Nov 25 14:36:06 2025 daemon.err cloudflared[1991]: 2025-11-25T06:36:06Z INF Retrying connection in up to 1m4s connIndex=0 event=0 ip=198.18.0.121
原因:Cloudflared 要直连 Cloudflare 的边缘节点(ip 段如 198.18.x.x),但你的网络 不稳定或被丢包/阻断,导致 TLS 握手失败。
解决方案:
给 cloudflared 加代理,写在config.yml里。
proxy: http://127.0.0.1:7890
或
proxy: socks5://127.0.0.1:7891
但是,在Fake-IP增强模式下,不开全局仍然1033错误:
root@OpenWrt:~# curl -x http://127.0.0.1:7890 https://www.cloudflare.com/cdn-cgi/trace curl: (56) CONNECT tunnel failed, response 407
本机 HTTP 代理端口被拒绝访问
Chatgpt的分析如下:
在 Fake-IP 模式下,本机访问代理(127.0.0.1:7890 或 7891)有两类限制:
Fake-IP 规则模式默认只代理 LAN 流量,127.0.0.1(本机流量)可能被拒绝 → HTTP 代理直接返回 407
cloudflared 走本机代理,所以每次 TLS handshake 都被拦截 → 隧道 Offline → Error1033
也就是说,即便你开启了“路由本机代理”,在某些版本 Fake-IP + 规则模式下,本机流量 仍然不能走 HTTP/ SOCKS5 端口 → 407
总结一句话:Fake-IP 模式下,Cloudflared 无法通过本机端口 HTTP/SOCKS5 代理访问外网 → TLS EOF → Error1033
解决方法:改为Redir-Host 模式,勾选路由本机代理

自定义规则:
rules: # ---------------------------------------- # 1. Cloudflare 隧道虚拟 IP 段 # 保证本机 cloudflared TCP 流量稳定 # Redir-Host 模式下 TCP 捕获,节点不固定使用 MATCH - IP-CIDR,198.18.0.0/15,MATCH # ---------------------------------------- # 2. 内网直连 # 保证内网设备和手机 UDP 流量直连,不走代理 - IP-CIDR,10.0.0.0/8,DIRECT - IP-CIDR,192.168.0.0/16,DIRECT - IP-CIDR,127.0.0.0/8,DIRECT # ---------------------------------------- # 3. 其他 TCP 流量 # 走当前激活节点,无需固定分组名 - MATCH
两个模式的对比如下表:
| 特性 | Fake-IP | Redir |
|---|---|---|
| TCP 流量 | 可靠 | 可靠 |
| UDP / VoLTE / Wi-Fi Calling | 可能异常 | 稳定 |
| 本机流量(cloudflared) | 可能 407 / TLS EOF | 稳定 |
| 游戏/流媒体增强 | 强 | 较弱 |
| 配置复杂度 | 高 | 中等 |
至此,已实现openclash规则模式下,外网能访问路由器管理页面。
查看系统日志和内核日志,如果频繁出现
TLS handshake with edge error: EOF
说明Cloudflared 在OpenClash(redir-host)模式下 TLS 握手不稳定
可能换个节点就好了。
最终状态
Cloudflared 已成功连接 Edge
TLS EOF 握手错误已消失
OpenClash redir-host 不再干扰 tunnel
剩下只需正确配置本地 service 即可正常访问域名
关于内网手机使用海外卡开启Wifi Calling(国行安卓),将记录在另外一篇文章。


