在docker(linux)中安装openwrt作为旁路由
2022-11-29 15:44:28
本文使用ubuntu-server20.04,服务器架构为x86-64,已假设安装了docker,net-tools,vim
开启网卡混杂模式
查看网卡名称
使用ifconfig查看。如下图,enp4s0为网卡名称,inet为局域网ip,这里需要记录网段,我这里是10.0.0.x
执行指令并保持开机自启
执行如下指令
ip link set 网卡名称 promisc on
举例:我这里网卡名称为enp4s0,则执行的命令为: ip link set enp4s0 promisc on。
执行后查看ifconfig,对应网卡后出现promisc即为成功。
将上方执行的命令添加到如下文件中即可开机自启。
/etc/rc.local
创建docker网络
docker network create -d macvlan --subnet=网段 --gateway=网关 -o parent=网卡名 macnet
说明:
网段:在这里我的ip是10.0.0.71,子网掩码为255.255.255.0,则这里填写10.0.0.0/24
网关:一般为路由器地址,我这里是10.0.0.1
网卡名:填写第一步开启混杂模式的网卡,我这里是enp4s0
示例如下:
docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.1 -o parent=enp4s0 macnet
选择合适的docker镜像
我这里使用官方镜像,也可以选择大佬们封装的镜像,没什么要求。记得非x86-64架构要看好tag
docker pull openwrtorg/rootfs
创建容器
docker run --restart always --name openwrt -d --network macnet --privileged openwrtorg/rootfs /sbin/init
如不使用上面的镜像,按需替换即可。
不需要创建端口映射
设置openwrt网络
进入docker容器
docker exec -it openwrt sh
编辑/etc/config/network
openwrt中包含vi编辑器。
vi /etc/config/network
输入i 进入编辑模式
向文件内追加如下内容,缩进不能乱
config interface 'lan'
option proto 'static'
option ipaddr '旁路由地址'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '网关'
option broadcast '广播地址'
option device 'eth0'
list dns 'DNS地址'
说明:
旁路由地址:填写你想设置为路由的ip,需与主路由同一网段,如:10.0.0.2
网关:路由器地址,如:10.0.0.1
广播地址:相同网段的最后一个ip,将网关的最后一段替换为255即可。如:10.0.0.255
DNS地址:建议使用路由器地址
示例:
config interface 'lan'
option proto 'static'
option ipaddr '10.0.0.2'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '10.0.0.1'
option broadcast '10.0.0.255'
option device 'eth0'
list dns '10.0.0.1'
保存退出。vi编辑器按一下esc,输入:wq然后回车退出,冒号需要输入。
执行如下命令重启网络配置
/etc/init.d/network restart
至此结束。如使用的docker镜像不包含web界面,可使用如下方式安装。
安装WEB界面
使用passwd
设置root密码
opkg update
opkg install luci
安装汉化包
opkg install luci-i18n-base-zh-cn
启动web
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
至此,真的结束
发布评论
提交
评论