序
首先先解释一下什么是NAS,NAS(Network Attached Storage)可以简单理解为就是一个私人自建网盘,当然除了存东西,你还可以干很多事情。
很久以前买了个树莓派3B(Raspberry Pi 3 Model B),当时的树莓派还不是理财产品(乐),还很便宜,但没过多久就吃灰了,最近想起来这个家伙了,正好打算重新开始玩PT,于是就有这次的树莓派NAS大改造(其实也没啥改啥hhh)。
另外写到最前面,其实树莓派3b不算最具性价比的NAS玩具,使用树莓派3B的目的主要是超低成本的闲置资源利用,所以手上有吃灰的树莓派可以看看,如果还没有买树莓派的朋友没必要现在(2025)专门买个树莓派,不如一步到位买个G4600攒个机。写这篇文章就是为了纪念一下这个树莓派NAS,因为目前感觉玩到树莓派3B上限了,打算另组一个G4600的NAS了,后续可能会另写博客。
先说最终效果,树莓派3B作为宿舍低成本NAS的表现超出了我的预料:
- 首先树莓派本身非常低功耗,待机功耗大概只有1.2W,电费非常余裕;
- 其次它是被动散热,没有风扇,所以非常静音(现在就放在我床下,完全注意不到);
- 最后它的启动成本非常低,你不需要另外购置电源、主板、DRAM等等,你只需要一个闲置的机械硬盘(固态当然也行),然后买个硬盘盒,用usb插上去就大功告成了。这个树莓派为了图方便,我甚至没有插网线,直接通过羸弱的板载Wi-Fi联网,但最终却能稳定流畅观看视频。
- 另外,树莓派3B本身的CPU(Quad Core 1.2GHz Broadcom BCM2837 64bit CPU)虽然性能很差,属于是HDMI驱动一块2K屏幕就开始发烫的感觉,但是平时BT下载、视频传输都是没问题的。
硬件
那么下面首先介绍整体NAS的硬件:
- 一只Raspberry Pi 3 Model B,如图当初还买了个红白外壳(顶盖已经拆了),贴了散热铜片
- 希捷酷狼NAS专用盘 2TB,长时间未访问会自动休眠,休眠和运行的时候声音都很小,唯一能听到一点明显的声音就是从休眠唤醒的时候
- 麦沃3.5寸机械硬盘盒,把机械硬盘放在里面,插上电源,通过USB将机械硬盘挂载到树莓派上
下面是放在宿舍一角、无比朴素的树莓派NAS照片(硬盘在下面纸盒里hhh)

这个NAS只需要占用两个插座位(树莓派和硬盘盒),而且体积相当小,随便放在某个角落里都行。
软件
系统装的是Raspberry Pi OS(其实就是Debian GNU/Linux 12),有桌面环境。首次安装系统的时候,可以直接外接显示器、键盘和鼠标配置就行,当然网上也有其他办法可以无须这些外设进行配置。
WireGuard组网
为了能在任何地方访问我的NAS,我使用WireGuard将这台树莓派编入了私人的网络。
注意为了实现组网,你需要一台高带宽的公网服务器作为中心节点(星形拓扑),我使用了阿里云国内的200M带宽服务器,不需要很强的CPU和内存配置,追求高带宽即可。
WireGuard有点像frp(内网穿透),但是它更进一步,将你的所有设备放进了同一个“局域网”里面,你可以将你散落在各个地方的设备、服务器全部连接在一起,非常方便,而且WireGuard已经包含在Linux内核里了,其安全性、性能都远超frp。
但是原生的WireGuard使用门槛很高,需要大量的计算机网络知识,而且配置很麻烦,这里推荐一个WireGuard配置管理工具wg-easy,它可以很方便地创建、管理、可视化WireGuard网络。你可以参考这篇博客使用 wg-easy 进行异地组网-HelloWood来进行配置。你还可以参考这篇博客Autostart WireGuard in systemd来实现开机自启动WireGuard。总体来说,需要注意的几点就是:
- 注意要进入
Admin Pannel进行配置,在Config中配置Alowed IPs为10.8.0.0/24,允许这个网段的节点之间互相访问,避免配置为0.0.0.0/0影响本机其他网络地址的访问,要不然就会出现组网之后没有网络的情况 - 注意
docker-compose.yml中端口的映射,以及阿里云的防火墙是否打开了对应的端口 - 注意在WireGuard conf文件中配置
PersistentKeepalive = 25,每隔25秒发送一个心跳包
完成组网之后,我们就能像访问本地服务一样,访问树莓派NAS上的任何服务了,非常方便。
PT下载&保种
于我而言,NAS一大重要使命就是7*24h玩PT。
简单解释一下什么是PT,PT(Private Tracker)可以简单理解为会员制的BT种子资源下载社区,你在下载种子的同时,必须也要做种。
我使用Transmission进行BT的下载和保种,Transmission可以提供一个网页管理界面,树莓派组网之后,我们可以很方便地通过浏览器管理BT的下载。
Transmission的权限需要配置,否则下载时会出现权限问题报错。可以专门开一个用户组nas来管理nas下载的文件
sudo groupadd nas
将下载目录归为nas用户组所有
chown -R <your_name>:nas ./<bt_path>
然后配置组内用户都可以写文件
sudo chmod -R g+w <bt_path>
最后将transmission添加到这个组里
sudo usermod -aG nas transmission
Transmission的配置需要注意下面这几点:
rpc-whitelist-enabled需要配置为false,否则无法远程访问管理网页umask可以配置为2,这样新下载的文件权限会继承父文件夹有关对于拥有者和所在组的权限,同时禁止其他组用户进行写入修改。
另外还有一个关于管理BT下载文件的小妙招:很多时候我们希望修改下载文件的名字、重新组织文件夹,但是一旦修改,就无法继续做种(做种需要本地文件保持原样),这时我们可以通过Linux文件系统的硬链接cp -l,来制作一份下载文件的“替身”,你可以随意对替身进行修改,但是在文件系统底层内部,这俩本质都是同一份文件。
cp -l -r <bt_path>/<name> <other_dir_path>/<name>
视频播放
完成了视频的下载,当然还要考虑如何远程播放视频。
树莓派3B这小身板是肯定没法跑Jellyfin这种在NAS端解码视频再串流视频的,只能选择让树莓派直接传输视频原始数据,在本地进行解码播放。考虑到Linux和Windows访问的便利性,我选择使用Samba来直接共享视频文件夹。
下面是我的samba配置,对于账户your_name可以拥有对共享文件的修改权限,其余用户只读,同时支持软链接的访问。
先提前向smb添加账户
sudo smbpasswd -a <your_name>
然后修改smb配置文件
sudo vim /etc/samba/smb.conf
添加配置如下:
[nas]
path = /mnt/samba/nas
browseable = yes
writeable = no
write list = <your_name> # fix me
guest ok = yes
wide links = yes
Windows访问samba共享文件夹直接打开资源管理器,输入地址即可。
而对于Linux,你也可以类似这样通过GNOME桌面的Files,在+ Other Locations tab页中直接输入smb://ip来直接访问文件夹。
但是你还可以选择通过cifs将samba共享文件直接挂载到文件系统上。通过cifs挂载共享文件夹带来的性能收益非常大,而且你和程序可以像访问普通文件夹一样访问NAS上的文件,非常方便。除此之外,在Linux中,你还能设置闲置超过多少分钟,自动卸载文件夹。
具体来讲,你可以参考这篇博客Linux 下访问 Samba 共享的几种姿势-CODA来进行配置cifs文件挂载,下面是我的/etc/fstab配置:
# NAS Disk on pi3b
//10.8.0.1/nas /mnt/nas cifs _netdev,nofail,noauto,x-systemd.automount,x-systemd.idle-timeout=600,username=your_name,password=your_pw,uid=1000,gid=1000 0 0
效果
首先需要说明实验条件:这只树莓派没有插网线,是通过Wi-Fi连接的百兆校园网,测试机器和树莓派连接着同一个校园网,通过一台200M带宽的阿里云公网服务器进行了WireGuard组网,没有也无法通过校园网的局域网连接。
另外树莓派3B的总线速度为480Mbps,所有USB设备以及以太网都共享这一个单一的总线。
我们首先在测试机器上测试校园网的实力:
- 下载速度92.5Mbps,延迟38.9ms
- 上传速度143Mbps,延迟1.61ms
然后通过iperf3测试组网性能,结果是:
- 笔记本向树莓派的传输速度是
16.9Mbits/sec - 树莓派向笔记本的传输速度是
15.2Mbits/sec
下面是实际使用mpv播放动画的数据:
1080p的毫无压力


bitrate在18Mbps左右的动画也能扛住

4K版本的哈萨维勉强可以看,运动复杂的场景会卡顿

结
总体来讲,这只树莓派3B的表现超出了我的预期,用超低成本实现了一个较为合格的NAS,但同时后续使用中也发现,由于树莓派羸弱的I/O性能,基本只能单人使用、流畅观看1080p,所以后续我将用G4600再攒一个正经的NAS,以满足和npy同时观看的需求。