0%

通过 OpenWrt 利用 Cloudflare tunnel 回家 - 连上家庭内网

1. 写在前面

需要注册 Cloudflare 账号,这个服务目前是可以免费使用。
使用 cloudflared 的好处:

  1. 让家庭局域网的服务安全地暴露在公网( Cloudflare 提供了基础的安全服务 )
    a. 主要解决没有公网 IP 的问题
    b. 有公网 IP,解决安全问题
  2. 不会暴露真实的 IP 地址,因为只有 cloudflared 和服务端知道

2. 主要操作步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装客户端
opkg install cloudflared
# 登录, 返回一个 cloudflare 官方连接,点击会生成密钥
cloudflared tunnel login
# 创建一条隧道,<NAME> 替换成你喜欢的名字
cloudflared tunnel create <NAME>
# 创建一个域名解析
cloudflared tunnel route dns hisen home.hisenyuan.xyz
# 配置 xxx.yml
url: http://192.168.0.10 # 内网的网关,注意做好鉴权
tunnel: d42a48c9-26da-4734-b249-1b9eee69ba8c
credentials-file: /root/.cloudflared/d42a48c9-26da-4734-b249-1b9eee69ba8c.json
# 启动一个内网穿透服务
cloudflared tunnel --config xxx.yml run

3. cloudflared  原理

cloudflared请求生命周期
名词解释:
user:访问网站的用户
Cloudflare edge:Cloudflare 边缘服务器( 离用户比较近 )
cloudflared:Cloudflare tunnel 客户端( 安装在家庭服务器上 )
Origin Server:我们在局域网想暴露到公网的服务器( 上面可以运行很多服务 )

连接流程:

  1. 用户连接到 Cloudflare 就近的德国法兰克福( FRA )服务器
  2. 识别到是 Cloudflare 隧道请求,转发给你的服务器所在的美国旧金山( SFO )
  3. 旧金山的服务器把请求转发给你的服务器上的 cloudflared 服务
  4. cloudflared 服务再把请求转发给你的 web 服务( eg:NAS、路由器后台等 )

4. 参考文档

  • Cloudflare 博客:介绍后量子 Cloudflare Tunnel
  • Cloudflare Argo Tunnel 小试:我终于可以用树莓派做网站啦