树莓派docker 部署openwrt 软路由

By | 2022-12-05

树莓派docker 部署openwrt 软路由

安装OpenWrt in Docker

1. 开启网卡混杂模式

sudo ip link set eth0 promisc on

2. 安装Openwrt

创建网络

docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eth0 macnet

注意:subnet,gateway需要根据树莓派所处的网段进行修改,使用ifconfig命令,如果树莓派所处的网络在192.168.0.x网段内,则可以根据上述命令进行操作,如果在192.168.1.x网段内,则需要将192.168.0修改为192.168.1

可以使用docker network ls查看建立的网络

启动镜像

启动命令如下

sudo docker run --restart always --name openwrt -d --network macnet --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt:armv7 /sbin/init

—restart always参数表示容器退出时始终重启,使服务尽量保持始终可用;

—name openwrt参数定义了容器的名称;

-d参数定义使容器运行在 Daemon 模式;

—network macnet参数定义将容器加入 maxnet网络;

—privileged 参数定义容器运行在特权模式下;

registry.cn-shanghai.aliyuncs.com/suling/openwrt:armv8为 Docker

镜像名,因容器托管在阿里云 Docker 镜像仓库内,所以在镜像名中含有阿里云仓库信息;

/sbin/init定义容器启动后执行的命令。

如果启动没有报错,则可以通过docker container ps -a看到我们刚刚启动的镜像

进入容器修改配置

docker exec -it openwrt bash
vim /etc/config/network

修改 LAN 口的配置

config interface 'lan'
        option type 'bridge' // 这行要去掉
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.50.11' // 要修改,设置为 openwrt ip
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.50.1' // 要修改
        option broadcast '192.168.50.255' // 要修改
        option dns '192.168.50.1' // 要修改

配置中要修改的部分的网段都要修改为实际网络的网段

option ipaddr配置的就是 openwrt 的 ip,最后一位随意配置,只要不和已分配 ip 冲突即可

option type ‘bridge’这行配置要去掉,官方给的参考教学没有这一项,但是这个配置会把 openwrt 设置为桥接模式,会让一些‘特殊功能’无法生效,所以要去掉。

重启网络生效配置

/etc/init.d/network restart

配置OpenWrt
通过上述配置的ipaddr,访问树莓派控制页,

用户名为:root,密码为:password