1、开启网卡混杂模式
1.1、网卡设置
1
| sudo ip link set end0 promisc on
|
- 创建
docker
网卡,创建 WAN
端口的 macvlan
,名称为 macnet0
1
| docker network create -d macvlan --subnet=192.168.5.0/24 --gateway=192.168.5.1 -o parent=end0 macnet0
|
1.2、设置开机自启
注意,这里的配置会在重启后失效,要重启后仍然生效,需要添加到启动参数中
- 启动脚本,修改文件
/etc/rc.local
,并添加可执行权限
1
| sudo chmod u+x /etc/rc.local
|
1 2
| ip link set end0 promisc on exit 0
|
1
| sudo vim /etc/systemd/system/rc-local.service
|
rc-local.service
启动服务内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local After=network.target
[Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 RemainAfterExit=yes
[Install] WantedBy=multi-user.target
|
1
| sudo systemctl enable rc-local
|
1
| sudo systemctl start rc-local.service
|
1
| sudo systemctl status rc-local.service
|
2、部署 OpenWrt
2.1、拉取镜像
镜像地址,具体型号根据自己的机器自行选择。
1
| docker pull sulinggg/openwrt:armv8
|
2.2、部署 OpenWrt
1
| docker run -d --restart always --network macnet0 --privileged --name openwrt sulinggg/openwrt:armv8 /sbin/init
|
2.3、进入容器,修改网络配置
1
| docker exec -it openwrt /bin/bash
|
1 2 3 4 5 6 7 8
| config interface 'lan' option ifname 'eth0' option proto 'static' option netmask '255.255.255.0' option ip6assign '60' option ipaddr '192.168.31.110' # 修改一个静态地址,要和主路由器地址在同一个网段下 option gateway '192.168.31.1' # 修改为主路由器地址 option dns '192.168.31.1' # 修改为主路由器地址
|
1
| /etc/init.d/network restart
|
3、配置 OpenWrt
3.1、接口设置
网络 -> 接口 -> LAN
基本设置中,使用自定义的 DNS
服务器,内容删除。下方基本设置默认应该是忽略此接口已打勾,IPV6
设置全部已禁用。
物理配置中,取消勾选桥接接口;在最下方的基本配置中,关闭 DHCP
,也就是忽略此接口需打勾;最下方的 IPV6
设置中,路由通告服务、DHCPv6
服务和 NDP
代理全部选择已禁用。
设置完成,保存并应用。
3.2、防火墙添加配置
网络 -> 防火墙 -> 自定义规则,添加下面这条规则
1
| iptables -t nat -I POSTROUTING -j MASQUERADE
|
设置完成,保存并应用。
3.3、DNS 设置
网络 -> Turbo ACC 网络加速设置
打开 DNS 缓存
,其他设置保存默认即可。
设置完成,保存并应用。
参考文章:
使用Docker安装OpenWrt
Docker中OpenWrt旁路由安装教程