CloudFlare Tunnels 内网穿透 家宽建站
什么是cloudflare tunnels?
Cloudflare Tunnel 提供了一种安全的方式,让您在没有公共可路由 IP 地址的情况下连接到 Cloudflare 的资源。使用 Tunnel,您不会将流量发送到外部 IP,而是您基础设施中的一个轻量级守护程序会创建仅限出站的连接到 Cloudflare 的边缘。Cloudflare Tunnel 可以安全地将 HTTP Web 服务器、SSH 服务器、远程桌面和其他协议连接到 Cloudflare。这样,您的源可以通过 Cloudflare 提供流量,而不会容易受到绕过 Cloudflare 的攻击的影响。
内网穿透
上面是使用ChatGPT翻译的,说白了就是通过cf搭建一个隧道进行内网穿透,只需要一个域名,就可以公开自己部署在本地的服务,比如这个博客。
优点
不需要拥有公网IPv4地址,只要能访问互联网,可以安装cloudflared就可以使用,兼容多操作系统,包括Windows、MAC、Debian、Ret Hat,当然也可以使用docker部署,支持arm设备。
无需配置ssl,不用搞什么反代,默认https连接。
可以通过 Cloudflare 的仪表盘进行配置和管理,简化部署和维护。
源站连公网IP都没有,究极安全,赢麻了😋
缺点
国内延迟高,部分地区阻断。
部署所需
一个cloudflare账号
一个托管在cloudflare的域名
可能需要信用卡验证,随便一张虚拟卡或者PayPal应该也行
部署过程(docker部署)
登录cloudflare账号,点击
Zero Trust
→Access
→Tunnels
,点击Create a tunnel
创建隧道,Save Tunnel
保存。注意架构,选择自己的系统自行安装,我使用docker安装,选中docker,复制命令,ssh登录到家里的服务器上,粘贴命令创建cloudflared容器。连接成功后设备会在该页下方显示。
如果没有docker可以看这篇文章:Docker安装
ChatGPT帮我美化了一下命令,只需要复制token替换一下最后一行即可,与原命令相比添加了容器名称、自动重启、后台运行。并且用n1运行了一下,arm64是可用的。
docker run -d \ --name cloudflared \ --restart always \ cloudflare/cloudflared:latest \ tunnel --no-autoupdate run \ --token YOUR_TOKEN_HERE
进入隧道配置页面,点击
Public hostname
→Add a public hostname
,选择自己托管在cf的域名,可选自定义子域名,Service
栏填写所需传输协议,本次穿透内网emby服务,选择http,URL为内网IP地址,点击Save hostname
保存。DNS应该会自动修改。
生效很快,大功告成,可惜延迟很高,自行探索适用场景。
结尾
运行状况如下,穿透博客效果不错。
题外话
一运行nas-tools和qBittorrent就会导致内网穿透服务(包括cloudflared、frp、nps)全部间断掉线,看日志实在是不知道问题出在哪,只能关掉了。