Lazy loaded image
OpenWrt + CloudFlare Tunnels 内网穿透完全指南
字数 1010阅读时长 3 分钟
2025-11-27
2025-11-29
type
status
date
slug
summary
tags
category
icon
password
菜单级别
Place
Verification
Owner

前置准备

在开始配置之前,需要完成以下准备工作:
  • 拥有一个域名并绑定到 CloudFlare
  • 切换 DNS 服务器到 CloudFlare
  • 等待域名激活生效

下载并安装 cloudflared

1. SSH 登录 OpenWrt

首先通过 SSH 连接到你的 OpenWrt 路由器。

2. 下载 cloudflared 运行包

执行以下命令下载适用于 ARM 架构的 cloudflared:
根据官方提供的版本选择合适的安装包。

3. 移动文件到系统目录

配置自启动服务

1. 创建自启动文件

2. 编辑启动脚本

使用 vim 编辑器打开配置文件:

3. 添加启动脚本内容

将以下内容粘贴到文件中:
重要提示:将 cfd_token 的值替换为你从 CloudFlare 创建隧道时自动生成的 token。

获取 CloudFlare Token

  1. 登录 CloudFlare 控制台
  1. 进入 Zero Trust 面板
  1. 创建新的 Tunnel(隧道)
  1. 系统会自动生成 token,复制该 token
  1. 将 token 粘贴到上述配置文件的 cfd_token 变量中

启动服务

1. 启用自启动

2. 启动服务

配置域名映射

在 CloudFlare 的 Tunnel 配置页面:
  1. 添加公共主机名(Public Hostname)
  1. 设置你的域名或子域名
  1. 配置对应的内网服务地址和端口
  1. 保存配置
完成以上步骤后,即可通过配置的域名从外网访问内网服务,无需在路由器上开放任何端口。
完成以上步骤后,即可通过配置的域名从外网访问内网服务,无需在路由器上开放任何端口。

配置 HTTP/2 协议

CloudFlare Tunnels 默认支持 HTTP/2 协议,提供更好的性能和连接复用能力。在配置公共主机名时:
  1. Type 字段选择 HTTP
  1. URL 字段填写内网服务地址(例如:http://192.168.1.100:8080
  1. 展开 Additional application settings(高级设置)
  1. 启用 HTTP/2 Origin 选项
提示:如果你的内网服务本身支持 HTTP/2,启用此选项可以获得更好的性能表现。

Docker 部署方式

除了直接在 OpenWrt 上安装,也可以使用 Docker 容器方式部署 cloudflared。

1. 前置条件

确保 OpenWrt 已安装 Docker:

2. 创建配置目录

3. 创建 docker-compose.yml

使用 vim 创建配置文件:
添加以下内容:
重要提示:将 你的_TUNNEL_TOKEN 替换为从 CloudFlare 获取的实际 token。

4. 启动容器

5. 查看运行状态

6. 管理容器

停止服务:
重启服务:
更新镜像:

Docker 部署的优势

  • 易于管理:通过 docker-compose 一键启停
  • 版本控制:方便升级和回滚
  • 环境隔离:不影响系统其他组件
  • 跨平台:配置文件可在不同设备间复用

验证服务状态

可以通过以下命令检查服务运行状态:

总结

CloudFlare Tunnels 提供了一种安全便捷的内网穿透方案,相比传统的端口转发方式:
  • 更安全:无需开放公网端口,降低被攻击风险
  • 更稳定:依托 CloudFlare 的全球网络
  • 更简单:无需配置复杂的防火墙规则
  • 免费:个人使用完全免费
适合用于搭建个人网站、家庭服务器、远程访问等场景。
上一篇
解决 OpenClash Fake-IP 模式下 Cloudflare Tunnel 断线问题
下一篇
Shell 整数比较操作符详解:-eq、-ne、-gt、-lt、-ge、-le