有一次朋友传了个工作文件给我,百度网盘链接。下载速度90KB每秒,下了两个小时。更离谱的是,传完后不久我发现一些包含敏感关键词的”合规文件”被网盘自动清理了——没通知我,我找的时候发现已经没了。
这事让我彻底决定搭自己的私有云盘。选了Nextcloud——开源的Dropbox平替,文件同步、在线办公、日历联系人全有,数据完全在自己服务器上。这篇文章就是搭建全流程。
配置要求
Nextcloud是PHP写的,需要的环境跟WordPress差不多。2核2G能跑,存储空间看需求。建议起步4G内存加50G以上SSD。我用的雨云(rain.jiyueip.com,优惠码admin01)2核4G+100G SSD,个人和家庭使用足够了。
Docker部署(推荐)
Nextcloud官方有维护良好的Docker镜像:
version: "3"
services:
nextcloud:
image: nextcloud:latest
container_name: nextcloud
ports:
- "8080:80"
volumes:
- ./nextcloud-data:/var/www/html
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: 你的数据库密码
depends_on:
- db
db:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: root密码
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: 你的数据库密码
volumes:
- ./db-data:/var/lib/mysql
docker compose up -d启动。然后配Nginx反代8080端口到域名加SSL。宝塔面板里反代配置很简单:建个站点指向域名,添加反向代理到http://127.0.0.1:8080,然后一键申请SSL证书。
基础配置
浏览器打开域名进Nextcloud初始化页面,创建管理员账号,填数据库信息(上面compose里设的那些)。装完之后进入管理设置——概览,会看到一些安全警告,逐条处理:
开启OPcache和APCu缓存(PHP配置里改)。设置Cron定时任务代替默认的AJAX执行(服务器crontab里加一条每5分钟执行php cron.php)。配Redis做文件锁缓存。
这些优化做完之后Nextcloud速度会明显提升。
客户端同步
Nextcloud有全平台客户端——Windows/Mac/Linux桌面端、iOS/Android手机端。装好之后登录地址填你的域名,选择要同步的文件夹,之后就跟用Dropbox一样了——电脑上拖文件进去自动上传,手机端随时查看。
iOS和Android端还支持自动备份照片,手机拍完照自动传到你自己的服务器上。比iCloud或百度网盘安心多了。
外挂存储
Nextcloud可以挂载外部存储——比如阿里云OSS、S3、SFTP等。这样你可以在Nextcloud里统一管理不同存储位置的文件。对于空间不够的情况很实用。
另外Nextcloud的应用商店里有很多插件:Calendar日历、Contacts联系人、Talk即时通讯、Collabora在线Office编辑、Notes笔记。装完之后基本上可以替代Google全家桶。
私有云盘这个东西,速度、隐私、控制权,云服务商最多给你两个。自建Nextcloud三个全都有。我现在的数据全在雨云(rain.jiyueip.com,优惠码admin01)自己服务器上,手机照片自动备份,电脑文件实时同步,再也不看网盘的脸色。






