免费的Cloudflared实现外网访问群晖(续)

编程入门 行业动态 更新时间:2024-10-10 23:15:58

免费的Cloudflared实现外网访问群晖(续)

免费的Cloudflared实现外网访问群晖(续)

这两天可能中了甲流,因为做了抗原始终是一条杠

老婆是前天晚上开始发烧的,我则是从昨天中午开始的,昨晚是 37.8℃,今早起来是 38℃,症状就是肌肉酸痛,头有点昏昏沉沉的,公众号后台、博客上都积攒了不少提问的,等老苏缓过劲来再一一答复吧


前言

老苏 3 年前买的腾讯 vps 下个月要到期了,续费的话有点肉疼,毕竟它的作用只是为了写免费的教程

更何况因为 ml 域名的问题,也不能备案。那要再加上买域名,会是一笔不小的开支,对老苏这种还在努力搬砖的人来说,真是贵啊。

老苏自用比较简单,直接 Tailscale ,把子网路由一开,在哪访问都跟在家一样,但是写文的话,总有人问 npm 做反向代理的问题,老苏还是需要有个环境来验证。

本着能省则省的原则,老苏开始寻找相应的方案

解决方案

老苏脑子里第一个冒出来的念头就是用 Cloudflared + npm 的方式,理论上肯定是可行的,但是是否真的可行,会遇到什么坑,那只有实践了才知道

乘着五一有几天假期,终于把这个一直在脑子的念头实现了,感觉好像省了几个亿 😂

本文假设你已经会搭建 CloudflaredNginx Proxy Manager,如果还不会的话,建议去看老苏写的相关文章,这里就不赘述了

  • 免费的Cloudflared实现外网访问群晖

  • 反向代理服务器nginx-proxy-manager

开始动手

在上篇 免费的Cloudflared实现外网访问群晖 中,我们是针对一个一个的域名做解析的,不仅要在本地修改 config.yaml 文件,还要去 CloudflareDNS 里添加子域名的CNAME 记录,实在是有点烦人

既然要弄,就要把痛点解决掉才有意义 💪

泛域名解析

Cloudflared 是支持泛域名解析的,只要在域名 laosu.ml 域名下面添加两条 CNAME 记录

类型名称目标
CNAME@<隧道 UUID>.cfargotunnel
CNAME*<隧道 UUID>.cfargotunnel

目的是将 a.laosu.mlb.laosu.mlc.laosu.ml等等的域名请求,都发给 <隧道 UUID>.cfargotunnel

config.yaml

接下来要修改 config.yaml 文件,修改前是👇下面这样的

tunnel: <隧道 UUID>
credentials-file: /root/.cloudflared/<隧道 UUID>.jsoningress:- hostname: a.laosu.mlservice: http://192.168.0.199:8180- hostname: b.laosu.mlservice: http://192.168.0.199:7123- hostname: c.laosu.mlservice: http://192.168.0.199:9000- service: http_status:404

修改后,只需要一条记录

tunnel: <隧道 UUID>
credentials-file: /root/.cloudflared/<隧道 UUID>.jsoningress:- hostname: "*.laosu.ml"service: http://192.168.0.199:2080- service: http_status:404

目的就是将 <隧道 UUID>.cfargotunnel 的请求,都转发给 Nginx Proxy Manager2080端口

npm 的设置

以老苏的测速服务为例,本地访问地址为 http://192.168.0.199:8180

主机设置是跟之前一样的

但是 SSL 不同,不要设置证书

因为默认情况下, Cloudflared 是自带证书的,npm中再设置证书,反而会导致 ERR_TOO_MANY_REDIRECTS 错误

所以不要设置证书才可以正常访问

顺便测个速

比之前老苏的 1M 小水管强多了,而且再也不用带尾巴访问了,截端口问题也一劳永逸的解决了

用来写教程,Cloudflared 的免费套餐已经足够用了

安全性

安全性方面,你可以结合 CloudflareZero Trust 来设置存取规则

老苏设置了邮件验证,所以当访问 时,会弹出右键地址输入框

当然只添加了自己的邮箱

邮件中会收到验证码

填写正确的验证码之后就可以看到你访问的站点了

为了一劳永逸,针对的Application URL也是用的 *.laosu.ml

小结

所以后续,每次增加一个服务,只要在 npmAdd Proxy Host,然后填写 Domain NamesIPPort 就可以了,是不是够简单了?

如果你访问的域名在 npm 中没有设置,例如 ,你会看到

免费的东西总归会有限制的,如果您的应用程序需要传输大量数据或高带宽连接,使用 Cloudflare Tunnel 可能就不是最佳选择了。

参考文档

免费的Cloudflared实现外网访问群晖 | 老苏的blog
地址:

Using Cloudflare Tunnel with Nginx Proxy Manager : selfhosted
地址:/

更多推荐

免费的Cloudflared实现外网访问群晖(续)

本文发布于:2024-03-04 01:03:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707845.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Cloudflared

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!