https://github.com/cloudflare/cloudflared
https://dash.cloudflare.com/login
进入 https://dash.cloudflare.com/login 登陆,先将域名DNS解析至cloudflare,点击左侧Zero Trust,Access-Tunnels-Create tunnel-输入Tunnel name(第一次需要选择套餐,选择免费套餐,同时绑定付款方式,PayPal既可),4.Run the following command得到token令牌,例如: eyJhIjoi......prWkRRNCJ9。
SSH连接openwrt后台,切换root账户
VERSION="2023.3.1"
curl -O -L https://github.com/cloudflare/cloudflared/releases/download/${VERSION}/cloudflared-linux-amd64 && chmod +x cloudflared-linux-amd64 && mv cloudflared-linux-amd64 /usr/bin/cloudflared
VERSION根据https://github.com/cloudflare/cloudflared Releases版本填写,cloudflared-linux-amd64根据路由器架构填写
touch /etc/init.d/cloudflared
chmod +x /etc/init.d/cloudflared
创建cloudflared,并给予权限
编辑/etc/init.d/clouddflared
,加入以下内容, <token>
改为cloudflare给予的token令牌
#!/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`
}
设置为开机启动并启动文件
/etc/init.d/cloudflared enable
/etc/init.d/cloudflared start
查看进程和进程日志,查看是否启动
ps | grep cloudflared
logread | grep cloudflared
无问题后,回到cloudflare网站,刚刚创建的Tunnel name后面显示HEALTHY既完成部署。
点击刚才创建的Tunnel name后面的3个点,点击Configure-上方Public Hostname-Add a public hostname,输入Subdomain以及Service既可。