引言:为什么你需要一台家庭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

需要完成的关键基础设置:

  1. Advanced Options → Expand Filesystem:确认根分区扩展到整个SD卡
  2. Performance Options → GPU Memory:设置为16MB(纯服务器不需要GPU显存)
  3. System Options:设置主机名为ybb-nas
  4. 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 8GB500元-
存储(T7 1TB)500元-
电源/壳/杂项250元-
总一次性投入~1250元-
电费(7×24, 5W-约52元/年
宽带(家用已有)00
合计10年TCO-~1770元

对比:相同配置的群晖DS220+售价约3000元,且锁系统绑软件;威联通同配置约2500元。

十、结语

树莓派NAS的核心价值不是更强的性能,而是完全可控:你拥有root权限,能自定义任何服务,能随时迁移到任意硬件,不会被订阅制生态绑定。

从文件存储到从自动备份,从手机相册备份到媒体服务Docker化,树莓派是家庭数字枢纽的最佳起点。更重要的是,搭建本身的过程就是一次深入浅出的Linux系统学习之旅——硬件、内核、网络、安全、脚本,一次实战全部学到。

当家人通过手机同步照片到NAS时,他们可能不会意识到这个安静的小盒子正在为他们的小家默默工作——那正是极客生活的小浪漫。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论