在多网口设备上基于docker部署openwrt软路由(主路由模式)


分类:玩转Internet       作者:Caq98i       发布时间:2023-07-27       更新时间:2023-08-19 阅读量:766    


本文介绍在多网口设备上基于docker部署openwrt主路由,OpenWrt是一个基于Linux的嵌入式操作系统的开源项目,主要用于嵌入式设备上路由网络流量。使用docker相对于虚拟机方案性能损耗更低。使用docker也是all in one方案的一个不错的选择。



本方案在一个Linux多网络主机上使用docker部署openwrt主路由,教程中使用的系统为Debian12系统(因为debian11的系统无法识别我的I226-V网卡)

建议开启系统代理,方便拉取镜像,毕竟国内的网络环境拉取镜像,更新系统的速度感人。或者使用国内软件源和docker仓库。

 

① 安装docker:

curl -sSL https://get.docker.com/ | sh

 

② 开启网卡的混杂模式:

ip link set enp1s0 promisc on
ip link set enp2s0 promisc on

注:这里的 enp1s0enp2s0 都是系统检测到的网络接口,对应了实际的网口。这里以双网口为例,一个用于openwrt的 wan 口,一个用于openwrt的 lan 口。可以使用 ifconfigip addr 命令查看本机的网络接口。

⚠ 如果使用docker部署openwrt,对于多网口设备建议也使用双网口来部署openwrt,因为使用多网卡,即使openwrt将多个网口桥接也只有一个网口能够正常通讯,原因未知。(如将两个网口桥接为lan口,并在lan口开启DHCP,wan口正常连接互联网,也只有一个lan口能正常访问互联网,另一个lan口甚至不能访问同局域网内的设备)

PS:混杂模式是指一台机器的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。 一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。 当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。如果不开启混杂模式,docker容器就不能通过这个网口,正常收发数据。

 

③ docker创建macvlan网络:

docker network create -d macvlan -o parent=enp1s0 macnetwan
docker network create -d macvlan -o parent=enp2s0 macnetlan

使用 parent 参数指定要绑定的网口,最后是为网络命名。可以使用 docker network ls 查看所有的docker网络,使用 docker network rm 网络名 删除某个网络。

 

④ 启动容器:

docker run --name openwrt \
--restart always \
-d --network macnetlan \
--privileged sulinggg/openwrt:x86_64 /sbin/init

这里使用了 --network 参数将这个容器放到了网络 macnetlan 上,对于openwrt系统,第一个绑定的网口将命令为eth0,默认作为lan口。这里使用了x86_64架构的openwrt镜像,其他CPU架构的应拉取其他镜像。详见:sulinggg/openwrt - Docker Image | Docker Hub

 

⑤ 将wan口添加进openwrt容器:

docker network connect macnetwan openwrt

 

⑥ 进入容器修改配置:

docker exec -it openwrt bash

进入容器后修改配置文件:

vim /etc/config/network

这里使用了vim命令编辑配置文件,打开配置文件后编辑lan口的配置信息(找到config interface 'lan'这一段),修改静态ip,网关等配置信息,如:

option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
option gateway '192.168.2.1'

基本只需要修改这三项即可,这里是给了lan口一个固定ip:192.168.2.1,这是openwrt lan的ip

修改完成后,保存配置文件,然后执行如下命令使配置文件生效:

/etc/init.d/network restart

 

⑦ 将另一个设备使用网线接入刚刚配置的lan口,给设备一个静态ip,比如:192.168.2.100,然后浏览器访问 192.168.2.1 即可打开openwrt的管理界面。一般地,默认的登录密码为:password

 

⑧ 主路由配置简介:openwrt基本配置入门01——主路由与旁路由基本配置


捐赠通道,感谢!🦀🦀


          support a 🍕


留言与评论







限时特惠促销