前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CloudFlare Argo Tunnel配置 - 实现内网穿透

CloudFlare Argo Tunnel配置 - 实现内网穿透

作者头像
骤雨重山
发布2022-05-30 10:13:36
19.5K0
发布2022-05-30 10:13:36
举报
文章被收录于专栏:骤雨重山骤雨重山

Argo隧道提供了一种简便的方法,可将Web服务器安全地公开到Internet,而无需打开防火墙端口和配置ACL。 Argo隧道还可以确保请求在到达网络服务器之前先通过Cloudflare进行路由,因此可以确保通过Cloudflare的WAF和Unmetered DDoS缓解功能停止了攻击流量,并且如果为帐户启用了这些功能,则可以通过Access进行身份验证。

大概来说就是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 提供的域名,可以跳过此节。

授权域名

运行

代码语言:javascript
复制
cloudflared tunnel login
#windows
./文件名.exe tunnel login

在浏览器中选择一个域名来授权。

你的家目录中会出现 ~/.cloudflared/cert.pem。在我们创建隧道和设置 DNS 解析的时候,我们会用到这个文件。

创建隧道

创建一个隧道

代码语言:javascript
复制
cloudflared tunnel create [名字]
#windows
./文件名.exe tunnel create [名字]

这条命令需要之前的 cert.pem 用来验证身份。

你的家目录中会出现 ~/.cloudflared/[一长串UUID].json,里面保存这运行这条隧道所需要的授权信息。

配置路由

创建了隧道之后,我们还需要让它可以被访问。Cloudflare 支持将其部署到负载均衡器后端,或者通过 DNS 直接访问。这里只介绍后者的使用方法。

代码语言:javascript
复制
cloudflared tunnel route dns [名字或者 UUID] [想要绑定到的域名或其二级域名]

此时在cloudflare的域名DNS管理里面,你会发现这个域名被设置了一个指向 [UUID].cfargotunnel.com 的 CNAME 记录,并且通过 Cloudflare 进行代理。

示例

创建一条隧道,设置隧道名字为 test,并将其绑定到 test.vvhan.com:

代码语言:javascript
复制
# 1.
cloudflare tunnel login
# 2.
在网页中授权 vvhan.com
# 3.
cloudflare tunnel create test
# 4.
cloudflare tunnel route dns test test.vvhan.com

发布本地网站到公网 HTTP/HTTPS 服务

代码语言:javascript
复制
cloudflared tunnel --name [隧道名称] --url http://[站点地址]
# 例如:假设要将在本地的 8080 端口的网站暴露给名为 test 的隧道:
# cloudflared tunnel --name test --url http://127.0.0.1:8080

如果没有域名授权

代码语言:javascript
复制
cloudflared tunnel --url http://[站点地址]
# 例如:假设要暴露本地 8080 端口上的网站:
# cloudflared tunnel --url http://127.0.0.1:8080

cloudflare会返回一个很丑的二级域名免费使用

代码语言:javascript
复制
 +-------------------------------------------------------------+
 |  Your free tunnel has started! Visit it:                    |
 |    https://www-vvhan-com-HTTP.trycloudflare.com    |
 +-------------------------------------------------------------+

TCP 服务

代码语言:javascript
复制
cloudflared tunnel --name [隧道名称] --url tcp://[服务地址]
# 例如:假设要将在本地的 25565 端口的 TCP 服务器暴露给名为 test 的隧道:
# cloudflared tunnel --name test --url tcp://127.0.0.1:25565

如果没有域名授权

代码语言:javascript
复制
cloudflared tunnel --url tcp://[服务地址]
# 例如:假设要暴露本地 25565 端口上的 Minecraft 服务器
# cloudflared tunnel --url tcp://127.0.0.1:25565

cloudflare会返回一个很丑的二级域名免费使用

代码语言:javascript
复制
 +-------------------------------------------------------------+
 |  Your free tunnel has started! Visit it:                    |
 |    https://www-vvhan-com-TCP.trycloudflare.com    |
 +-------------------------------------------------------------+

更多配置

也可以在服务端指定配置文件以避免每次重新输入好长好长的命令,或做到同时配置多个服务。

Cloudflare Argo Tunnel文档

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/config

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内网穿透是什么?
  • 配置自己的域名(可选)
  • 授权域名
  • 创建隧道
  • 配置路由
  • 示例
  • 发布本地网站到公网 HTTP/HTTPS 服务
  • 更多配置
相关产品与服务
NAT 网关
NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档