Kela
1
CloudFlare Tunnel 是CloudFlare免费提供的内网穿透服务。
Tunnel可以做什么
-
将本地网络的服务暴露到公网,可以理解为内网穿透。 例如我们在本地服务器
192.168.1.1:3000
搭建了一个 Transmission 服务用于 BT 下载,我们只能在内网环境才能访问这个服务,但通过内网穿透技术,我们可以在任何广域网环境下访问该服务。相比 NPS 之类传统穿透服务,Tunnel 不需要公网云服务器,同时自带域名解析,无需 DDNS 和公网 IP。
-
将非常规端口服务转发到 80/443 常规端口。 无论是使用公网 IP + DDNS 还是传统内网穿透服务,都免不了使用非常规端口进行访问,如果某些服务使用了复杂的重定向可能会导致 URL 中端口号丢失而引起不可控的问题,同时也不够优雅。
- 自动为你的域名提供 HTTPS 认证。
- 为你的服务提供额外保护认证。
- 最重要的是——免费。
Tunnel 工作原理
Tunnel 通过在本地网络运行的一个 Cloudflare 守护程序,与 Cloudflare 云端通信,将云端请求数据转发到本地网络的 IP + 端口。
希望1Panel能够添加对此功能的支持,这只是一项建议,不论大佬们是否采纳我都由衷的感谢各位大佬的辛苦付出!
王贺
2
感谢反馈。
目前还有几个问题:
1、上述应用是否开源。
2、官方是否有提供容器化部署方案。
小小粉刷匠
3
CloudFlare Tunnel未开源,但官方有容器化部署方案
Kela
4
这是cloudflared的开源地址https://github.com/cloudflare/cloudflared/
其中包含CloudFlare Tunnel程序。
官方页面Tunnel | Zero Trust 应用连接器
可以在官方页面找到相应文档
希望能够帮助到你。
我个人是支持上架应用的
不过对于无公网ip的“挂机宝”产品(NAT服务器),只有先通过CloudFlare Tunnel内网穿透后,才能使用1panel面板。
“挂机宝”产品用户,我个人不建议使用容器化部署,而是使用官方的安装脚本,此外,官方提供的脚本可以远程管理隧道,更为方便。
以CentOS系统为例
1 安装cloudflared
curl -L --output cloudflared.rpm https://cors.isteed.cc/github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm && sudo yum localinstall -y cloudflared.rpm
2 配置cloudflared自启动
2.1 复制 cloudflared.service
、cloudflared-update.service
、cloudflared-update.timer
到目录 /etc/systemd/system
cloudflared.service
[Unit]
Description=cloudflared
After=network.target
[Service]
TimeoutStartSec=0
Type=notify
ExecStart=/usr/bin/cloudflared --no-autoupdate tunnel run --token 【Your_Tunnel_Token】
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
cloudflared-update.service
[Unit]
Description=Update cloudflared
After=network.target
[Service]
ExecStart=/bin/bash -c '/usr/bin/cloudflared update; code=$?; if [ $code -eq 11 ]; then systemctl restart cloudflared; exit 0; fi; exit $code'
cloudflared-update.timer
[Unit]
Description=Update cloudflared
[Timer]
OnCalendar=daily
[Install]
WantedBy=timers.target
2.2 配置自启动
依次执行
systemctl daemon-reload
systemctl enable cloudflared.service
systemctl start cloudflared.service
systemctl status cloudflared.service
出现框中两项即为启动并成功设置开机自启动
3 更新Cloudflared
请执行这条命令,即可一键自动更新并重启服务
curl -L --output cloudflared.rpm https://cors.isteed.cc/github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm && sudo yum localinstall -y cloudflared.rpm && systemctl restart cloudflared.service
自动更新命令可以添加到 1panel 的终端快速命令里
效果:
最后一行是由于隧道重启,1panel面板暂时断开连接
Kela
7
是的,这对于没有公网的自建服务器站长来说应该是一项有力的工具