更新注意: Argo 隧道(Argo tunnel)这个名字目前已经被Cloudflare 更名为 Cloudflare Tunnel。
Cloudflare提供了一个名为Argo的内网穿透功能,其主要功能类似frp内网穿透工具,但Argo不需要一台有公网IP的主机,只需要一个被Cloudflare托管的域名。
通过Argo可以很方便的在一台内网主机上搭建站点,然后通过绑定域名来访问。假如没有自己的域名,那也没有关系,可以使用Cloudflare分配的随机二级域名。
同时,Argo也支持http之外的tcp服务,如ssh远程登陆。但是相比frp的方法,ssh等服务的客户端访问比较麻烦。只不过在访问被转发的tcp服务时,客户端需要先运行 cloudflared access 命令,才能访问tcp服务。涉及到tcp服务的操作,留到以后的文章再介绍。
这篇文章只介绍将http服务(网站)通过Argo暴露到公网的内容。
在需要搭建网站的主机上下载 cloudflared 程序:
下载后给予运行权限(需要注意的是运行它不需要root权限):
chmod +x cloudflared
这里分为两种情况:有自己域名 和 没有自己域名。
./cloudflared-linux-amd64 tunnel login
此时终端会给出一个URL,复制到浏览器登录并授权。
site1:
./cloudflared-linux-amd64 tunnel create site1
argo1.example.com,并将它指向刚才创建的隧道:
# 其中 site1 为上一步的隧道名
./cloudflared-linux-amd64 tunnel route dns site1 argo1.example.com
./cloudflared-linux-amd64 tunnel run --url localhost:80 site1
argo1.example.com 绑定到你的Web服务上。
screen 模式里后台运行,否则终端窗口关闭后隧道通讯就中断了。如果没有自己的域名,可以直接运行以下命令:
./cloudflared-linux-amd64 tunnel --url localhost:80
系统会给你分配一个类似 this-is-an-example.trycloudflare.com 的随机域名。
假如你是使用宝塔/aapanel或者其他方式建站的,需要把这个分配的地址绑定上去即可访问。