前言:从观望到动手,唤醒你吃灰的ARM设备
对很多朋友来说,购置一台专业的NAS设备可能还不是“刚需”,常常抱着观望的态度——“我真的需要吗?”“会不会很复杂?”。
如果你也正处在这个阶段,或者和我一样,手里恰好有闲置的ARM开发板(树莓派、香橙派等)在吃灰,苦于没有合适易用的系统让它焕发新生——那么,这次实践就是为你准备的。
无需巨大投入,利用手边现有的香橙派 Zero 3 (2GB版) 这类百元级板卡,配合简洁的 CasaOS,就能轻松搭建一套功能实用的轻量私有云。它不仅能备份照片、同步文件,更能聚合网盘、管理媒体,让你以极低的试错成本,体验拥有个人数据中心的便利与安心。
## 让我们从零开始,一步步将它实现。
一、 部署第一步:安装与寻找“入口”
在烧录好系统并通电联网后,第一步是找到设备的 IP 地址。
-
- 获取 IP:
- • 方法 A:如果你连接了键盘显示器,输入 <code><span leaf="">hostname -I</span></code> 即可查看。
- • 方法 B:登录路由器后台,查看名为 <code><span leaf="">orangepi</span></code> 的设备分配到的地址。
- 获取 IP:
-
- 一键安装 CasaOS:
通过 SSH 连接后,输入官方脚本,将原本枯燥的 Linux 命令行转为图形化界面:<span flex="" style="display:"><svg height="13px" version="1.1" viewbox="0" width="45px" x="0px" xmlns="http://www.w3.org/2000/svg" y="0px"><ellipse cx="50" cy="65" fill="rgb(237,108,96)" rx="50" ry="52" stroke="rgb(220,60,54)" stroke-width="2"></ellipse><ellipse cx="225" cy="65" fill="rgb(247,193,81)" rx="50" ry="52" stroke="rgb(218,151,33)" stroke-width="2"></ellipse><ellipse cx="400" cy="65" fill="rgb(100,200,86)" rx="50" ry="52" stroke="rgb(27,161,37)" stroke-width="2"></ellipse></svg></span>
<span leaf=""><br></br></span><section auto="" border-box="" flex="" flex-start="" gb="" helvetica="" hidden="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf=""><br></br></span><section gb="" helvetica="" hiragino="" microsoft="" neue="" none="" pingfang="" rgba="" right="" sans="" sc="" solid="" style="font-family:" ui="" var="" yahei=""><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">1</span></section></section><span leaf=""><br></br></span><section auto="" border-box="" gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" visible="" yahei=""><p><span leaf="">wget -qO- https://get.casaos.io |</span><span style="color:"><span leaf=""> sudo</span></span><span leaf=""> bash</span></p></section><span leaf=""><br></br></span></section><span leaf=""><br></br></span>
- 一键安装 CasaOS:
-
- 进入后台:在浏览器输入查到的 IP,设置管理员账号,你的轻 NAS 就正式上线了。

- 进入后台:在浏览器输入查到的 IP,设置管理员账号,你的轻 NAS 就正式上线了。
二、 核心神器:深度解析已安装应用
目前我们已经成功运行了三个核心应用,它们构成了轻 NAS 的灵魂:
1. Alist:全网盘“大一统”神器
- • 功能:Alist 就像一个网盘聚合器。它可以将阿里云盘、百度网盘、天翼云盘、夸克云盘、甚至是本地 U 盘和 WebDAV 统统集成在一个界面下。
- • 核心作用:
- • 统一管理:再也不用为了找文件在各个网盘 App 间切换。
- • 资源直链:支持直接在线预览视频、图片。
- • WebDAV 支持:这是它最强大的地方!你可以把 Alist 里的资源通过 WebDAV 协议挂载到电视的 Infuse 或 nPlayer 上,让你的网盘秒变个人 4K 影视库。

### 2. Immich:开源相册的“天花板”
- • 功能:这是一个对标大厂云相册的自建方案。
- • 核心作用:支持手机端 App 自动同步、多用户管理、按地点和时间轴展示照片。对于不想把隐私照片放在第三方云端的同学来说,它是最佳选择。

### 3. Memos:私人碎片化笔记
- • 功能:极简风的开源笔记应用,类似“私有化朋友圈”或 Flomo。
- • 核心作用:轻量级、响应快。适合随时随地通过手机浏览器记录灵感、工作碎片或保存临时链接。

三、 进阶探索:还有哪些值得装的应用?
除了上述三个,CasaOS 还支持丰富的 Docker 应用,你可以根据需求扩充:
- • Navidrome(音乐收藏/流媒体):
轻量级的音乐服务器。你可以把无损音乐存在 U 盘里,通过它在手机端随时畅听,支持超低资源占用,是 Spotify 的完美替代品。
- • qBittorrent(下载神器):
经典的 PT/BT 下载工具,配合 U 盘,让香橙派化身 24 小时低功耗下载机。
- • Jellyfin(媒体中心):
类似 Plex 或 Emby 的影片管理系统。虽然 香橙派 Zero 3 转码能力有限,但在内网进行“原码播放”依然非常流畅。
- • AdGuard Home(网络净水器):
可以在网关层面拦截全家设备的广告,并加速 DNS 解析。
- • Gitea(个人代码仓):
非常轻量的 Git 服务,适合程序员存储个人代码,比 GitLab 轻巧得多。
- • Komf(漫画元数据管理):
二次元爱好者必备,自动为你的漫画库补全封面和简介。
四、 实战代码:系统状态与性能监测
为了确保长开不关机,我们需要时刻掌握硬件状况。建议大家在 <code><span leaf="">/mnt</span></code> 目录下准备这两个脚本:
1. 功耗监测 (<code><span leaf="">run.sh</span></code>)
<span flex="" style="display:"><svg height="13px" version="1.1" viewbox="0" width="45px" x="0px" xmlns="http://www.w3.org/2000/svg" y="0px"><ellipse cx="50" cy="65" fill="rgb(237,108,96)" rx="50" ry="52" stroke="rgb(220,60,54)" stroke-width="2"></ellipse><ellipse cx="225" cy="65" fill="rgb(247,193,81)" rx="50" ry="52" stroke="rgb(218,151,33)" stroke-width="2"></ellipse><ellipse cx="400" cy="65" fill="rgb(100,200,86)" rx="50" ry="52" stroke="rgb(27,161,37)" stroke-width="2"></ellipse></svg></span>```
<br></br><section auto="" border-box="" flex="" flex-start="" gb="" helvetica="" hidden="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><br></br><section gb="" helvetica="" hiragino="" microsoft="" neue="" none="" pingfang="" rgba="" right="" sans="" sc="" solid="" style="font-family:" ui="" var="" yahei=""><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">1</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">2</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">3</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">4</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">5</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">6</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">7</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">8</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">9</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">10</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">11</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">12</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">13</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">14</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">15</span></section></section><br></br><section auto="" border-box="" gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" visible="" yahei=""><p><span style="color:"><span leaf="">#!/bin/bash</span></span><br></br><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> === 香橙派 Zero 3 真实状态监控 ===</span></span><br></br><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> --------------------------------</span></span><br></br><span italic="" style="color:"><span leaf=""># 获取 CPU 温度</span></span><br></br><span leaf="">TEMP=$(</span><span style="color:"><span leaf="">cat</span></span><span leaf=""> /sys/class/thermal/thermal_zone0/temp | awk</span><span style="color:"><span leaf=""> '{print $1/1000}'</span></span><span leaf="">)</span><br></br><span italic="" style="color:"><span leaf=""># 获取当前 CPU 频率</span></span><br></br><span leaf="">FREQ=$(</span><span style="color:"><span leaf="">cat</span></span><span leaf=""> /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq | awk</span><span style="color:"><span leaf=""> '{print $1/1000}'</span></span><span leaf="">)</span><br></br><span italic="" style="color:"><span leaf=""># 获取 1 分钟内的平均负载</span></span><br></br><span leaf="">LOAD=$(</span><span style="color:"><span leaf="">uptime</span></span><span leaf=""> | awk -F</span><span style="color:"><span leaf="">'load average:'</span></span><span style="color:"><span leaf=""> '{print $2}'</span></span><span leaf=""> |</span><span style="color:"><span leaf=""> cut</span></span><span leaf=""> -d, -f1)</span><br></br><span leaf=""> </span><br></br><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> CPU 温度:</span><span><span leaf=""> ${TEMP}</span></span><span leaf="">°C</span></span><br></br><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> 核心频率:</span><span><span leaf=""> ${FREQ}</span></span><span leaf=""> MHz</span></span><br></br><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> 当前负载:</span><span><span leaf=""> ${LOAD}</span></span><span leaf=""></span></span><br></br><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> --------------------------------</span></span><br></br><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> 提示:软件无法读取实时电流,功耗随负载变化 (参考范围: 1.2W-3.5W)</span></span></p></section><span leaf=""><br></br></span></section><br></br>
2
### **2. 存储读写测速 (`<span leaf="">speed_test.sh</span>`)**
<span flex="" style="display:"><svg height="13px" version="1.1" viewbox="0" width="45px" x="0px" xmlns="http://www.w3.org/2000/svg" y="0px"><ellipse cx="50" cy="65" fill="rgb(237,108,96)" rx="50" ry="52" stroke="rgb(220,60,54)" stroke-width="2"></ellipse><ellipse cx="225" cy="65" fill="rgb(247,193,81)" rx="50" ry="52" stroke="rgb(218,151,33)" stroke-width="2"></ellipse><ellipse cx="400" cy="65" fill="rgb(100,200,86)" rx="50" ry="52" stroke="rgb(27,161,37)" stroke-width="2"></ellipse></svg></span>```
<span leaf=""><br></br></span><section auto="" border-box="" flex="" flex-start="" gb="" helvetica="" hidden="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf=""><br></br></span><section gb="" helvetica="" hiragino="" microsoft="" neue="" none="" pingfang="" rgba="" right="" sans="" sc="" solid="" style="font-family:" ui="" var="" yahei=""><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">1</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">2</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">3</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">4</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">5</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">6</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">7</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">8</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">9</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">10</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">11</span></section><section gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" yahei=""><span leaf="">12</span></section></section><span leaf=""><br></br></span><section auto="" border-box="" gb="" helvetica="" hiragino="" left="" microsoft="" neue="" pingfang="" sans="" sc="" style="font-family:" ui="" visible="" yahei=""><p><span style="color:"><span leaf="">#!/bin/bash</span></span><span leaf=""><br></br></span><span italic="" style="color:"><span leaf=""># 包含路径空格处理的测速脚本</span></span><span leaf=""><br></br></span><span style="color:"><span leaf="">echo</span></span><span style="color:"><span leaf=""> 正在测试系统盘 (SD卡) 写入速度...</span></span><span leaf=""><br></br></span><span style="color:"><span leaf="">dd</span></span><span style="color:"><span leaf=""> if</span></span><span leaf="">=/dev/zero of=./sd_test.bin bs=1M count=256 conv=fdatasync 2>&1 | grep</span><span style="color:"><span leaf=""> 'copied'</span></span><span leaf=""><br></br></span><span style="color:"><span leaf="">rm</span></span><span leaf=""> -f ./sd_test.bin</span><span leaf=""><br></br></span><span leaf=""> </span><span leaf=""><br></br></span><span leaf="">USB_PATH=</span><span style="color:"><span leaf="">/media/devmon/UBUNTU 25_1</span></span><span italic="" style="color:"><span leaf=""> # 请根据实际路径修改</span></span><span leaf=""><br></br></span><span style="color:"><span leaf="">if</span></span><span leaf=""> [ -d</span><span style="color:"><span leaf=""> </span><span leaf="">$USB_PATH</span><span leaf=""></span></span><span leaf=""> ];</span><span style="color:"><span leaf=""> then</span></span><span leaf=""><br></br></span><span style="color:"><span leaf=""> echo</span></span><span style="color:"><span leaf=""> 正在测试 U 盘写入速度...</span></span><span leaf=""><br></br></span><span style="color:"><span leaf=""> dd</span></span><span style="color:"><span leaf=""> if</span></span><span leaf="">=/dev/zero of=</span><span style="color:"><span leaf=""></span><span leaf="">${USB_PATH}</span><span leaf="">/usb_test.bin</span></span><span leaf=""> bs=1M count=256 conv=fdatasync 2>&1 | grep</span><span style="color:"><span leaf=""> 'copied'</span></span><span leaf=""><br></br></span><span style="color:"><span leaf=""> rm</span></span><span leaf=""> -f</span><span style="color:"><span leaf=""> </span><span leaf="">${USB_PATH}</span><span leaf="">/usb_test.bin</span></span><span leaf=""><br></br></span><span style="color:"><span leaf="">fi</span></span></p></section><span leaf=""><br></br></span></section><span leaf=""><br></br></span>
五、 避坑指南:血泪总结
成功的背后总有几个“坑”,请务必收好这几条建议:
-
- 关于机器学习(AI):
在安装 Immich 等应用时,系统会提示“启用机器学习”。对于香橙派 Zero 3,请务必关闭此功能! 人脸识别和 OCR 会瞬间吃满 CPU 导致死机。
- 关于机器学习(AI):
-
- 存储路径的空格问题:
很多 U 盘挂载后路径带有空格(如 <code><span leaf="">UBUNTU 25</span></code>)。在写代码或配置 Docker 映射时,必须加双引号,否则系统会无法识别路径。
- 存储路径的空格问题:
-
- 内存管理:
2GB 内存 虽然够用,但 Docker 容器开多了会引起 OOM(内存溢出)。如果发现 CasaOS 页面加载缓慢,优先通过 SSH 重启 Docker 服务或重启板子。
- 内存管理:
-
- 电源选择:
请确保使用 5V/3A 的稳定电源,功率不足会导致挂载的 U 盘频繁掉线。
- 电源选择:
结语:
这次实践证明,即使是百元级的香橙派,在 CasaOS 的加持下,也能展现惊人的实用性。它不仅是专业NAS的平替,更是唤醒你手中闲置ARM设备潜能的最佳钥匙。只要合理规划应用(如避开重载AI任务),这个“小盒子”就能成为你数字化生活中最经济、最可靠的智能管家。
希望这篇指南,能帮你跨过从“观望”到“动手”的那一步。
原创文章,作者:tualatin,如若转载,请注明出处:https://www.tualatin.cn/in-depth-combat-hundred-yuan-level-orange-pai-zero-3-creating-an-all-around-light-nas-casaos/