简单两步, 搭建全平台私有同步网盘
1、简介
nextcloud
是一款开源私有云方案,GitHub开源地址:https://github.com/nextcloud,也就是说,可以用
nextcloud
来搭建私有同步网盘。之前就有搭建私有网盘的需求,毕竟国外网盘容量小,速度慢,国内目前也就只有115和百度云在苟延残喘,115已是半残,百度云限速不说,还会将小姐姐变成8秒教育片,先不论这种偷窥个人网盘隐私的行为是否违法,要知道百度云删除这些东西的时候可没有告知用户,更不用说任何的提醒和交流了,把资料,特别是涉及个人隐私的资料放在百度云实在是放心不下。总的来看目前公有网盘大都不能满足需求,也就催生了一大批开源私有网盘,
nextcloud
就是其中之一。
2、搭建环境
cenntos 7
2G内存, 2M带宽(带宽越大, 同步越流畅)
3、安装docker
[root@elasticsearch-04 ~]# yum -y install docker
[root@elasticsearch-04 ~]# systemctl start docker
[root@elasticsearch-04 ~]# systemctl enable docker
4、获取nextcloud镜像, 完成网盘搭建(结束?)
docker run -d -p 10181:80 nextcloud
还需要装个mysql
docker pull mysql:5.7 mkdir -p /usr/local/mysql/{logs,data} cd /usr/local/mysql docker run -p 3306:3306 --name my_mysql -v $PWD/logs:/var/log/mysql -v $PWD/data:/var/lib/mysql --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.7
5、访问主机ip的8080端口,为网盘设置管理员名称和密码
比如我的vps主机ip为
149.28.54.241
, 那么我访问的就是
149.28.54.241:10181
6.挂载外部磁盘
系统磁盘空间有限,不足以成为网盘,因此需要将外部存储挂载到 NextCloud管理范围内。
docker 创建时一定要加上 --privilege==true ,或想办法让nextcloud 拥有root权限
开启外部存储设备
启用插件 External storage support
该插件使管理员能够配置到外部存储提供程序的连接,如 FTP 服务器、 s3或 SWIFT 对象存储、其他 Nextcloud 服务器、 WebDAV 服务器等。
设置Nextcloud所有用户都能使用外部存储 ,点击我的头像设置
此时进入外部存储会提示 “smbclient” 未安装。无法挂载 "SMB/CIFS", "使用 OC 登录的 SMB/CIFS",虽然不一定用到可以安装一下包解决这个提示
进入控制台:
docker exec -it vvd_nextcloud bash
apt-get update
apt-get upgrade
apt install smbclient libsmbclient-dev
pecl install smbclient
docker-php-ext-enable smbclient
之后具备了挂载 cifs 的能力,也就没有警告提醒了。
挂载宿主磁盘
我这里挂载ftp为例,要用到frp内网穿透工具
下载FileZilla Server
配置一下被动模式,点击settings
同时添加一个用户,要勾选可读可写
同时外网中转服务器的ip要开启一下端口22,50001,50002,50003,这样本地ftp就配置好了。
配置frp内网穿透ftp
配置本地端的frc.ini
[common] server_addr = 外网ip server_port = 7001 # 这四行配置密码 authenticate_heartbeats = true authenticate_new_work_conns = true authentication_method = token token = 21126111 [http_jiali_server_ftp] type = tcp local_ip = 0.0.0.0 local_port = 21 remote_port = 21 [http_jiali_server_ftp1] type = tcp local_ip = 0.0.0.0 local_port = 50001 remote_port = 50001 [http_jiali_server_ftp2] type = tcp local_ip = 0.0.0.0 local_port = 50002 remote_port = 50002 [http_jiali_server_ftp3] type = tcp local_ip = 0.0.0.0 local_port = 50003 remote_port = 50003
启动一下frp的客户端
frpc -c frpc.ini
2.配置服务端的frps
[common] bind_port = 7001 # 这四行配置密码 authenticate_heartbeats = true authenticate_new_work_conns = true authentication_method = token # 客户端和服务端都要配而且要一样,否则连接不成功 token = 21126111 # frp管理后台端口,请按自己需求更改 dashboard_port = 7500 # frp管理后台用户名和密码,请改成自己的 dashboard_user = 账号 dashboard_pwd = 密码
然后服务器端要开启一下7001端口。
3.启动一下frp的服务端
./frps -c frps.ini
这样就搭建好了ftp服务器,已经公网转发配置
添加一个外部存储,配一下用户密码,
现在就能看到我们刚刚挂载的ftp目录了。