说到云盘,想来最初用到的其实是网吧的临时存储盘,临时存储盘其实就是网吧搭建的局域网云盘系统,可以通过网管软件进行访问。主要用途就是可以存储一下游戏存档,因为网吧的电脑一般重启后数据就全部丢失了,下次再来上网,上次的游戏数据就没了。
后来接触到了QQ的文件中转站功能,相比网吧的临时存储盘,QQ文件中转站不仅限于局域网访问,可以实现互联网中任意电脑之间的文件网络中转和文件存储。
大概在2012年的时候,大批网盘应用相应上线,腾讯微云、百度网盘、360网盘等等等。由于是之前用的是QQ的文件中转站,所以最先用到的是腾讯微云,最开始的容量貌似是2GB。后来百度网盘,360网盘的上T容量吸引了我,百度网盘是下载手机版送2T的空间,360网盘也是做任务送容量,当时我做到了40T,而且当时360网盘没有会员制度,下载速度比百度网盘感人的多,360还有文件共享群,有分享系统镜像的、电影电视剧的,可以一键转存到自己网盘空间,相当方便。家里也是一直在用360全家桶,而且360主要的产品就是安全软件,心里可能觉得360云盘更安全一点,所以最后360网盘成为了我主要的存储以及备份途径。
然而就在短短4年的时间,2016年就有大批网盘相继关停了,属于用户的网盘时代可以说就此结束了。360网盘在这次风波中也没能幸免,最后它转型做了企业网盘。现在想来感觉也还是很惋惜,因为对360网盘的印象很好,在这也希望它能重新开放个人网盘业务。这场风波过后网盘用户就像待宰的绵羊,会员价格一高再高,出了VIP还有出超级VIP,而且用户数据隐私也是一大问题。
在前段时间看了博友大大的小熊的一篇关于搭建Cloudreve云盘的文章,所以利用这段时间自己也折腾起了私有云盘。Cloudreve支持VPS的本地存储、云存储(七牛、COS)、onedrive、远程存储服务器 等等。这里面吸引我的就是远程存储服务器的存储方式,因为它可以实现将网盘数据存储到自建的远程存储服务器上。而我就想要将数据存储到家里路由器的外接硬盘里,这样数据就在我身边,更放心一些。
但是想要在路由器上搭建远程存储服务器,那就必须需要在路由器上安装PHP环境。但我的TPLink家用路由器安装PHP有些吃力。本想就此作罢,但临睡前灵光乍现,想到了一套可行的解决方案,大体步骤就是Cloudreve的使用本地存储方案,也就是将数据存储到VPS的/public/upload路径,而路由器再开SMB文件共享,然后通过Frp将445端口映射到VPS的4451端口上,此时VPS与路由器的SMB网路就通了,然后再将SMB共享挂载到VPS的/public/upload路径上。
安装软件包,创建存储目录
# 安装软件包
opkg update
opkg install shadow-common
opkg install shadow-useradd
opkg install samba36-server
# 创建SMB共享目录
mkdir -p /share/pan
# 创建用户并授权
useradd -s /sbin/nologin www
smbpasswd www # 设置个密码:123456
chown -R www /share/pan
frpc.ini
[common]
server_addr = 服务地址
server_port = 服务端口
token = 授权Token
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 4451
/etc/samba/smb.conf.template
[global]
netbios name = Home
display charset = utf-8
interfaces = 127.0.0.1/8 lo 192.168.3.1/24 br-lan
server string = OpenWrt
unix charset = utf-8
workgroup = WORKGROUP
browseable = yes
deadtime = 30
domain master = yes
encrypt passwords = true
enable core files = no
guest account = nobody
guest ok = yes
#invalid users = root
local master = yes
load printers = no
map to guest = Bad User
max protocol = SMB2
min receivefile size = 16384
null passwords = yes
obey pam restrictions = yes
os level = 20
passdb backend = smbpasswd
preferred master = yes
printable = no
security = user
smb encrypt = disabled
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY IPTOS_LOWDELAY
syslog = 2
use sendfile = yes
writeable = yes
/etc/config/samba
config samba
option 'name' 'OpenWrt'
option 'workgroup' 'WORKGROUP'
option 'description' 'OpenWrt'
option 'homes' '1'
config 'sambashare'
option 'name' 'pan'
option 'path' '/share/pan'
option 'writable' 'yes'
option 'guest_ok' 'no'
option 'users' 'www'
option 'create_mask' '0755'
option 'dir_mask' '0755'
option 'read_only' 'no'
#重启samba
/etc/init.d/samba restart
#启动frpc
/root/frp/frpc
#安装cifs
yum install cifs-utils
#挂载
mount -t cifs -o port=4451,username=www,password=123456,vers=1.0,iocharset=utf8,rw,dir_mode=0755,file_mode=0755 //127.0.0.1/pan /www/wwwroot/pan/public/uploads/
#因为路由器通过frp将445端口映射到VPS的4451端口,所有VPS的路径直接写回环地址127.0.0.1即可
如此这般操作后,在Cloudreve在读写/public/upload目录时,实际上是通过SMB共享去读写家里路由器上的硬盘。技术含量不高,但这里需要注意一点SMB权限的问题,SMB不能使用匿名登录方式共享,不然VPS挂载后Cloudreve将因为权限问题没办法写入。但是建议使用正规套路去实现远程存储,比如在路由器上搭建Cloudreve的远程存储服务器来实现。
另外Cloudreve的BUG实在有点多,没有点编程基础会用不来。大家有什么推荐的开源云盘程序吗?