Cloudflare提供了一个名为Argo的内网穿透功能,其主要功能类似frp内网穿透工具
但Argo不需要一台有公网IP的主机,只需要一个被Cloudflare托管的域名。
通过Argo可以很方便的在一台内网主机上搭建站点,然后通过绑定域名来访问。同时,Argo也支持http之外的服务,如ssh远程登陆。但是相比frp的方法,ssh等服务的客户端访问比较麻烦。
使用方法如下:
- 在需要搭建网站的主机上下载 cloudflared 程序,前往 GitHub (https://github.com/cloudflare/cloudflared/releases) 下载最新版
- 下载后给予运行权限 (需要注意的是运行它不需要root权限)
- 登陆cloudflare账户
./cloudflared-linux-amd64 tunnel login
- 创建一个隧道并命名,这边范例命名为 site1
./cloudflared-linux-amd64 tunnel create site1
- 创建网站的cname记录,这边范例的域名为 argo1.example.com
./cloudflared-linux-amd64 tunnel route dns site1 argo1.example.com
其中 site1 为上一步的隧道名 - 在服务器端运行隧道:
./cloudflared-linux-amd64 tunnel run --url localhost:80 site1
- 给搭建的站点赋予域名 argo1.example.com: 这一步有很多做法,最简单的方法是在宝塔面板中直接操作,操作完毕后在浏览器访问该域名即可的访问站点了
- 然而默认的情况下站点没有https加密,此时可以在宝塔面板里给站点添加 SSL 证书,但不要点选 强制HTTPS
- 刷新页面后可以看到HTTPS加好了
- 最后 需要把上面"运行隧道"的命令加入服务或者在screen模式里后台运行,否则终端窗口关闭后隧道通讯就中断了
本文参考了 土豆不好吃 的 Cloudflare Argo Tunnel 小试:我终于可以用树莓派做网站啦 一文,特此感谢。