树莓派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