Cloudflare Tunnel 穿透

Cloudflare Tunnel 穿透

Tags
Published
Cloudflare Tunnel 是一种将内网IP地址链接到CloudFlare安全的方式 使用隧道传输数据 无需外网IP
可以将HTTP WEB服务器 SSH服务器 远程桌面 或者其他协议连接Cloudflare 由它提供流量 免受攻击
notion image
CloudFlred 是一个基于GO语言编写的隧道守护程序 将本地端口转发到Cloudflare网络
经常忘记操作 记个笔记

开始之前

你需要将你的域名添加到且域名服务器更改为CloudFlare

安装CloudFlared

此项目在gayhub上开源 且提供多种系统环境支持

Linux端(centos)

下载rmp安装包 地址
notion image
.
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm chmod 777 -R cloudflared-linux-x86_64.rpm //赋予安装包执行权限 yum localinstall cloudflared-linux-x86_64.rpm //使用yum本地安装软件包
notion image

身份验证

在Cloudflared进行身份验证 以便连接到Cloudflare网络 也可以匿名使用 可临时创建子域

账户认证

键入以下命令
cloudflared tunnel login //在客户端验证 会打开浏览器登陆账户认证
成功后会回显证书存放路径
notion image

匿名使用

cloudflared tunnel //匿名使用 端口默认代理8080 cloudflared tunnel --url localhost:7000 //也可以--url标志指定端口
匿名会提供一个基于 trycloudflare.com 的临时子域 并输出在控制台
notion image

创建隧道

要创建隧道,请运行以下命令:
cloudflared tunnel create <NAME> cloudflared tunnel list //列出所有隧道 cloudflared tunnel delete <NAME> //删除一个隧道 cloudflared tunnel delete <NAME> -f //运行中的隧道 -f强制删除 cloudflared tunnel run <name> (<UUID>) //启动隧道 cloudflared tunnel run <UUID> //没有cert.pem启动隧道
可以替换为任意名称 或字符串 和主机名称不想关 <NAME>
可以删除cert.pem规避被修改隧道

转发流量

现在,可以决定如何将流量发送到此持久隧道。如果要在Cloudflare仪表板中创建长期DNS记录,则可以将其指向格式为“隧道UUID”子域的记录UUID.cfargotunnel.
也可以在“Cloudflare负载平衡器”面板中执行相同的操作,将该对象添加到负载平衡池中,在该池中,该对象将仅被视为一个其他来源。
也能用cloudflared命令创建DNS记录: cloudflared tunnel route dns <name> <hostname> cloudflared tunnel route dns <UUID> <hostname> 将DNS记录与隧道地址相关联。 重新启动该cloudflared实例后,无需重新创建名称,UUID和DNS记录,隧道就可以正常工作了。

Reference