Cloudflare Tunnel 内网穿透(Docker版)
前言
很多时候我们需要把本地服务器、云服务器的docker应用安全地暴露到公网,不想暴露整台机器,又想要方便地访问,这时候cloudflare tunnel就派上用场了。有全球cdn,自动部署证书,既方便又安全。
使用cloudflare tunnel最好有一个自己的域名,方便记忆,可以给不同的docker,分配一个专属的子域名,最好将域名托管到cloudflare,不用每个子域名都添加A/AAAA记录,cloudflare会自动添加。
本文只介绍,有自己域名的情况下,如何使用cloudflare tunnel在docker环境中实现内网穿透的步骤。如何将域名托管到cloudflare?可以参考托管域名到 Cloudflare
安装 Cloudflare Tunnel
首先注册cloudflare的账户,然后找到cloudflare网页左侧的tunnel的进入路径,进入后,点击右上角的“创建隧道”
取个隧道名
选择“docker”
如果你还没安装dockercurl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh
检查是否安装成功:docker --version
如果需要免sudo配置docker:sudo usermod -aG docker $USER
注销并重新登录,方可生效
点击右边的按键,复制一键安装cloudflared的命令,粘贴到终端,在docker run后面加入-d,后台运行
docker run -d cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoiOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXyJ9
安装完成后,查看下面的连接状态
点击继续,即可创建成功,然后会返回到tunnel的页面,点击刚才创建的隧道
进入到隧道页面,点击创建路由
点击已发布的应用程序
填写子域、域名、服务url
填写子域,方便记忆,多个docker可以分配不同的子域,域名选择之前托管到cloudflare的域名,服务url填写本地服务的地址和端口,例如http://172.17.0.1:8080,路径留空。
用hostname -I 命令查看本地ip地址,如果是本地服务器,选192.168开头的地址,如果是云服务器,选172开头或者10开头的地址,端口号根据docker暴露的端口填写。
填写完毕,点击添加路由
等待几分钟,然后浏览器访问域名
访问成功
tunnel的第二种打开路径
点击zero trust,进入到zero trust的页面,点击左侧的网络→连接器
来到tunnel的页面,创建过程都大差不差,就不多赘述了
