CloudFlare Tunnels无需公网实现远程访问局域网任意设备,没有任何费用。安装后可实现局域网远程访问局域网中同IP端的设备, 支持windows、linux、MAC、docker。 这里以OpenWRT为基础演示安装方法,因为没有OpenWRT软件包,只能使用Github二进制文件进行实现。
1、去https://github.com/cloudflare/cloudflared/releases找下自己内核的文件复制下载链接备用,或者直接下载文件,上传到OpenWRT里,这里我以arm构架演示。
下载二进制文件:
curl -O -L https://github.com/cloudflare/cloudflared/releases/download/2024.5.0/cloudflared-linux-arm64
赋予执行权限并移动到相应文件夹
chmod +x cloudflared-linux-arm64 mv cloudflared-linux-arm64 /usr/bin/cloudflared
2、创建启动服务init.d
touch /etc/init.d/cloudflared chmod +x /etc/init.d/cloudflared
3、将下面内容添加到/etc/init.d/cloudflared,记得下面内容token中位置改为你自己的token,可以使用vim,nano,或者winscp都可以。
#!/bin/sh /etc/rc.common USE_PROCD=1 START=95 STOP=01 cfd_init="/etc/init.d/cloudflared" cfd_token="此处改为你的token" boot() { ubus -t 30 wait_for network.interface network.loopback 2>/dev/null rc_procd start_service } start_service() { if [ $("${cfd_init}" enabled; printf "%u" ${?}) -eq 0 ] then procd_open_instance procd_set_param command /usr/bin/cloudflared --no-autoupdate tunnel run --token ${cfd_token} procd_set_param stdout 1 procd_set_param stderr 1 procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} procd_close_instance fi } stop_service() { pidof cloudflared && kill -SIGINT `pidof cloudflared` }
4、最后,设置Cloudflred init.d 服务开机启动,并启动该服务。
/etc/init.d/cloudflared enable /etc/init.d/cloudflared start
ps:CloudFlare Tunnels设置方法,需要在CloudFlare中绑定一个自己域名。进入控制台点击Zero Trust,点击Networks下的Tunnels,点击右侧Create a tunnel创建一个通道。默认选择下一步,创建一个名称,save下一步就会出先token(如下图红框,显示不全,需要复制粘贴到其他位置在将install后的token粘贴使用),成功后控制台status会变成绿色,点击后面三个点选择configure可以修改,并在Public hostnames中绑定域名。