Cloudflare Tunnel 内网穿透(Docker版)
前言
Cloudflare Tunnel 是 Cloudflare 提供的一种内网穿透解决方案,可以将本地服务、云服务安全地暴露到互联网。本文介绍如何在 Docker 环境中使用 Cloudflare Tunnel 实现内网穿透,适用于需要将本地服务公开访问的场景。
使用cloudflare tunnel最好有一个自己的域名,方便记忆,可以给不同的docker,分配一个专属的子域名,最好将域名托管到cloudflare,不用每个子域名都要解析到cloudflare的服务器上。
本文只介绍,有自己域名的情况下,如何使用cloudflare tunnel在docker环境中实现内网穿透的步骤。
安装 Cloudflare Tunnel
首先注册cloudflare的账户,然后找到cloudflare网页左侧的tunnel的进入路径,进入后,点击右上角的“创建隧道”
取个隧道名
选择“docker”
如果你还没安装docker
curl -fsSL https://get.docker.com -o get-docker.sh sudo 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的页面,创建过程都大差不差,就不多赘述了
