引言:为什么你需要一台家庭NAS
你还记得上次想找一年前的照片、重要文档或家庭视频是什么时候吗?云盘服务的数据隐私风险日益凸显,付费订阅费用逐年递增,而手机存储空间总是不够。这个需求催生了一个快速发展的市场:家庭私有NAS(Network Attached Storage)。
相比群晖/威联通等商业NAS动辄3000-8000元的起步价,树莓派NAS以不到500元的成本提供了完全可控的定制化方案。本文将完整记录我用树莓派4B搭建家庭NAS的全过程:从开机到可用,从本地访问到远程穿透。
一、硬件选型清单
核心硬件
| 组件 | 推荐型号 | 预算(人民币) | 说明 |
|---|---|---|---|
| 主板 | 树莓派4B 8GB | 约500元 | 内存4GB也够用,8GB为后期扩展留余地 |
| 存储 | 三星T7移动固态 1TB | 约500元 | SSD速度远超U盘,推荐NVMe硬盘盒方案 |
| 电源 | 树莓派官方15W USB-C电源 | 约80元 | 必须官方或高品质电源,供电不稳会掉盘 |
| 外壳 | 铝合金被动散热壳 | 约100元 | 避免过热降频,被动散热零噪音 |
| MicroSD | 闪迪64GB A2应用级 | 约50元 | 仅用于启动系统,系统启动后程序跑在SSD上 |
| 散热 | 含导热硅脂的散热片套装 | 约20元 | 树莓派夏天可能过热 |
可选扩展硬件
- NVMe硬盘盒约150元(推荐绿联/华硕方案):将M.2 NVMe SSD转为USB 3.0,性能提升5倍
- UPS不间断电源:如Cye capacitors模块,防止断电损坏文件系统
- 万兆网络:树莓派4B仅千兆,可通过USB 3.0转2.5G网卡升级
二、系统安装与基础配置
2.1 烧录系统
使用Raspberry Pi Imager工具烧录Raspberry Pi OS Lite (64-bit)到MicroSD卡。烧录前在Imager高级配置中:
- SSH使能
- 设置用户名pi和密码
- 配置WiFi(办公室网络)
- 设置时区Asia/Shanghai
2.2 首次开机与基础配置
ssh [email protected]
sudo raspi-config
需要完成的关键基础设置:
- Advanced Options → Expand Filesystem:确认根分区扩展到整个SD卡
- Performance Options → GPU Memory:设置为16MB(纯服务器不需要GPU显存)
- System Options:设置主机名为ybb-nas
- Localization:确保时区和Locale正确
2.3 网络配置
/etc/dhcpcd.conf:
# 静态IP设置,便于局域网稳定访问
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8 114.114.114.114
2.4 软件包更新
sudo apt update && sudo apt upgrade -y
sudo apt install vim htop curl wget git -y
三、存储方案配置
3.1 识别与格式化USB SSD
# 识别设备
lsblk
# 输出示例:sda 1TB → 目标SSD
# 创建单个ext4分区
sudo parted /dev/sda --script mklabel gpt
sudo parted /dev/sda --script mkpart primary ext4 0% 100%
sudo mkfs.ext4 -L NAS_DATA /dev/sda1
# 挂载(临时验证)
sudo mkdir -p /mnt/nas
sudo mount /dev/sda1 /mnt/nas
3.2 永久挂载
# 获取分区UUID
sudo blkid /dev/sda1
# 输出示例:UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890
# /etc/fstab中添加(使用UUID避免设备名变化)
echo 'UUID=a1b2c3d4-... /mnt/nas ext4 defaults,noatime 0 2' | sudo tee -a /etc/fstab
sudo mount -a
3.3 目录结构规划
sudo mkdir -p /mnt/nas/{Documents,Photos,Videos,Music,Backup,Soft}
sudo mkdir -p /mnt/nas/Backup/{macbook,yphone,zphone}
四、NAS核心服务:Samba/CIFS与NFS
4.1 Samba安装与配置
sudo apt install samba samba-common-bin -y
/etc/samba/smb.conf(简化版):
[global]
workgroup = YEBB-HOME
server string = YBB NAS
security = user
map to guest = Never
# 性能优化(USB 3.0 + 千兆网)
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
use sendfile = yes
min receivefile size = 16384
aio read size = 16384
aio write size = 16384
[Documents]
path = /mnt/nas/Documents
valid users = @nasusers
writable = yes
create mask = 0660
directory mask = 0770
[Photos]
path = /mnt/nas/Photos
valid users = @nasusers
writable = yes
browseable = yes
[Videos]
path = /mnt/nas/Videos
valid users = @nasusers
writable = yes
[Music]
path = /mnt/nas/Music
valid users = @nasusers
writable = yes
[Backup]
path = /mnt/nas/Backup
valid users = @nasusers
writable = yes
[Soft]
path = /mnt/nas/Soft
writable = yes
browseable = yes
guest ok = yes # 软件共享公开访问
创建用户和设置Samba密码:
# 创建系统用户组和用户
sudo groupadd nasusers
sudo useradd -m -G nasusers ybb
# 设置Samba密码(独立于系统密码)
sudo smbpasswd -a ybb
sudo smbpasswd -e ybb
# 设置目录权限
sudo chown -R root:nasusers /mnt/nas/*
sudo chmod -R 0770 /mnt/nas/*
# 启动服务
sudo systemctl enable --now smbd nmbd
4.2 NFS安装与配置(Mac/Linux高速传输)
sudo apt install nfs-kernel-server -y
/etc/exports:
/mnt/nas/Documents 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
/mnt/nas/Photos 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
/mnt/nas/Videos 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
sudo exportfs -ra
sudo systemctl enable --now nfs-kernel-server
4.3 各平台挂载指南
Windows:文件管理器地址栏输入\192.168.1.100\Documents
macOS:Finder → 前往 → 连接服务器 → smb://192.168.1.100/Documents
Linux:
sudo mount -t cifs //192.168.1.100/Documents /mnt/nas-docs \
-o username=ybb,password=xxx,uid=$(id -u),gid=$(id -g)
五、关键服务扩展
5.1 自动备份
rsync增量备份脚本 /home/pi/backup.sh:
#!/bin/bash
# 备份/etc目录到NAS每日
BACKUP_DIR="/mnt/nas/Backup/etc-$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
sudo rsync -avz --delete /etc/ "$BACKUP_DIR/"
echo "[$(date)] Backup done: $BACKUP_DIR" >> /var/log/backup.log
设置每日定时任务:
# crontab -e
0 3 * * * /home/pi/backup.sh
5.2 磁盘健康监控
安装smartmontools:
sudo apt install smartmontools -y
sudo smartctl -a /dev/sda | grep -E "Temperature|Reallocated|Pending"
sudo smartctl -t short /dev/sda
每周检测脚本(/home/pi/disk_check.sh):
#!/bin/bash
HEALTH=$(sudo smartctl -H /dev/sda | grep result | awk '{print $NF}')
if [ "$HEALTH" != "PASSED" ]; then
echo "Disk health failed: $HEALTH" | mail -s "NAS Alert" [email protected]
fi
5.3 USB自动挂载
安装udev规则实现U盘插入自动挂载:
sudo apt install usbmount -y
# 编辑 /etc/usbmount/usbmount.conf
FILESYSTEMS="vfat ext4 ntfs-3g"
MOUNTOPTIONS="sync,noexec,nodev,noatime"
六、远程访问方案
6.1 SSH隧道(推荐,最安全)
ssh -L 8080:192.168.1.100:80 user@your-vpn-server# 然后通过浏览器访问 http://localhost:8080 访问NAS Web界面
6.2 Cloudflare Tunnel(免费穿透,但速度受制于CF)
# 安装cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
# 配置和启动
sudo cloudflared service install your-token
sudo systemctl start cloudflared
6.3 WireGuard VPN(推荐,点对点安全)
sudo apt install wireguard -y
# 配置/etc/wireguard/wg0.conf(服务端)
# 启动:wg-quick up wg0
七、系统监控与维护
7.1 系统监控脚本
/home/pi/monitor.sh:
#!/bin/bash
CPU=$(top -bn1 | grep load | awk '{printf "%.1f%%", $(NF-2)}')
MEM=$(free -m | awk 'NR==2{printf "%s/%sMB (%.1f%%)", $3,$2,$3*100/$2}')
DISK=$(df -h /mnt/nas | awk 'NR==2{print $3 "/" $2 " (" $5 ")"}')
TEMP=$(vcgencmd measure_temp | cut -d= -f2)
echo "==============================="
echo "YBB NAS Monitor $(date)"
echo "==============================="
echo "CPU负载: $CPU"
echo "内存: $MEM"
echo "存储: $DISK"
echo "SoC温度: $TEMP"
echo "WAN IP: $(curl -s ifconfig.me)"
echo "==============================="
7.2 告警通知
温度过高告警脚本(智能家居联动):
#!/bin/bash
TEMP=$(vcgencmd measure_temp | cut -d= -f2 | cut -d. -f1)
if [ "$TEMP" -gt 70 ]; then
curl -X POST 'https://your-push-api.com' \
-d "NAS过热: ${TEMP}°C
八、性能优化总结
存储性能
- ext4是最稳妥的Linux文件系统,启用
noatime避免每次访问刷盘 - SSD缓存加速:使用bcache将MicroSD作为HDD缓存(进阶)
网络性能
- Samba优化:调整
aio read/write size提升异步I/O吞吐 - NFS替代方案:Mac/Linux用NFS比Samba更快(少一层CIFS抽象)
- iperf3测试:千兆网络实测约112MB/s上下限,SSD读取正常在100MB/s以上
九、总投入与持续成本
| 项目 | 一次性投入 | 年运营成本 |
|---|---|---|
| 树莓派4B 8GB | 500元 | - |
| 存储(T7 1TB) | 500元 | - |
| 电源/壳/杂项 | 250元 | - |
| 总一次性投入 | ~1250元 | - |
| 电费(7×24, 5W | - | 约52元/年 |
| 宽带(家用已有) | 0 | 0 |
| 合计10年TCO | - | ~1770元 |
对比:相同配置的群晖DS220+售价约3000元,且锁系统绑软件;威联通同配置约2500元。
十、结语
树莓派NAS的核心价值不是更强的性能,而是完全可控:你拥有root权限,能自定义任何服务,能随时迁移到任意硬件,不会被订阅制生态绑定。
从文件存储到从自动备份,从手机相册备份到媒体服务Docker化,树莓派是家庭数字枢纽的最佳起点。更重要的是,搭建本身的过程就是一次深入浅出的Linux系统学习之旅——硬件、内核、网络、安全、脚本,一次实战全部学到。
当家人通过手机同步照片到NAS时,他们可能不会意识到这个安静的小盒子正在为他们的小家默默工作——那正是极客生活的小浪漫。

发表评论 取消回复