arm架构NAS玩转OpenWRT软路由!Docker 部署 iStoreOS,变旁路由
前言
在 NAS 玩家的圈子里,将设备“一物多用”是永恒的追求,之前我们分享过 x86 架构 NAS 部署软路由的教程。

但随着 ARM 版飞牛OS (FNOS) 的公测,以及绿联DH2600、极空间、群晖等 ARM 机型的大量普及,很多小伙伴发现 ARM 架构下的 Docker 镜像相对较少,部署逻辑也略有不同,本篇教程将手把手教你如何在ARM架构的 NAS 上,利用 Docker 部署目前最受欢迎的 iStoreOS 软路由/旁路由系统。

一、 核心准备工作
在正式开始前,我们需要确认硬件架构并开启必要的权限,请根据以下步骤来操作,本次我使用N1、绿联DH4300 Plus做为演示,它们均是arm架构的NAS,理论上以下方法适用于所有支持docker的ARM架构NAS,请随机应变,整个过程换汤不换药。

如果是飞牛NAS玩完,目前飞牛商店已经上线QWRT一键部署应用,但本期教程演示的是『渔』,你学会后可以任意获『鱼』,也就是可以自行部署任意版本的软路由系统,不仅限于QWRT。

1. 确认系统架构
连接SSH后,通过命令可以确认你的 CPU 架构,目前主流NAS机型大多是以下两种架构:
AARCH64:大部分主流 ARM NAS(如 N1、RK3568处理器机型)。
ARMV7 / ARMHF:较老或特定型号的 ARM 设备。
2. 开启 SSH 访问
飞牛OS (FNOS): 进入 系统设置 -> 网络服务 -> SSH,勾选开启。

绿联云: 进入 控制面板 -> 终端机 -> SSH,启用服务。

群晖/极空间: 同样在控制面板的终端设置中开启。
3. 工具准备
SSH 客户端: 推荐使用 Putty 或 Termius,习惯哪个用哪个,本期使用putty演示。

下载putty后打开,输入NAS内网IP和端口,点击Open。

各种提示点击yes或确定,在login as处填写你NAS的登录用户名,回车后出现password,输入你NAS登录密码,密码看不到的,回车,即可登录NAS的SSH成功。

接着输入sudo -i回车,输入密码,同样看不到,回车后有root开头代表提权成功。
sudo -i

二、 关键步骤:网络环境配置
这是最重要的一步,决定了你的软路由能否正常与局域网设备通信。
第一步:获取网卡标识
接着获取当前物理网卡的名称:
绿联/普通 NAS: 输入 ifconfig,查看有 IP 地址的那块网卡(通常是 eth0),所以对我来说,记住这个eth0的标识,后面会用到。

飞牛OS: 在网络设置中查看,我的显示为end0-ovs(如果开启了虚拟交换机),每个人的都是不同的,请记住这个标识。

第二步:开启网卡混杂模式
以网卡名为 eth0 为例(请根据你实际获取的名称替换),请使用前面获取的NAS网口标识替换以下命令中的eth0部分,即是你的命令,我的绿联前面获取是eth0,所以完整命令如下。
ip link set eth0 promisc on
如果是飞牛,我的是end0-ovs,那么完整命令就是,请随机应变,不要照抄。
ip link set end0-ovs promisc on
复制你最终命令,在putty这里点击鼠标右键,粘贴,回车运行即可。

第三步:创建 Macvlan 网络
我们需要为 Docker 创建一个独立的虚拟网络段。注意替换下方命令中的两个部分:
subnet: 你的局域网网段(如 192.168.10.0)。
gateway: 你的主路由 IP(如 192.168.10.1)。
parent: 上一步获取的网卡名。
将以下命令中的192.168.10.0替换成为你当前内网网段,注意有subnet和gateway两处需要更改、并把其中的enp3s0改成第一步中获取的网卡标识,粘贴到putty,回车运行,最终出现一串数字说明成功。
docker network create -d macvlan --subnet=192.168.10.0/24 --gateway=192.168.10.1 -o parent=enp3s0 openwrt

执行完后,在 NAS 的 Docker 管理界面“网络”一栏,可以看到名为 openwrt 的网络,后续不用了,也可以在此删除此网络。

三、 部署 iStoreOS 容器
现在我们正式拉取并运行软路由镜像,先运行以下命令,确定架构细节,同样粘贴到putty后运行,我的绿联显示的是aarch64,记住。
uname -m
1. 选择匹配架构的镜像
针对 AARCH64 (推荐): linkease/istoreos:latest
针对 ARMV7: 需要寻找对应的 ARM 版 OpenWrt 镜像,推荐sulinggg/openwrt:arm_arm926ej-s
2. 执行运行命令
如我的绿联是AARCH64,那么完整运行命令就是如下,使用的是yexundao/istoreos:latest镜像。
docker run --restart always --name openwrt -d --network openwrt --privileged --cpus=0.5 --memory=500m yexundao/istoreos:latest /sbin/init
如是ARMV7,那么命令如下,仅替换镜像名部分:
docker run --restart always --name openwrt -d --network openwrt --privileged --cpus=0.5 --memory=500m sulinggg/openwrt:arm_arm926ej-s /sbin/init
有的NAS不支持内置docker加速,可以增加1ms加速拉取,请随机应变。
docker run --restart always --name openwrt -d --network openwrt --privileged --cpus=0.5 --memory=500m docker.1ms.run/yexundao/istoreos:latest /sbin/init
镜像中的--cpus=0.5代表这个软路由最高能占用CPU的一半、--memory=500m代表占用最高500MB内存,毕竟大多数arm机器的CPU和内存性能都有限,所以节省点用。
获取以下最终命令后,粘贴到putty部署,正常会拉取镜像部署,等它完成就行,最终出现一串数字代表部署成功,如果拉取失败,建议设置对应网络环境拉取,正常来说,1ms这个加速够用。

成功后,返回NAS的docker后台,可以看到openwrt容器运行中。

然后点击容器进去,找到终端,点击新增或连接,选择/bin/bash确认就连接了。

最终连接效果如下,在这个黑框界面输入以下命令回车,即可。
vim /etc/config/network

回车后来到如下界面。

四、 后期配置:修改旁路由 IP
容器运行后还无法直接访问,因为默认 IP 可能与你的局域网冲突,需要手动修改。
1. 修改网络配置文件
输入以下命令编辑网卡信息,按键盘上的字母i键进入编辑模式,修改以下项:
ipaddr: 改为局域网内一个没人用的 IP(例如 192.168.10.222)。
gateway: 指向你的主路由 IP。
dns: 同样指向主路由 IP 或常用 DNS。
编辑模式状态下,通过上下左右键把光标移动到图中红框位置,按以上提示进行修改。

我的内网网段是192.168.10.0,所以最终填写如下,ipaddr部分填写网段,然后第四组的222大家照抄吧,或者223、224也可以,netmask一般是255.255.255.0,gateway就填写主路由地址,一般网段后接1.

修改完成后,按键盘上的 Esc键,输入 :wq 并回车保存,最后点击重启这个软路由容器即可生效。

五、 终端设备如何使用旁路由?
部署完成后,你可以在浏览器输入刚才设置的 IP(如 192.168.10.222)进入 iStoreOS 后台。

可以发现,成功进入,可能需要等两分钟左右,有些机型性能低,启动需要时间,没有密码的,直接登录就行。

若想让手机或电脑通过这个旁路由上网,需手动配置终端的网络设置:
IP 地址: 设置为局域网内的静态 IP,同网段即可。
子网掩码: 255.255.255.0。
网关/路由器: 填写旁路由的 IP(即 192.168.10.222),你设置的软路由地址。

保存后,即可生效,现在,这台手机设置了旁路由地址的设备的所有上网流量将会经过NAS中的这个软路由处理,各种广告过滤之类会生效了,可以体验到OpenWRT的强大了。

如果要恢复,不走旁路由,原样恢复就行,即设置回自动。

像Windows、安卓、MAC OS也是一样流程,具体可以在AI助手中提问,它就会告诉你了,本文就不再赘述了。
我的NAS旁路由地址是192.168.10.222,我要让Windows、安卓、MAC OS实现旁路由生效,我要如何设置?

结尾
通过以上步骤,你的 ARM NAS 就成功化身为一台高性能旁路由了,OpenWRT丰富的插件生态将极大地扩展你家庭网络的可玩性,快折腾起来吧!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

我是阿皮啊-
校验提示文案
有昵称好中奖
校验提示文案
飞的风
校验提示文案
飞的风
校验提示文案
有昵称好中奖
校验提示文案
我是阿皮啊-
校验提示文案