N1盒子通过Docker部署OpenWrt

我的N1盒子刷了F大的Armbian系统,u盘启动,刷机过程不在冗述,百度一搜就有很多,使用镜像的名称是Armbian_20.10_Aml-s9xxx_buster_5.10.26-flippy-56+,刷完以后,需要把u盘插到电脑上,进入BOOT盘,把根目录里的u-boot-n1.bin,复制一份,改名u-boot.ext即可正常启动。
下面开始通过Docker部署OpenWrt,安装Docker也不说了,网上一搜也到处都是。

1、打开网卡混杂模式
ssh登陆n1后使用如下命令:
ip link set eth0 promisc on
然后执行
ifconfig
看输出结果的eth0后的描述内是否包含PROMISC
N1重启后这个设置会失效,所以最好把这条命令加到/etc/rc.local中
2、创建 Docker 虚拟网络
docker network create -d macvlan --subnet=192.168.25.0/24 --gateway=192.168.25.1 -o parent=eth0 macnet
这一条命令需要根据N1所处的网络环境来做修改,可以使用ifconfig命令来查看N1 eth0 网卡获得的IP地址,如果N1获得的IP地址为 192.168.2.154,那么说明N1处在192.168.2.x网段,相应的,命令中的192.168.25.0和192.168.25.1需要被替换成 192.168.2.0和192.168.2.1
3、拉取镜像
docker pull sulinggg/openwrt:armv8
4、运行OpenWRT容器
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:armv8 /sbin/init
5、配置 OpenWRT 容器网络
进入容器命令行
docker exec -it openwrt bash
编辑网络配置文件
nano /etc/config/network

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.25.10'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.25.1'
        option dns '192.168.25.1'

重启网络
/etc/init.d/network restart
6、配置OpenWRT

访问192.168.25.10即可进入路由器设置

7、N1连接docker openwrt

经过以上设置后,N1并不能连接docker openwrt,ping不通,需要进行如下操作:

nano /etc/network/interfaces #编辑网络配置文件
先把里面的iface eth0 inet dhcp注释掉
然后在最后添加如下代码:
auto eth0
iface eth0 inet manual
auto macvlan
iface macvlan inet dhcp
#iface macvlan inet static
#  address 192.168.25.205
#  netmask 255.255.255.0
#  gateway 192.168.25.1
#  dns-nameservers 192.168.25.1
  pre-up ip link add macvlan link eth0 type macvlan mode bridge
  post-down ip link del macvlan link eth0 type macvlan mode bridge
上面注释掉的部分是其他教程说的设置固定ip的方法,但是我测试直接使用DHCP也是可以的
需要固定IP的话,可以参考
保存配置文件,重启N1,就可以ping通docker openwrt了

参考文献:在Docker 中运行 OpenWrt 旁路网关 | 美丽应用 (mlapp.cn)
Docker安装OpenWRT做旁路由,魔法上网 - 科技玩家 (kejiwanjia.com)

你可能感兴趣的:(N1盒子通过Docker部署OpenWrt)