从零搭建公网VPS NAS:我的踩坑与实战方案
上周突然发现手机存储又双叒叕爆了,看着满屏的”存储空间不足”提示,我决定把闲置的腾讯云轻量服务器改造成私人NAS。没想到这个看似简单的需求,硬是让我折腾了三天…
一、为什么不用现成方案?
市面上成熟的NAS方案很多,比如群晖、威联通,但我的需求很特殊:
- 已有1核2G的轻量云服务器(吃灰中)
- 需要跨地域访问(公司/家里/出差)
- 预算有限(毕竟打工人)
经过对比,最终选择了NextCloud + Nginx反代的方案,下面分享我的完整配置过程。
二、基础环境准备
我的服务器是Ubuntu 20.04,先做基础配置:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装必要组件
sudo apt install -y nginx mariadb-server php-fpm php-mysql php-zip php-gd
踩坑记录:第一次安装时漏了php-zip,导致NextCloud无法解压安装包,建议直接复制上面的完整命令。
三、NextCloud安装配置
官方推荐使用snap安装,但我更喜欢手动部署:
# 下载最新版
wget https://download.nextcloud.com/server/releases/latest.zip
# 解压到web目录
unzip latest.zip -d /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud
配置Nginx时遇到个大坑:默认的client_max_body_size太小,上传大文件会报错,记得在nginx.conf里加上:
client_max_body_size 1024M;
四、公网安全接入方案
直接暴露NextCloud太危险,我做了三重防护:
- 强制HTTPS(Let’s Encrypt免费证书)
- Fail2Ban防暴力破解
- IP白名单+二次验证
特别推荐Authelia做统一认证网关,配置稍复杂但安全性提升显著。
五、性能优化技巧
实测1核2G的配置跑NextCloud有点吃力,这几个优化很有效:
- 启用OPcache:php处理速度提升3倍
- 配置Redis缓存:减少数据库压力
- 调整PHP-FPM进程数:避免内存溢出
我的php-fpm配置供参考:
pm = dynamic
pm.max_children = 15
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
六、最终效果与建议
现在我的手机相册自动同步到云端,电脑上也能直接编辑文档。实测传输速度:
场景 | 上传速度 | 下载速度 |
---|---|---|
公司WiFi | 2.3MB/s | 3.1MB/s |
4G网络 | 800KB/s | 1.2MB/s |
如果预算充足,建议:
- 升级到2核4G配置
- 搭配OSS对象存储
- 使用WireGuard组网更安全
整个过程虽然踩坑不少,但看到自己搭建的NAS稳定运行时,那种成就感真的爽!你也想试试的话,欢迎在评论区交流~
mark一下,正好手里也有吃灰的轻量服务器,周末试试这个方案
楼主配置里提到的php-fpm参数很实用,收藏了!
打工人的共鸣啊,群晖买不起555。这个教程太及时了!😭
其实可以试试FileBrowser,比NextCloud轻量好多
想问下楼主,1核2G带得动多人同时上传吗?