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既可。

最后修改:2023 年 05 月 16 日
如果觉得我的文章对你有用,请随意赞赏