N1盒子Docker安装OpenWrt旁路由

目录

  1. 1. 刷入Armbian
  2. 2. 安装docker
  3. 3. 安装OpenWrt
    1. 3.1. 启动容器
    2. 3.2. 配置OpenWrt地址
    3. 3.3. 旁路由设置
    4. 3.4. 主路由设置
  4. 4. Armbian和OpenWrt网络互通

N1盒子装上Armbian以后就可以当作一台低功耗的小主机使用,配合各种docker可以集各种功能于一体。

刷入Armbian

Armbian固件使用的是恩山flippy大神的49+o(原帖地址),目前已经稳定,于是在刷入u盘后顺手刷入了eMMC。

在刷入前先在u盘启动的系统里运行ddbr命令选b进行备份(记得选压缩),文件保存到了/ddbr目录,以便以后有需要时恢复原系统。
然后执行install-to-emmc.sh脚本按提示将系统拷贝到N1的闪存中。拷贝完成关机、拔U盘、再开机,就进入内置的系统了。

安装docker

执行install-docker.sh安装docker,啪的一下就安装完成了,很快啊!

可以接着安装一个Docker图像化管理工具Portainer

1
2
docker volume create portainer_data
docker run -d --name portainer --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

通过浏览器访问盒子的9000端口就能管理docker了。

安装OpenWrt

OpenWrt的Docker镜像使用的也是flippy大神提供的(原帖地址),目前还在更新。

启动容器

从网盘上下载压缩包传到Armbian目录下,省去pull的步骤直接启动:

1
2
3
gzip -dc docker-img-openwrt-aarch64-r20.10.20.gz | docker load
docker network create -d macvlan --subnet=192.168.123.0/24 --gateway=192.168.123.1 -o parent=eth0 macnet
docker run -d --name openwrt --restart always --network macnet --privileged unifreq/openwrt-aarch64:r20.10.20

其中macvlan的网段按主路由的实际情况填写。

配置OpenWrt地址

执行docker exec -it openwrt bash进入容器里进行配置。
编辑容器里的/etc/config/network配置文件,将option ipaddr的值改为指定给OpenWrt的ip地址,如192.168.123.2
保存后执行/etc/init.d/network restart使配置生效。
此时通过浏览器访问刚刚配置的地址应该就可以进入luci管理界面了(默认密码应该是password)。

旁路由设置

通过浏览器进入OpenWrt的管理界面,在网络-接口里修改lan的配置,将IPv4网关设置为主路由的地址,如192.168.123.1,在使用自定义的DNS服务器里添加几个当地最好用的公共DNS;在物理设置里关闭桥接接口;关闭DHCP服务器里的动态DHCP功能,保存并与应用设置。

主路由设置

在主路由的内部网络(LAN)-DHCP服务器设置里将默认网关DNS服务器设置为旁路由地址,如192.168.123.2
如果主路由是padavan固件且外部网络(WAN)-外网设置开启了硬件加速,需要将IPv4 硬件加速设置为OFFLOAD TCP/UDP for LAN

Armbian和OpenWrt网络互通

按照上面设置完旁路由发现Docker的宿主机Armbian系统和OpenWrt无法互相访问。需要修改Armbian网络配置/etc/network/interfaces,增加如下内容:

1
2
3
4
5
6
7
8
9
10
up ip link set eth0 promisc on

auto macvlan
iface macvlan inet static
address 192.168.123.123
netmask 255.255.255.0
gateway 192.168.123.1
dns-nameservers 192.168.123.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

其中address是要固定的Armbian的地址,gatewaydns-nameservers填主路由地址就可以了。

保存后执行systemctl restart networking使配置生效,两个地址就可以互相访问了。

然后在比硬路由更强大的N1盒子上就起一些留学服务了。