rclone在openwrt挂载onedrive的E5开发者API实现网盘SMB本地化及续期

一:前方

之前淘宝购买的office 365账号,能激活桌面版office 2019增强版,但是购买的账号,过了评价期后,就不能登录了,提示账号密码错误,我Fuck卖家的无德呀!另外,细想,用别人账号始终都不是安全的策略,现在微软推出开发者E5账号,免费使用90天的订阅,如果期间有使用到开发者API做读写,那会视为有开发行为,为自动给续期,就利用这点,我要成为开发者(其实是冲着能使用正版office365桌面版)去。

二:注册E5开发者

这里网上有太多的教程了,就不再 赘述了

三:微软

先在软件上注册应用,并获取到

应用ID:clientID:

应用secret:secretID值

token:这个在操作电脑上弄,下面讲到

#### 设置 API 权限

  • 点击API 权限,按照图示进行操作,添加Files.ReadFiles.ReadWriteFiles.Read.AllFiles.ReadWrite.Alloffline_accessUser.Read这些权限。
image-20211008144738846

四:OpenWrt 上操作

先在OP上启用Rclone服务

image-20211008145554035

之前写* openwet使用Rclone同步阿里云网盘并开机自动挂载有介绍过

五:操作——电脑上windows10——PuTTY——OpenWrt

先打开PuTTY,登录上OpenWrt路由器

rclone config配置

  1. 输入n 新建rclone同步盘
  2. 输入名称,我输入onedriveE5
  3. 选择类型,我选择23,23 / Microsoft OneDrive
    \ “onedrive”(这里要自己留意,rclone版本不一样,编号会不一样)
  4. OAuth Client Id=》填上对应的ClientID
  5. OAuth Client Secret=>填上对应的Clinet Secert
  6. Edit advanced config? (y/n)=》n
  7. 重点说说这步,默认是Yes的,但是我们Openwrt没有GUI和流量器,无法完成打开浏览授权,所以这里要选择n

Remote config
Make sure your Redirect URL is set to “http://localhost:53682/” in your custom config.
Use auto config?

  • Say Y if not sure
  • Say N if you are working on a remote or headless machine
    y) Yes (default)
    n) No

8.result> 封上下面步骤的token码:{所有内容}

9.Your choice> 1

image-20211008144621682

最后提示确认,完成后显示所有配置信息

六:操作——电脑上windows10——Rclone

下载win版本的Rclone,这一步是为了使用clientID和client secertID连接服务,生成五:8.所需要的token码

1.在下载解决的目录地址栏目输入CMD,就能打开所在路径的SHELL文件了

img

2.输入

rclone authorize "onedrive" "clientID" "secertID"

3.这一步是为了在没有GUI流量器的OpenWrt情况下获取到token值

七:挂载

前文已经写过如何挂载了,这里就不再重复,看看效果

image-20211008123042161

已成功挂载上

image-20211008145334515

加上自启动脚本,重启后也能自动挂载上

八:共享目录

image-20211008145525346

这里添加个共享,为了方便映射成网络磁盘

九:SMB网络磁盘

image-20211008145206367

映射了一个onedrive和一个aliyun的网络磁盘

image-20211008145246352

还能直接在多平台同步编辑文件

十:总结

现在过程主要是三样东西,ClientID,Secert,Token

前两样在微软获得,Token要在支持跳转的浏览器环境在授权获取,现在唯一不确定的

现在已知道 的是API 授权有效期是24个月,但不清楚Token和有效期是多久,如果时间较短,那整个折腾意义就不大了!希望Token能长久有效吧,这样就能完美了,即满足了网盘需求,又满足了office 365套件!

openwrt网络共享zeroTier异地无法访问原因

写在前面

设置共享这些就不写了,主要写一下这次遇到的问题

1,共享后,本地局域网IP:192.168.2.2 能正常打开共享目录

1

2,zerotier后,虚拟的IP:192.168.192.215 ,WEB能正常访问

3,IP:192.168.192.215 SMB不能访问共享目录

过程

首先以为是防火墙问题,一通设置后,把原来跑不满千兆原因反而找到了,也算因额外收获吧!

接着从共享找原因

先看对比以前能正常使用的模板

[global]
netbios name = |NAME|
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
bind interfaces only = no
deadtime = 30
enable core files = no
# invalid users = root
local master = no
map to guest = Bad User
max protocol = SMB2
min receivefile size = 16384
null passwords = yes
security = user
passdb backend = smbpasswd

smb passwd file = /etc/samba/smbpasswd

use sendfile = yes

现在固件代码

[global]
netbios name = |NAME|
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
bind interfaces only = yes
deadtime = 30
enable core files = no
#invalid users = root
local master = yes
map to guest = Bad User
max protocol = SMB2
min receivefile size = 16384
null passwords = yes

passdb backend = smbpasswd
security = user
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY IPTOS_LOWDELAY
use sendfile = yes

通过对比

以现能正常使用的模板与不能访问的新模板有2行代码不一样

bind interfaces only = no

local master = no

新模板还多了行代码

socket options = TCP_NODELAY IPTOS_LOWDELAY

解决办法

只要把bind interfaces only = yes 改成no就可以了

hg556a官方openwrt固件安装挂载点

   加装硬盘

  前面介绍了,装好aira2自启动!《hg556a刷了官方openwrt安装aria2,增加自启动》无非就是想实现离线下载嘛,既然要下载,那挂上移动硬盘和U盘那是必须的嘛,但官方固件没有集成这些挂载点的WEB管理页面,那就自己装吧!

    方法是原文参考:http://hi.baidu.com/opwrt/item/cc475e12c8923cf99d778a61

openwrt 自动挂载U盘、移动硬盘

步骤

opkg update

opkg install kmod-usb-core

opkg install kmod-usb-ohci          #安装usb ohci控制器驱动
#opkg install kmod-usb-uhci     #UHCI USB控制器
opkg install kmod-usb2                #安装usb2.0
opkg install kmod-usb-storage     #安装usb存储设备驱动
opkg install kmod-fs-ext3              #安装ext3分区格式支持组件
opkg install mount-utils                #挂载卸载工具
opkg install ntfs-3g                      #挂载NTFS
opkg install kmod-fs-vfat              #挂载FAT
opkg install block-mount
opkg install fdisk   

opkg install usbutils #安装了这个后可以用 lsusb

#U盘,移动硬盘自动挂载脚本

编辑/etc/hotplug.d/block/10-mount  (用winscp工具连接路由,编辑文件)
___________________________以下是文件内容_________________________________
#!/bin/sh
# Copyright (C) 2009 OpenWrt.org  (C) 2010 OpenWrt.org.cn
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
    device=`basename $DEVPATH`
    case "$ACTION" in
        add)
                mkdir -p /mnt/$device
                # vfat & ntfs-3g check
                if  [ `which fdisk` ]; then
                        isntfs=`fdisk -l | grep $device | grep NTFS`
                        isvfat=`fdisk -l | grep $device | grep FAT`
                        isfuse=`lsmod | grep fuse`
                        isntfs3g=`which ntfs-3g`
                else
                        isntfs=""
                        isvfat=""
                fi
                # mount with ntfs-3g if possible, else with default mount
                if [ "$isntfs" -a "$isfuse" -a "$isntfs3g" ]; then
                        ntfs-3g -o nls=utf8 /dev/$device /mnt/$device
                elif [ "$isvfat" ]; then
                        mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=0000 /dev/$device /mnt/$device
                else
                        mount /dev/$device /mnt/$device
                fi
  if [ -f /dev/${device}/swapfile ]; then
   mkswap /dev/${device}/swapfile
   swapon /dev/${device}/swapfile
  fi
                ;;
        remove)
  if [ -f /dev/${device}/swapfile ]; then
   swapoff /dev/${device}/swapfile
  fi
                umount /dev/$device
                ;;
    esac
fi

________________________________文件尾_________________________________
chmod 777 /etc/hotplug.d/block/10-mount  #加运行权限

这样就完成了自动挂载

插入USB硬盘后就会自动挂载

挂载Swap分区
###在/mnt/sda1/下创建一个64M的交换文件
dd if=/dev/zero of=/mnt/sda1/swapfile bs=1024 count=62142
###将这个交换文件用作Swap分区
mkswap /mnt/sda1/swapfile
###启用活动分区
swapon /mnt/sda1/swapfile

###停止
swapoff /mnt/sda1/swapfile

openwrt 格盘

opkg update

opkg install e2fsprogs    #安装格盘软件

mkfs.ext4 /dev/sda1       #格etx4

mkfs.ext3 /dev/sda1       #格etx3

mkfs.ext2 /dev/sda1       #格etx2

挂载windows共享文件 cifs

opkg install kmod-nls-utf8
opkg install kmod-fs-cifs

mkdir /mnt/share
mount -t cifs //192.168.1.2/tool /mnt/share -o username=administrator,password=123456,,nounix,noserverino,iocharset=utf8

设置好后如图,luci管理页面多出了个挂载点菜单了

image

免去了SSH敲命令的麻烦了

image

hg556a刷了官方openwrt安装aria2,增加自启动

      其实hg556a已经有很好的大集合功能固件了!如:

openwrt-HW556-squashfs-cfe(BIG).bin
这个固件=管版+中文LUCI+Samba+挂载点+aria2+aria2中文LUCI+aria2中文web+transmission+transmission中文LUCI+transmission中文Web+DDNS+Upnp+P2Plock+Multi-WAN+QOS(一步到位方便不会弄得人,全是中文哦~~~~)
http://pan.baidu.com/share/link?shareid=465066&uk=4113843727

原文:http://www.right.com.cn/forum/thread-116744-1-1.html

以前我刷的就是这个固件,但前段时间,朋友让搞一个web认证!

HG556A openwrt实现WEB认证成功

这固件装不了wifidog,无法进行下去,我还没按hdhgsdhuers的强制安装方法试过!

google出来的说是要装官方固件才支持wifidog,就直接刷官方了!

   附加功能

   一个路由,总不能这么简单嘛,要利用它来离线下载,首先就是aria2,直接在系统–软件包搜索aria2安装,完成!

但只是完成安装了,并没有自启动,等于没用!

    找了一下,可以使用命令启动,但每次这样很麻烦!其实最简单的是在:系统—启动项–本地启动脚本–添加aria2c –enable-rpc –rpc-listen-all=true –rpc-allow-origin-all -c -D

image