N1刷Armbian系统并在Docker中安装OpenWrt旁路由的详细教程 - Go语言中文社区

N1刷Armbian系统并在Docker中安装OpenWrt旁路由的详细教程


最近入手了个传说中的N1,CPU、内存、存储卡的配置还不错,但只有1个网口(不过是千兆的),USB接口又是2.0的,实在没有想好到底能干啥。本来想只刷个openwrt路由固件来测试哈的,但又觉得浪费了它的强大配置,何不先刷入armbian固件,再在docker中安装openwrt,今后想要添加别的功能还可以无限的发挥想象。由于对linux和docker一知半解,过程中走了不少弯路,为了给像我一样的小白指指路,也为自己做个备忘录,将折腾记录及注意事项分享如下:

一、大体流程:

1.将armbian刷入U盘

2.将N1降级

3.将armbian刷入N1的内部存储emmc

4.安装docker

5.在docker中安装openwrt软路由

6.主路由与旁路由的设置

7.其他事项

二、详细过程:

1.将armbian刷入U盘

1.1.下载适合N1的armbian镜像文件。有大神专门修改后适配N1的驱动dtb文件(包括降低运行负载等优化),更有大神制作好了集成驱动的armbian系统镜像。我用的是enshan大神flippy制作的镜像【在此膜拜并感谢】,只需要写入不做任何修改即可正常使用。下载链接:链接:https://pan.baidu.com/s/1UiCmdGVtG7OtmtntCQNzQw;提取码:ug54

1.2.准备U盘镜像写入软件,用绿色单文件软件rufus即可(可度娘搜到),运行该软件,选中你要写入镜像文件的U盘(注意:会清除U盘上所有,请提前做好备份),其它按缺省设置即可,点击开始写完即可拔下U盘备用。

2.将N1降级(若已降级直接跳到第3步)

2.1.打开N1的adb调试功能:将N1启动到nas主界面点击4次固件版本即可打开adb(会有提示)

N1在nas主界面点击4次固件版本打开adb
N1在nas主界面点击4次固件版本打开adb

2.2.下载webpad提供一键降级工具:

百度云:链接: https://pan.baidu.com/s/1Ja3oqJTPvmKvd_-Zdhj13g,提取码:2w5n

微云:链接:https://share.weiyun.com/5klmuxd;密码:yaefa9

原目录结构解压至计算机

2.3.在计算机(需与N1在同一网段)运行onekey 子目录下的 run.bat ,按提示操作:(注意是按数字2并回车,并将盒子ip修改为你自己的!N1的ip可以通过N1连接的上级路由器查看得到。

注意是按数字2并回车,并将盒子ip修改为你自己的

3.将armbian刷入N1的内部存储emmc

3.1.将N1启动进入刷机模式:在计算机(需与N1在同一网段)中运行如下命令(在前述的onekey目录中有adb.exe及其所需文件)

------①.adb connect N1的ip(可用ifconfig查询得到)

-------②.adb shell
-------③.reboot update(黑屏重启时迅速插入U盘

-----注意:如果在N1进入原生固件(哪怕是已经降过级但未重刷系统固件)的nas界面时插入U盘,会将U盘中文件夹的访问权限从root修改为别的,导致刷入系统后出现很多莫名其妙的问题,所以务必按前述流程操作。否则只有重新制作U盘。

----只要U盘成功启动进入系统一次,以后就不再需要用命令方式,直接在N1关机状态插入U盘即可启动到U盘系统。

3.2.U盘启动进入armbian系统

U盘系统启动后【此时可以给N1接上显示器和键鼠直接进行后续操作,也可在同网段计算机上通过ssh方式操作】需要输入用户名及密码,缺省值是root,1234,并要求修改密码(不能与1234相同或相近)---------务必记住修改后的密码。

3.3.将系统写入emmc

用root账户deng登录后,直接运行./install.sh新版已改成./install-to-emmc.sh)即可自动安装,所有脚本运行完毕后,关机,拔掉U盘,开机即可正常进入emmc的armbian系统,用户名和密码即为刚才在U盘系统中修改的。

4.安装docker

flippy大神的armbian5.98已经集成了install-docker.sh脚本,直接用root登录运行./install-docker.sh即可完成安装。

5.在docker中安装openwrt软路由

5.1.寻找适合你的在docker中运行的openwrt源或镜像包,我依然用的是flippy大神的(再次感谢,在前述armbian下载链接里有),现在已经更新到r9.10.24版了。

5.2.下载并导入openwrt镜像包

----①.将docker-img-openwrt-aarch64-r9.10.24.gz文件上传至N1的/root目录
----②.ssh到N1
----③.导入软路由docker包:
----gzip -dc docker-img-openwrt-aarch64-r9.10.24.gz | docker load
----或者docker pull unifreq/openwrt-aarch64:r9.10.24(如果未按第①步事先下载并上传镜像包的话)

---最新版:docker pull unifreq/openwrt-aarch64:r20.10.20

5.3.开启网卡的混杂模式(这样是为了目前这个阶段能正常安装并配置,要永久开启需修改配置文件,稍后详述)

ip link set eth0 promisc on

5.4.创建docker的虚拟网络(可用docker network ls查看已创建了哪些)

docker network create -d macvlan --subnet=192.168.12.0/24 --gateway=192.168.12.1 -o parent=eth0 macnet

【名称为macnet,macvlan模式,将12.x修改为你自己主路由的网段】

5.5.开启openwrt容器:

docker run --restart always -d --network macnet --privileged unifreq/openwrt-aarch64:r9.10.24 /sbin/init

----------注意路由包名与前述导入的保持一致,后面的/sbin/init可以省略-

5.6.进入openwrt容器修改network设置(当然也可以安装docker的图形管理界面然后修改-----我的没有成功,所以就只能在ssh中敲命令啰)
------docker exec -it cranky_faraday bash→相当于进入openwrt的shell,其中cranky_faraday为openwrt容器名,可以通过运行docker container ls 显示出的NAMES字段获得(也可以在5.5.中-n的方式zhid指定容器名)

------vi /etc/config/network,将option ipaddr 192.168.X.1替换为你想登录op的ip,注意其应在主路由网段内,如192.168.12.5,ESC,:wq
5.7.reboot或者/etc/init.d/network restart,此时已经可以在浏览器中输入192.168.12.5登录openwrt软路由了!

6.主路由与旁路由的设置

6.1.openwrt旁路由:关闭dhcp,网关填主路由ip,dns可以为主路由ip或114等公共dns,且将其【物理设置】中的【桥接接口】取消掉。还有最重要的1点:务必在防火墙添加规则设置:iptables -t nat -I POSTROUTING -j MASQUERADE并重启防火墙

6.2.主路由:开启dhcp,网关和dns填旁路由ip。

如果主路由是openwrt固件可在dhcp服务器的dhcp选项中按下图填入-如此设置网关和dns依然不变,只有通过主路由dhcp分配到ip的设备之网关和dns才指向旁路由

----如果主路由采用padavan及开启硬加速, 而用N1做旁路由时可能出现不兼容情况,导致网络卡顿,关闭主路由硬加速可以解决(将主路由padavan的外部网络WAN -> 外网设置选项卡 -> IPv4硬件加速,由OFFLOAD TCP/UDP for LAN/WLAN,修改为OFFLOAD TCP/UDP for LAN----

7.其他事项

如此设置后,会存在如下问题:

①.同网段设备均可以正常访问(包括ping)N1和op,但N1和op之间是不能互访的【需要将armbian的ip设置为静态的才行

②.N1重启网卡混杂模式会失效,需设为永久开启

解决方案是修改/etc/network/interfaces文件(eth0部分):(谨慎操作,可能导致armbian永远无网络
auto eth0
 iface eth0 inet manual
 up ip link set eth0 promisc on
 auto macvlan
 iface macvlan inet static
   address 192.168.12.104→修改成你需要的
   netmask 255.255.255.0
   gateway 192.168.12.1→需改成你的主路由ip或192.168.12.5(旁路由的ip
   dns-nameservers 192.168.12.1→需改成你的主路由ip或12.5或再加1个公共dns比如114
   pre-up ip link add macvlan link eth0 type macvlan mode bridge
   post-down ip link del macvlan link eth0 type macvlan mode bridge

改完后重启网络systemctl restart networking或者重启系统查看效果

---------永久开启网卡混杂模式的最简单方法:-----------

修改 /etc/rc.local 加入如下代码:

ip link set eth0 promisc on

或者

ifconfig eth0 promisc

改完重启系统即可(完全启动完才生效,大概需要两三分钟)。

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/engineerlzk/article/details/102918772
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 09:56:30
  • 阅读 ( 3512 )
  • 分类:docker

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢