CF穿透,免费,需要托管顶级域名到cloudflare,只支持http/https的80/443端口,不支持实际域名+端口号访问,可代理多个,需要使用多个二级域名CNAME

中国移动宽带/流量速度较慢,1020KB,而联通电信较快12MB/s

从 https://github.com/cloudflare/cloudflared/releases/ 或 https://git.histb.com/cloudflare/cloudflared/releases/ 找到你服务器对应架构的(找不到点Show all看全部,不是下deb结尾的),右键复制链接,填到下面的wget链接里

#下载并授权
wget https://github.com/cloudflare/cloudflared/releases/download/2023.3.0/cloudflared-linux-arm64 -O /usr/bin/cloudflared && chmod +x /usr/bin/cloudflared

登陆,将返回的网址,复制到电脑的浏览器打开,登陆你的CF帐号,然后选择一个托管到CF的域名,
怎么把域名托管到CF自己百度(简单讲:,在域名购买商处改NameServer为CF指定的NameServer,等一小时左右)

cloudflared login

创建隧道,会返回一个隧道ID,把隧道ID复制下来
cloudflared tunnel create cloudflaredtunnel #cloudflaredtunnel是隧道名,可以为英文数字,随便起

#创建目录用于存放配置文件
mkdir -p /etc/cloudflared/

把上面复制的隧道ID,改到下面2个地方去
hostname 是你实际在浏览器访问的域名,这个域名要CNAME到隧道上去
service是你要穿透(代理)到的位置, 例如 http://127.0.0.1:5700
直接穿透到http协议即可,后续实际域名可以直接用https访问的
可以写多组 一个- 开头就是一组
末尾固定是 http_status:404

cat > /etc/cloudflared/config.yml << EOF
tunnel: 隧道ID
credentials-file: /root/.cloudflared/隧道ID.json
ingress:
  - hostname: qinglong.209902.xyz
    service: http://127.0.0.1:5700
  - hostname: alist.209902.xyz
    service: http://127.0.0.1:5244
  - service: http_status:404
EOF

给你要实际访问的域名添加CNAME,cloudflaredtunnel是隧道名,qinglong.209902.xyz是域名
我添加了2组,所以要执行2次CNAME

cloudflared tunnel route dns cloudflaredtunnel qinglong.209902.xyz
cloudflared tunnel route dns cloudflaredtunnel alist.209902.xyz

安装cloudflared为服务

cloudflared service install

设置开机自启,并启动,然后查看服务的状态
刚创建隧道重启完,要等一分钟,然后多刷新几次

systemctl enable cloudflared
systemctl restart cloudflared
systemctl status cloudflared

如果要加新的穿透代理,就是修改 /etc/cloudflared/config.yml 文件,添加你的域名和穿透到的目标,添加CNAME,重启cloudflared

vi /etc/cloudflared/config.yml
cloudflared tunnel route dns cloudflaredtunnel 需CNAME的域名
systemctl restart cloudflared

#刚创建隧道重启完,要等一分钟,然后多刷新几次