最新消息:本站原qzkyl域名已转让,后期该域名所有言论与本站无关,同时本站已改名ipve虚拟机,交换友链请发送邮件zc#ipve.cn(#换@)

openwrt使用CloudFlare Tunnels实现内网穿透

网络路由 ipve 907浏览 0评论

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中绑定域名。

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址