前些日子入手了斐讯K3,近期就刷了许多网上的固件。
PS:刚刚更新完就发现rclone有一个选项--no-check-certificate=true。吐血中...
一、ROM总结
1. LEDE固件
LEDE固件中,最好用的是LEDE by stones。下载地址。
只能使用开源驱动,所以缺点很明显:
- 只有USB2.0
- 无线信号较差
优点:
- 软件支持很全,尤其是koolshare带的酸酸乳,功能强大。
- 扩展程序丰富
- 内核新,不锁定根目录,二次开发很容易
但因为我想搭个NAS,拷贝文件时不到30MB/s的速度实在无法忍受,遂换了官改ROOT固件。
2. 官改ROOT
一个是出自 abccba94,另一个是 tianbaoha,都集成了entware软件中心和常用的程序。实测都可以跑到读100MB/s,写70MB/s。
二、使用Dropbox
2.1 准备工作
使用之前,确保安装了entware软件中心。
因为我需要同步的功能,所以简单的 dropbox_uploader 还满足不了我,最终把目标盯在了rclone上。
PS:运行某些程序如果出现了命令不存在,如readlink
不存在,执行
opkg find *readlink*
即可看到:
coreutils-readlink - 8.23-3 - Full version of standard GNU readlink utility.
然后执行
opkg install coreutils-readlink
安装上就行了。
2.1 安装rclone
opkg install rclone_nohf
然后按照官网上说的来配置,你就会发现这个问题:
x509 failed to load system roots and no roots provided
无法连接到dropbox API?其实是因为本地没有根证书,所以无法建立https连接。
你可以试试
wget https://www.baidu.com
它会告诉你:无法连接到www.baidu.com,因为无法验证它的根证书颁发机构。
2.2 安装根证书
首先安装openssl:
opkg install openssl
然后参照Install Certs In OpenWrt安装根证书。
本来一句话
opkg install ca-certificates
就能搞定,但是官方ROOT版本的/etc和/usr目录等都不可写,所以我们就只有更改系统证书保存目录,然后手工添加了。
创建证书保存目录:
mkdir -p /tmp/media/nand/certs
创建自己的profile文件:
vi /tmp/media/nand/profile
内容是:
export SSL_CERT_DI=/tmp/media/nand/certs
执行
source /tmp/media/nand/profile
使变更生效。
目前没办法修改/etc/profile
文件,所以每次重启后需要手动执行一遍。
安装openssl util:
opkg install openssl-util
然后创建add-certs.sh:
vi /tmp/media/nand/add-certs.sh
内容如下:
#!/bin/sh
# author: joda
openssl=/opt/bin/openssl
certdir=$SSL_CERT_DIR
if [ ! -f $openssl ]; then
echo "ERROR: Can't find $openssl. openssl-util installed?" >&2
fi
if [[ "$1" = "-f" ]]; then
overwrite=1
shift # remove $1
fi
if [ -f "$1" ]; then
certfile=$1
certname=`basename $certfile`
echo "Certificate $certname"
echo " copy to $certdir"
if [ "1" -ne "$overwrite" ] && [ -f "$certdir/$certname" ]; then
echo >&2
echo "ERROR: certificate $certname exists" >&2
exit 2;
fi
cp "$1" "$certdir/$certname"
# create symbolic link from hash
echo -n " generating hash: "
HASH=`$openssl x509 -hash -noout -in $certfile`
echo "$HASH"
# handle hash collisions
suffix=0
while [ "1" -ne "$overwrite" ] && [ -h "$certdir/$HASH.$suffix" ]; do
let "suffix += 1"
done
echo " linking $HASH.$suffix -> $certname"
if [ $overwrite ]; then
ln -sf "$certname" "$certdir/$HASH.$suffix"
else
ln -s "$certname" "$certdir/$HASH.$suffix"
fi
else
echo >&2
echo "ERROR: file does not exist $1" >&2
echo >&2
echo "This script adds (root) certificates for wget(ssl) to $certdir." >&2
echo "SYNTAX: `basename $0` [Options] [x509-certificate]" >&2
echo >&2
echo "Option: -f force overwriting if certificate exists" >&2
fi
和Install Certs In OpenWrt页面相比,只是修改了openssl换成了entware安装的位置。
在 docker 中创建一个 ubuntu 容器,安装 ca-certificates ,然后就可以提取ca了:
docker run -ti --rm --name ca ubuntu
apt update
apt install ca-certificates
docker cp ca:/usr/share/ca-certificates/mozilla .
提取到的ca就在mozilla文件夹中。导到路由器中:
cd mozilla && scp -r mozilla admin@p.to:/tmp/media/nand/cas
然后执行一个小小的循环,将所有cas下的证书导入:
for i in cas/*
do
/tmp/media/nand/add-certs.sh $i
done
接着就可以享受rclone咯
Comments | NOTHING