CloudFlare Argo Tunnel配置 - 实现内网穿透
大概来说就是warp的一种补充,这个Argo貌似只支持443https的应用。
内网穿透是什么?
内网穿透,指的是将内网端口暴露到公网。由于防火墙的限制,或者中国大陆普遍的 NAT 宽带接入方式,大多用户没有属于自己的公网 IP,因此其它用户无法访问其设备上对外开放的服务(例如 Web 服务器,或者比较常见的案例是 Minecraft 服务器)。过去有许多常见的内网穿透解决方案(例如花生壳、Ngrok、frp 及一系列衍生自 frp 的服务等),而 Cloudflare Tunnel 的免费开放,又为我们提供了一种看起来不错的新选择。内网穿透,指的是将内网端口暴露到公网。由于防火墙的限制,或者中国大陆普遍的 NAT 宽带接入方式,大多用户没有属于自己的公网 IP,因此其它用户无法访问其设备上对外开放的服务(例如 Web 服务器,或者比较常见的案例是 Minecraft 服务器)。过去有许多常见的内网穿透解决方案(例如花生壳、Ngrok、frp 及一系列衍生自 frp 的服务等),而 Cloudflare Tunnel 的免费开放,又为我们提供了一种看起来不错的新选择。
配置自己的域名(可选)
Cloudflare Tunnel 可以绑定到自己的域名上,也可以直接用 Cloudflare 自己提供的域名。如果希望使用 Cloudflare 提供的域名,可以跳过此节。
授权域名
运行
1 | cloudflared tunnel login |
在浏览器中选择一个域名来授权。
你的家目录中会出现 ~/.cloudflared/cert.pem。在我们创建隧道和设置 DNS 解析的时候,我们会用到这个文件。
创建隧道
创建一个隧道
1 | cloudflared tunnel create [名字] |
这条命令需要之前的 cert.pem 用来验证身份。
你的家目录中会出现 ~/.cloudflared/[一长串UUID].json,里面保存这运行这条隧道所需要的授权信息。
配置路由
创建了隧道之后,我们还需要让它可以被访问。Cloudflare 支持将其部署到负载均衡器后端,或者通过 DNS 直接访问。这里只介绍后者的使用方法。
1 | cloudflared tunnel route dns [名字或者 UUID] [想要绑定到的域名或其二级域名] |
此时在cloudflare的域名DNS管理里面,你会发现这个域名被设置了一个指向 [UUID].cfargotunnel.com 的 CNAME 记录,并且通过 Cloudflare 进行代理。
示例
创建一条隧道,设置隧道名字为 test,并将其绑定到 test.vvhan.com:
1 | 1. |
发布本地网站到公网
1 | cloudflared tunnel --name [隧道名称] --url http://[站点地址] |
如果没有域名授权
1 | cloudflared tunnel --url http://[站点地址] |
cloudflare会返回一个很丑的二级域名免费使用
1 | +-------------------------------------------------------------+ |
1 | cloudflared tunnel --name [隧道名称] --url tcp://[服务地址] |
如果没有域名授权
1 | cloudflared tunnel --url tcp://[服务地址] |
cloudflare会返回一个很丑的二级域名免费使用
1 | +-------------------------------------------------------------+ |
更多配置
也可以在服务端指定配置文件以避免每次重新输入好长好长的命令,或做到同时配置多个服务。
Cloudflare Argo Tunnel文档 点击查看