事到如今,已经很少有运营商愿意免费给你公网 IP 了。 CGNAT 早已是常态,当然从好的一方面来看,至少它隐藏了你的真实 IP,一定程度上让你家里的路由器/NAS 免受直接的黑客攻击。
不过如果我想要将 NAS 上的一些服务公开方便出门的时候使用,就成了一个头疼的问题。最简单的方法可能就是花钱从运营商那里买一个静态 IP,但有的运营商也只提供动态公网IP,还得用 DDNS。用 Cloudflare 隧道可能是另一个还算不错的选择。
注意,根据我自己的经验和网上观察,国内使用的速度不是很理想,但也不至于到不能用的程度,可能具体还得根据你当地网络状态来看。得试试才知道
简单介绍一下
网上对 Cloudflare 的隧道介绍已经很多了,简单来说就是它会在你内网跑一个 cloudflared 进程/服务,这个客户端会和 Cloudflare 服务器通信绑定,然后你在 Cloudflare 设置好解析后,一切访问到这个域名的请求,就会自动通过这个客户端转发到你家里的内网……就是这么简单!
一些配置要点
这里就不再赘述具体配置,网上能找到的教程很多,只是有些略有过时。
- Cloudflare 配置的入口,tunnel 不再显示在 access 分类,而是旁边的 network 分类里;
- cloudflared 的配置现在可以一键生成,不论是各个平台直接使用还是 docker 启动,无需编辑复杂的文件了
- 配置解析的时候先选 https,在高级设置中勾选忽略 tls 证书验证,然后再切换到 http,(我相信没人在内网使用https公共证书吧?)
- 通信协议默认是 quic,但据说国内的话切换成 http2 会大大降低丢包率,不妨一试。
fireflyiii + pico 踩坑
我主要是用来运行我自己日常用的记账系统的,这里遇到一个奇怪的bug,pico这个客户端无论如何也无法通过 token 去 firefly iii 进行验证,明明单独使用这两个都已经可以通过公网访问。最后我取消了 firefly iii 的域名解析,让 pico 通过本地 192.168.xxx 的地址成功验证了。不过奇怪的时直接使用 docker 内网的地址就不行,尽管我已经在 docker compose 中设置了它们使用同一个内网。
本文由 落格博客 原创撰写:落格博客 » 无需公网IP 使用 Cloudflare Tunnel 内网穿透
转载请保留出处和原文链接:https://www.logcg.com/archives/3917.html