从零到一:我的公网VPS搭建NAS折腾全记录
大家好,我是33blog的老王。最近因为工作需要频繁在多地访问文件,终于决定把手头的闲置VPS改造成私人NAS。这个过程中踩了不少坑,也积累了些实战经验,今天就来和大家分享这套兼顾安全与性能的VPS NAS方案。
为什么选择VPS而不是传统NAS?
最开始我也纠结过要不要买群晖,但考虑到:1)公网IP问题(我家是内网NAT);2)出差时跨国访问速度;3)24小时运行的电力成本…最终选择了用5美元/月的VPS来搭建。实测东京节点的VPS,在国内晚高峰也能稳定跑满30Mbps。
💡 小贴士:建议选择KVM架构的VPS,OpenVZ对文件系统支持不完善,我最初用的OVZ就遇到了ext4权限问题。
核心组件选型踩坑记
尝试过Nextcloud、Seafile等方案后,最终选择了WebDAV+Rsync的组合:
- WebDAV:通过HTTPS提供类本地磁盘的访问体验
- Rsync:定时增量备份重要数据(实测100GB照片备份只要3分钟)
- Rclone:挂载到本地作为虚拟磁盘(比Samba流畅太多)
# 我的rsync备份脚本(每天凌晨3点执行)
0 3 * * * rsync -avz --delete /mnt/data user@backup-vps:/nas_backup
安全加固的五个关键步骤
把存储服务暴露在公网必须做好防护,我的安全配置清单:
- 改用非标准端口(比如34567代替22)
- Fail2ban自动封禁暴力破解
- WebDAV强制TLS 1.3加密
- 配置防火墙只放行国内IP段
- 关键目录启用实时监控(用inotify-tools)
# Nginx的WebDAV安全配置片段
ssl_protocols TLSv1.3;
add_header Strict-Transport-Security "max-age=63072000" always;
client_max_body_size 10G; # 支持大文件上传
性能优化实战技巧
经过两周调优,总结出这些提速秘诀:
- 内存缓存:用
vmtouch -t
将常用文件锁定在内存 - TCP优化:调整
sysctl.conf
的拥塞控制算法 - 多线程传输:rclone加上
--transfers=8
参数 - 预读加速:提前加载即将访问的文件目录
最让我惊喜的是通过earlyoom
防止内存溢出——有次同步200GB视频时,系统自动终止了次要进程,保住了SSH连接。
移动端访问的完美方案
推荐两个神器:
- FolderSync(Android):支持WebDAV定时同步相册
- Documents(iOS):直接挂载为网络驱动器
配合DDNS+SSL证书,在4G网络下播放NAS里的4K视频居然没有卡顿!
写给新手的避坑指南
最后分享几个血泪教训:
- 千万别用root账户运行服务!我因此丢失过/usr目录
- 定期检查inode使用量(
df -i
),小文件多的系统容易爆 - WebDAV记得关闭
DavDepthInfinity
,防止目录遍历攻击 - 备份!备份!备份!(重要的事情说三遍)
这套方案已经稳定运行半年,日均传输约50GB数据。如果你也有闲置VPS,不妨试试这个低成本高可用的NAS方案。遇到问题欢迎在评论区交流,我会第一时间回复!
KVM架构确实是比OpenVZ更适合搭建NAS,亲测差别很大!
想问下作者,这种方案对VPS的硬盘有什么要求吗?我看5美元配置的硬盘一般都不大
Rsync备份效率这么高啊,比我用FTP快多了,周末我也试试看
安全配置那段太实用了,正好我也在搭VPS,抄走抄走!😊