N1盒子刷Armbian安装CasaOS:轻量级NAS搭建与内网穿透指南
家里翻出来一个吃灰的N1盒子这玩意儿当年运营商白送了一大批后来热度退了闲鱼上几十块钱就能收一个。很多人拿到手刷个电视系统就扔那儿了其实这颗晶晨S905的芯片放到今天跑个轻量级NAS完全够用。我前后折腾过五六个N1有的刷了Armbian当下载机有的装了CasaOS做家庭影音中心还有的纯粹拿来跑一些定时任务。这篇就把整个流程从头到尾捋一遍包括怎么刷Armbian、怎么在Armbian上装CasaOS、以及装好之后怎么从外网访问家里的服务。整个过程不需要什么高深技术照着做就行但里面有几个坑我踩过会重点标出来。1. 为什么N1盒子值得刷Armbian而不是继续用安卓1.1 N1盒子的硬件底子和性能边界先把这个盒子的硬件参数摆出来心里有个数。N1用的是晶晨S905D四核Cortex-A53架构主频最高1.5GHzGPU是Mali-450内存2GB DDR3存储是8GB eMMC。这个配置放在电视盒子领域属于入门级但拿来跑轻量级Linux服务其实绰绰有余。2GB内存跑一个Armbian系统加上CasaOS的面板日常占用大概在400到600MB之间剩下的内存跑几个Docker容器完全没问题。网络方面N1只有一个千兆网口没有WiFi模块部分批次有但驱动支持很麻烦所以最好用网线直连路由器。USB接口有两个都是USB 2.0这个速度用来接移动硬盘做影音存储拷贝大文件的时候大概能跑到30到40MB/s看个1080P的蓝光原盘是够的但如果你要同时跑多个高码率视频流USB 2.0的带宽就会成为瓶颈。存储方面8GB的eMMC装完Armbian之后大概还剩5GB左右装CasaOS和几个常用Docker镜像之后基本就满了。所以强烈建议插一个U盘或者移动硬盘做数据盘把Docker的数据目录和影音文件都放在外置存储上。我自己的做法是拿一个64GB的U盘专门放Docker数据一个2TB的移动硬盘放影音资源。1.2 Armbian相比安卓系统的核心优势很多人会问N1原厂安卓系统也能装Kodi看视频为什么还要折腾Armbian这里面的差别其实挺大的。安卓系统本质上是一个为触屏和遥控器设计的消费级系统它的后台管理机制、文件系统权限、网络服务能力都受到很大限制。你想在安卓上跑一个Samba共享得装一堆第三方App稳定性还差。你想跑Docker安卓根本就不支持。而Armbian是一个完整的Debian系Linux发行版你可以像操作一台普通服务器一样操作它apt装软件、systemd管理服务、Docker跑容器这些都是原生支持。另一个关键点是资源占用。安卓系统本身加上各种后台服务开机之后内存就吃掉一大半剩下给应用的内存很有限。Armbian最小化安装之后内存占用可以控制在200MB以内剩下的资源全部可以分配给实际的服务。这对于只有2GB内存的设备来说差别是巨大的。还有一点是远程管理的便利性。Armbian天然支持SSH你可以在任何一台电脑上通过终端管理它不需要接显示器。安卓系统虽然也有ADB但那个体验跟SSH完全不是一个级别。1.3 CasaOS在N1上的实际表现预期CasaOS是一个轻量级的家庭云面板它的定位是让普通人也能轻松管理家里的NAS服务。它自带应用商店可以一键安装常用的Docker应用比如Jellyfin、qBittorrent、Alist、Syncthing等等。界面做得挺好看中文支持也完整。在N1上跑CasaOS我的实测体验是面板本身响应速度可以接受打开页面大概1到2秒切换菜单基本秒开。但是如果你同时跑三四个Docker容器比如Jellyfin在转码视频、qBittorrent在下载、Alist在挂载网盘这时候面板的响应就会变慢有时候要等三四秒。这不是CasaOS的问题是N1的CPU和内存确实到极限了。所以我的建议是N1上的CasaOS不要贪多同时跑两到三个轻量级容器就够了。Jellyfin做影音服务、qBittorrent做下载、Alist做网盘挂载这三个组合是最实用的。如果你还想跑更多服务建议换性能更强的设备比如N100或者树莓派4B。2. 刷机前的准备工作与固件选择2.1 需要的硬件和软件清单刷N1需要准备的东西不多但每一样都不能少。硬件方面一个N1盒子、一根USB双公头线就是两头都是USB-A公头的那种线、一台Windows电脑、一个U盘8GB以上、一根网线、一个螺丝刀拆机用后面会说到为什么可能需要拆机。软件方面Amlogic USB Burning Tool晶晨官方的刷机工具版本建议用2.2.0以上、N1的降级固件包、Armbian的镜像文件、balenaEtcher用来把镜像写入U盘、以及一个SSH客户端Windows上用PuTTY或者Windows Terminal自带的ssh命令都行。这里重点说一下USB双公头线。很多人家里没有这种线因为平时用的都是USB-A到USB-B或者Type-C的线。这个线在刷机过程中用来连接电脑和N1的USB口是必须的。网上买的话几块钱一根建议提前准备好。2.2 固件版本的选择逻辑N1的Armbian固件有好几个来源比较主流的是恩山论坛上大佬们编译的版本以及Armbian官方对S905系列的支持版本。我推荐用恩山论坛上专门为N1适配的版本因为官方版本对N1的网卡驱动和eMMC支持有时候会有问题。具体版本号方面我实测比较稳定的是基于Debian 11Bullseye的Armbian 23.02版本内核是5.15系列。这个版本对N1的硬件支持比较完善网卡能正常识别eMMC也能正常挂载。更新的版本比如基于Debian 12的有些会出现网卡不识别或者eMMC写入失败的问题不建议新手尝试。CasaOS的安装倒是没什么版本限制只要Armbian能正常跑起来用官方的一键安装脚本就行。但要注意CasaOS对Docker版本有要求需要Docker 20.10以上Armbian自带的Docker版本一般都能满足。2.3 降级操作的必要性和具体步骤N1的原厂系统有一个引导验证机制如果不降级直接刷Armbian刷机工具会报错。所以第一步必须先把原厂系统降级到一个可以接受第三方固件的版本。降级的具体操作是先把N1接上电源和网线开机进入原厂系统。然后在电脑上通过ADB连接到N1需要先在N1上开启ADB调试执行降级命令。降级包里面通常包含三个文件bootloader、boot和recovery。你需要依次把这些文件推送到N1的对应分区。这个过程说起来简单但实际操作中有几个坑。第一个坑是ADB连接不稳定有时候会断断了之后要重新来。第二个坑是降级包版本不对刷进去之后N1直接变砖只能拆机短接救砖。所以降级之前一定要确认降级包是针对你的N1批次的。N1有两个批次早期批次和后期批次的闪存芯片不一样降级包不能混用。注意降级之前先用原厂系统的系统信息页面确认一下你的N1是什么批次。如果系统信息里面显示的版本号是2.19及以下说明是早期批次2.22及以上是后期批次。不同批次的降级包不通用。3. 从零开始刷入Armbian的完整流程3.1 制作启动U盘和首次引导Armbian的镜像下载下来是一个压缩包解压之后得到一个.img文件。用balenaEtcher把这个img文件写入U盘写入完成之后U盘会被分成两个分区一个是FAT32的boot分区一个是ext4的rootfs分区。Windows下面只能看到boot分区这是正常的。写入完成之后把U盘插到N1靠近HDMI的那个USB口上这个口是OTG口也是引导口。然后给N1通电同时用牙签或者取卡针按住N1底部的复位键在网口旁边那个小孔里面。按住复位键的同时通电保持按住大概5秒钟再松开。这时候N1会从U盘引导而不是从eMMC引导。如果一切正常你会看到N1的HDMI输出有画面显示Armbian的启动日志。如果没有画面可能是U盘没做好或者复位键按的时机不对。多试几次这个操作需要一点耐心。首次启动Armbian会要求你设置root密码和创建一个普通用户。密码建议设置得复杂一点因为后面要暴露到公网。创建完用户之后系统会重启这次重启就不需要按复位键了它会自动从U盘引导。3.2 把系统写入eMMC的详细操作U盘引导成功之后你可以在SSH里面操作把系统从U盘写入到eMMC。Armbian自带了一个安装脚本执行armbian-install命令就行。脚本会问你几个问题选择要安装的设备选eMMC、选择文件系统类型选ext4、是否格式化选是。然后它会自动把U盘上的系统拷贝到eMMC。这个过程大概需要5到10分钟取决于U盘的速度。写入完成之后脚本会提示你关机拔掉U盘然后重新通电。重新通电之后N1就会从eMMC引导Armbian了。这里有一个非常关键的坑写入eMMC之后第一次从eMMC启动可能会失败卡在开机画面不动。这个问题的原因是eMMC的引导记录没有正确写入。解决办法是重新用U盘引导然后执行armbian-install的时候选择“安装引导记录到eMMC”这个选项。或者更简单的方法在U盘引导状态下执行dd if/dev/zero of/dev/mmcblk1 bs1M count10清空eMMC的前10MB然后重新安装。3.3 刷机后必须做的系统初始化配置系统写入eMMC并成功启动之后有几件事必须马上做不然用起来会很别扭。第一件事是更新软件源和系统。执行apt update apt upgrade -y这个过程可能需要十几分钟因为Armbian的源在国外速度比较慢。如果实在等不了可以换成国内源但要注意Armbian的源结构和Ubuntu不太一样不能直接套用Ubuntu的源。第二件事是设置静态IP。N1作为NASIP地址不能变不然每次重启之后你都要重新找它的IP。编辑/etc/network/interfaces文件把eth0的配置改成静态IP。或者如果你用的是NetworkManager可以用nmcli命令来设置。第三件事是安装必要的工具。apt install -y htop curl wget git vim这些工具后面都会用到。特别是curlCasaOS的安装脚本需要用它来下载。第四件事是检查eMMC的剩余空间。执行df -h看看根分区的使用情况。如果剩余空间不到2GB建议把Docker的数据目录迁移到外置存储上不然装几个容器就满了。4. 在Armbian上部署CasaOS的实操细节4.1 CasaOS的一键安装与常见报错处理CasaOS的官方安装命令很简单curl -fsSL https://get.casaos.io | sudo bash。这个脚本会自动检测系统环境安装Docker和Docker Compose然后拉取CasaOS的镜像并启动。但是在N1上执行这个脚本大概率会遇到两个问题。第一个问题是脚本检测到系统架构是armv8之后会去拉取arm64的镜像但有些镜像在Docker Hub上没有arm64版本导致拉取失败。第二个问题是脚本执行到一半的时候因为网络原因超时导致安装中断。对于第一个问题解决办法是手动指定镜像版本。CasaOS的主镜像是有arm64版本的但一些依赖镜像可能没有。你可以在脚本执行失败之后手动执行docker pull命令把缺失的镜像拉下来然后重新执行安装脚本。对于第二个问题最简单的办法是配置Docker的国内镜像加速器。编辑/etc/docker/daemon.json文件加入镜像加速地址然后重启Docker服务。这样拉取镜像的速度会快很多脚本就不容易超时了。安装完成之后CasaOS会监听80端口。你在浏览器里面输入N1的IP地址就能看到CasaOS的登录页面。首次登录需要创建一个管理员账号这个账号密码要记好后面管理Docker容器都要用它。4.2 存储挂载与Docker数据目录迁移CasaOS默认把Docker的数据目录放在/var/lib/docker这个目录在eMMC上。前面说过eMMC只有8GB装完系统和CasaOS之后剩不了多少空间。所以必须把Docker的数据目录迁移到外置存储上。迁移的步骤是先停止Docker服务systemctl stop docker然后把/var/lib/docker目录下的所有内容拷贝到外置存储的某个目录下比如/mnt/usb/docker。拷贝完成之后编辑/etc/docker/daemon.json文件把>

相关新闻

Cadence IC618+180nm PDK双平衡吉尔伯特混频器仿真全流程

Cadence IC618+180nm PDK双平衡吉尔伯特混频器仿真全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 3:35:39 阅读更多 →
swagger-codegen 保留字处理机制解析:以 Java(jersey1)客户端 ModelReturn 模型为例

swagger-codegen 保留字处理机制解析:以 Java(jersey1)客户端 ModelReturn 模型为例

开发工具代码生成API设计 【免费下载链接】swagger-codegen swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. 项目地址: http…

2026/9/24 3:35:39 阅读更多 →
BWO-KELM故障诊断实战:白鲸优化算法自动调参与避坑指南

BWO-KELM故障诊断实战:白鲸优化算法自动调参与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 3:35:39 阅读更多 →

最新新闻

CodeBurn 发布验收 Agent 执行手册:从候选 SHA 到 release-ready 的可复现审计契约

CodeBurn 发布验收 Agent 执行手册:从候选 SHA 到 release-ready 的可复现审计契约

【免费下载链接】codeburn Free, local tool to track AI coding token usage and cost across 37 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn 项目地址: https://gitcode.com/gh_mirrors/co/cod…

2026/9/24 4:49:27 阅读更多 →
@formily/reactive-vue observer:将 Vue 组件渲染变为 Reaction 响应式追踪的完整指南

@formily/reactive-vue observer:将 Vue 组件渲染变为 Reaction 响应式追踪的完整指南

前端UI组件 【免费下载链接】formily 📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 项目地址: https://gitcode.com/gh_mirrors…

2026/9/24 4:49:27 阅读更多 →
Kornia 修复深度解析:HyNet 与 SOSNet 半精度描述符的 CPU/GPU 稳定性改造

Kornia 修复深度解析:HyNet 与 SOSNet 半精度描述符的 CPU/GPU 稳定性改造

计算机视觉人工智能深度学习图像处理 【免费下载链接】kornia 🐍 Geometric Computer Vision Library for Spatial AI 项目地址: https://gitcode.com/gh_mirrors/ko/kornia 点击查看 免费下载 本文基于 Kornia 仓库 changelog.d/migration-085.fixed.m…

2026/9/24 4:49:27 阅读更多 →
华为S5700 VLAN配置与排障实战指南

华为S5700 VLAN配置与排障实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:49:27 阅读更多 →
变转速变载荷下轴承退化指标构建:RBFNN-KPCA方法实战

变转速变载荷下轴承退化指标构建:RBFNN-KPCA方法实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:49:27 阅读更多 →
SSM毕业设计-基于 SSM+Vue 的医疗机构体检管控系统的设计与实现 基于 SSM 的一体化健康体检管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

SSM毕业设计-基于 SSM+Vue 的医疗机构体检管控系统的设计与实现 基于 SSM 的一体化健康体检管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/24 4:48:27 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →