Openwrt
针对树莓派的OpenWrt镜像有高达500K+次下载,功能完善适合大部分人,属于开箱即用类型,适用于armv6/armv7/armv8(aarch64)/x86_64(amd64) 平台设备的 OpenWrt 镜像。
仓库地址:
https://hub.docker.com/r/sulinggg/openwrt
iStoreOS
基于R2S制作iStoreOS系统也不错,如果你想要安装更多的插件,可以尝试这个镜像。
仓库地址:
https://hub.docker.com/r/kowming/istoreos-openwrt-n1-aarch64
基于N1的镜像:
https://hub.docker.com/r/kowming/openwrt-n1-aarch64
开始部署
查看网卡信息
使用ifconfig或者ip addr命令查看系统的网络接口名称,也就是你宿主机当前IP这个接口的名称,一般是eth0

创建WACVLAN网络
ip link set eth0 promisc on
网卡混杂模式(Promiscuous Mode)是一种特殊的网络工作模式,允许网卡接收所有经过它的数据包(包括目标地址非本机的流量)。
docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.1 -o parent=eth0 macnet
上面解释:10.0.0.0/24 --gateway=10.0.0.1 这里改成你内网的网段和网关。
macvlan 是 Linux 内核提供的一种虚拟网络驱动,允许在单个物理网卡(父接口)上创建多个虚拟网络接口,每个虚拟接口拥有独立的 MAC 地址 和 IP 地址,直接连接到物理网络。
拉取OpenWrt或者iStoreOS镜像
#openwrt镜像
docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:armv8
#istore镜像
docker pull kowming/istoreos-openwrt-n1-aarch64:istoreos
以上二选一,或者全都要,体验过后决定用哪个,这就是Docker的好处,可以随时删除。
运行OpenWrt容器
#启动OpenWrt容器
docker run --restart always --name OpenWrt -d --network macnet --ip 10.0.0.254 --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt:armv8 /sbin/init
#启动iStoreOS容器
docker run --restart always --name istoreos -d --network macnet --ip 10.0.0.253 --privileged kowming/istoreos-openwrt-n1-aarch64:istoreos /sbin/init
注两处:--network macnet --ip 10.0.0.254(openwrt)是指定一个IP地址254(iStoreOS 253),方便登录后台设置,IP地址可以自定义。
进入容器内部更改IP
# 进入OpenWrt容器内部
docker exec -it OpenWrt /bin/sh
# 进入iStoreOS容器内部
docker exec -it istoreos /bin/sh
这一步是进入容器内部修改一下IP地址,镜像默认的IP地址是192.168.3.1,一般和你局域网的IP不在同一个网段,所以需要修改成我们上面设置的IP。
修改网络配置文件,改一下IP地址
vim /etc/config/network

重启网络和docker或直接reboot完成部署
/etc/init.d/network restart
systemctl restart docker
浏览器输入设置的容器IP:10.0.0.253 用户名:root 密码 无
同样的如果是安装的iStoreOS输入设置的容器IP:10.0.0.254,用户名:root 密码 password
可以看到两个容器内核6.6.25很新,功能基本都有、iStoreOS有商店可以安装更多的插件,其他基本一致。
使用旁路由的方式也不复杂,把旁路由视为一个普通终端,先保证旁路由可以上网,让后需要使用旁路由的手机、电脑等,网关和DNS指向旁路由IP即可,至于是DHCP分配还是手动设置看个人习惯了。
注:本文系统部署于基于RK3566处理器的设备之上,运行正常。
