前言

手上的迅雷赚钱宝一代(ws1408)刷了openwrt,然后装了samba4、qbit、wol、filebrowser、ttyd、minidlna,除了这些以总想着还能在这个电子垃圾上挖掘出什么功能,最后想到它作为一个24小时开机的下载机,再弄个cloudflared给我的cloudflare tunnle做冗余connector是个不错的主意。

之前的博客里提到过,cloudflare tunnel的官方文档里就写了,想要提高一个tunnel的稳定性,有花钱的方案也有免费的方案,免费的方案就是自己多弄几个机器装cloudflared来作为tunnel的connector,这样哪怕其中一个connector崩了,还有其它几个connector备份可用。

我实测一个tunnel配置两个connector(cloudflared)就再没见过degrade或者down的标识了。但这玩意多多益善,3个总是比2个稳定,那就开始吧~


安装

第一步:下载

openwrt说到底还是魔改的linux,所以找到合适版本的cloudflared就行了。

实测clouflare官方提供的二进制包就可以直接使用,项目地址:【cloudflare/cloudflared

ws1408用的芯片是大家的老朋友amlogic s805,我们都很熟悉它是armv7l/armhf的架构。

可以选择复制下载链接,然后ssh连上openwrt,再用wget下载。也可以直接下载到本地,然后通过winscp或者其它方法上传到机器。

我在机器上插了一张sd卡挂载到/mnt/sdcard作为软件安装目录,因为ws1408自带存储只有72MB太金贵啦。

# 进入目录
cd /mnt/sdcard/cloudflared

# 下载
wget -O cloudflared https://github.com/cloudflare/cloudflared/releases/download/2024.4.1/cloudflared-linux-armhf

# 添加可执行权限
chmod +x cloudflared

第二部:安装

软件下载完以后,首先需要登录cloudflare官网,进入tunnel配置页面,找到自己的tunnel,在configure页面的overview标签页,找到自己的这个tunnel的token。

打码的就是token了,复制以后先放一边备用。

然后依然是ssh连上openwrt,开始安装

# 进目录
cd /mnt/sdcard/cloudflared

# 安装服务
./cloudflared service install [token]

执行install命令以后,终端会有一些信息输出,提示在环境变量$PATH中找不到可执行文件。

这里可以先不管它,我们手动启动。

# 进入init.d目录
cd /etc/init.d

确定目录下有cloudflared的服务配置文件。

然后启动cloudflared

service cloudflared start

然后用htop确认cloudflared是否启动

到这里就完成在openwrt上安装cloudflare tunnel的connector惹。

🎉


一些已知问题

我的ws1408装的opwnwrt版本是21.02.7,内核是3.10.33。

按照上文的方法安装好cloudflared以后,可以启动,但是没法把它添加到开机自启。执行service cloudflared enable会提示不支持enable命令。

在openwrt的后台——启动项中显示cloudflared的启动项是禁用,点击启用,会提示启用失败。

如果你熟悉init.d的启动脚本语法,可以试试调整/etc/init.d/cloudflared能否解决这个bug。

我用了另外的办法解决,那就是在本地启动脚本里手动添加一条命令。

service cloudflared start

😂