使用Cloudflare Tunnel实现本地服务暴露

Cloudflare Tunnel可以实现通过域名访问本地暴露的服务功能,类似frp做的隧道,但是不用自己搭建服务端,只要配置好客户端即可。doc link

下面说一下配置方式。

1、Dashboard创建tunnel

首先给出官方教程,熟悉英文的可以直接看 link

去到 Zero Trust dashboard,在Access > Tunnels创建tunnel。

  1. 先取个名字
  2. public hostname 里添加自定义subdomain,domain选择在cloudflare绑定过的域名。

如果cloudflare没有创建过website,在这里创建。需要自行申请一个域名,推荐freenom,然后修改域名nameserver为cloudflare的,这样这个域名就可以由cloudflare管理了。

Public-Hostname-setting

  1. service选择你要的服务,一般是http,然后地址一般是写127.0.0.1+本地服务端口号,如127.0.0.1:5000。保存后这个website自动添加dns解析到你的本地机器。

这里不再需要去域名dns处手动添加了,他自动添加好了

2、运行cloudflared客户端

我使用的是群晖nas+docker版,主要是图形化的docker怎么运行cloudflared。

  1. 下载docker套件 docker
  2. 在注册表里搜索cloudflared并下载
  3. 开启容器,需要配置两个地方
    • 环境变量添加TUNNEL_TRANSPORT_PROTOCOL,值为http2,因为默认的quic协议国内不支持,需要改成http2
    • 下方命令输入创建tunnel时docker下的提示部分,如docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoiZjYyMDUyMjxxxxx你就复制tunnel --no-autoupdate run --token eyJhIjoiZjYyMDUyMjxxxxx进去
  4. Zero Trust dashboard的tunnel里看到active就说明连上了

tunnel

3、访问subdomin就会代理到你本地的服务

如我的nas域名设置了https://nas.ipppz.tk/,并转发到nas的5000端口,接下来就直接用域名访问即可,也是支持https的。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计