智算多多



在 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。
连接SSH后,通过命令可以确认你的 CPU 架构,目前主流NAS机型大多是以下两种架构:
putty官网:https://putty.org/index.html
下载putty后打开,输入NAS内网IP和端口,点击Open。
各种提示点击yes或确定,在login as处填写你NAS的登录用户名,回车后出现password,输入你NAS登录密码,密码看不到的,回车,即可登录NAS的SSH成功。
接着输入sudo -i回车,输入密码,同样看不到,回车后有root开头代表提权成功。
sudo -i
这是最重要的一步,决定了你的软路由能否正常与局域网设备通信。
接着获取当前物理网卡的名称:
以网卡名为 eth0 为例(请根据你实际获取的名称替换),请使用前面获取的NAS网口标识替换以下命令中的eth0部分,即是你的命令,我的绿联前面获取是eth0,所以完整命令如下。
ip link set eth0 promisc on
如果是飞牛,我的是end0-ovs,那么完整命令就是,请随机应变,不要照抄。
ip link set end0-ovs promisc on
复制你最终命令,在putty这里点击鼠标右键,粘贴,回车运行即可。
我们需要为 Docker 创建一个独立的虚拟网络段。注意替换下方命令中的两个部分:
将以下命令中的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 的网络,后续不用了,也可以在此删除此网络。
现在我们正式拉取并运行软路由镜像,先运行以下命令,确定架构细节,同样粘贴到putty后运行,我的绿联显示的是aarch64,记住。
uname -m
如我的绿联是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 可能与你的局域网冲突,需要手动修改。
输入以下命令编辑网卡信息,按键盘上的字母i键进入编辑模式,修改以下项:
编辑模式状态下,通过上下左右键把光标移动到图中红框位置,按以上提示进行修改。
我的内网网段是192.168.10.0,所以最终填写如下,ipaddr部分填写网段,然后第四组的222大家照抄吧,或者223、224也可以,netmask一般是255.255.255.0,gateway就填写主路由地址,一般网段后接1.
修改完成后,按键盘上的 Esc键,输入 :wq 并回车保存,最后点击重启这个软路由容器即可生效。
部署完成后,你可以在浏览器输入刚才设置的 IP(如 192.168.10.222)进入 iStoreOS 后台。
可以发现,成功进入,可能需要等两分钟左右,有些机型性能低,启动需要时间,没有密码的,直接登录就行。
若想让手机或电脑通过这个旁路由上网,需手动配置终端的网络设置:
保存后,即可生效,现在,这台手机设置了旁路由地址的设备的所有上网流量将会经过NAS中的这个软路由处理,各种广告过滤之类会生效了,可以体验到OpenWRT的强大了。
如果要恢复,不走旁路由,原样恢复就行,即设置回自动。
像Windows、安卓、MAC OS也是一样流程,具体可以在AI助手中提问,它就会告诉你了,本文就不再赘述了。
我的NAS旁路由地址是192.168.10.222,我要让Windows、安卓、MAC OS实现旁路由生效,我要如何设置?
通过以上步骤,你的 ARM NAS 就成功化身为一台高性能旁路由了,OpenWRT丰富的插件生态将极大地扩展你家庭网络的可玩性,快折腾起来吧!
