利用Cloudflare的Argo隧道在内网服务器或容器内建站

651天前 · Linux 使用 · 网络技术 · 1386次阅读

更新注意: 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暴露到公网的内容。

Argo隧道的使用方法如下:

有自己域名的情况:

  • 登陆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模式里后台运行,否则终端窗口关闭后隧道通讯就中断了

没有自己域名的情况:

  • 直接运行 ./cloudflared-linux-amd64 tunnel --url localhost:80
  • 系统会给你分配一个类似 this-is-an-example.trycloudflare.com 的域名
  • 假如你是使用宝塔/aapanel或者其他方式建站的,需要把分配的地址绑定上去

本文参考了 土豆不好吃 的 Cloudflare Argo Tunnel 小试:我终于可以用树莓派做网站啦 一文,特此感谢。

👍 9

cloudflare argo 内网穿透

最后修改于68天前

评论

贴吧 狗头 原神 小黄脸
收起

贴吧

狗头

原神

小黄脸

目录

avatar

伊藤

41

文章数

6

评论数

8

分类