使用国外服务器如何实现内网穿透?很简单,配置一下CloudFlare Argo Tunnel即可

2023年5月16日 668点热度 0人点赞 0条评论

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

大概来说就是warp的一种补充,这个Argo貌似只支持443https的应用。

内网穿透是什么?
内网穿透,指的是将内网端口暴露到公网。由于防火墙的限制,或者中国大陆普遍的 NAT 宽带接入方式,大多用户没有属于自己的公网 IP,因此其它用户无法访问其设备上对外开放的服务(例如 Web 服务器,或者比较常见的案例是 Minecraft 服务器)。过去有许多常见的内网穿透解决方案(例如花生壳、Ngrok、frp 及一系列衍生自 frp 的服务等),而 Cloudflare Tunnel 的免费开放,又为我们提供了一种看起来不错的新选择。

配置自己的域名(可选)
Cloudflare Tunnel 可以绑定到自己的域名上,也可以直接用 Cloudflare 自己提供的域名。如果希望使用 Cloudflare 提供的域名,可以跳过此节。
授权域名
运行

cloudflared tunnel login
#windows
./文件名.exe tunnel login

在浏览器中选择一个域名来授权。你的家目录中会出现 ~/.cloudflared/cert.pem。在我们创建隧道和设置 DNS 解析的时候,我们会用到这个文件。
创建隧道
创建一个隧道

cloudflared tunnel create [名字]
#windows
./文件名.exe tunnel create [名字]

这条命令需要之前的 cert.pem 用来验证身份。你的家目录中会出现 ~/.cloudflared/[一长串UUID].json,里面保存这运行这条隧道所需要的授权信息。
配置路由
创建了隧道之后,我们还需要让它可以被访问。Cloudflare 支持将其部署到负载均衡器后端,或者通过 DNS 直接访问。这里只介绍后者的使用方法。

cloudflared tunnel route dns [名字或者 UUID] [想要绑定到的域名或其二级域名]

此时在cloudflare的域名DNS管理里面,你会发现这个域名被设置了一个指向 [UUID].cfargotunnel.com 的 CNAME 记录,并且通过 Cloudflare 进行代理。
示例
创建一条隧道,设置隧道名字为 test,并将其绑定到 test.vvhan.com:

# 1.
cloudflare tunnel login
# 2.
在网页中授权 vvhan.com
# 3.
cloudflare tunnel create test
# 4.
cloudflare tunnel route dns test test.vvhan.com

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

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

如果没有域名授权

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

cloudflare会返回一个很丑的二级域名免费使用
+-------------------------------------------------------------+
| Your free tunnel has started! Visit it: |
| https://www-vvhan-com-HTTP.trycloudflare.com |
+-------------------------------------------------------------+
TCP 服务

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

如果没有域名授权

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

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

 +-------------------------------------------------------------+
 |  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

小小调酒师

此刻打盹,你将做梦; 此刻学习,你将圆梦。 个人邮箱:shellways@foxmail.com

文章评论