在 Docker 中安装 OpenWrt 作为旁路由

由于本人随时都会使用魔法上网,手上的设备也比较多,家里刚好又有一台闲置的旧电脑,于是给旧电脑装上了 OpenWrt 作为旁路由,来管理家里的网络流量。

步骤详解

1. 创建 macvlan

1
docker network create <vlan name>  -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 --ip-range=192.168.0.240/28 -o parent=enp2s0

2. 设置网卡为混杂模式

1
ip link set <网卡名称> promisc on

3. 拉取镜像并启动 OpenWrt 容器

1
docker run -d --restart unless-stopped --network <vlan name> --privileged --name openwrt sulinggg/openwrt:x86_64 /sbin/init

4. 进入容器

1
docker exec -it openwrt bash

5. 编辑 OpenWrt 网络配置

1
vi /etc/config/network

配置 openwrt 的 IP 地址(旁路由需要设置一个可用的局域网 IP,DNS 和网关指向主路由),之后执行:

1
reboot

重启 openwrt。

6. 浏览器访问 OpenWrt

在浏览器输入配置的 openwrt 地址,默认密码为 password

7. 关闭桥接接口

在“网络-接口-物理设置”中关闭桥接接口。如果卡住时间超过 1 分钟,在容器中再次重启 openwrt 即可。

![OpenWrt 界面](https://imgbed.youngwhenball.me/file/blog/1749553128861_picGo_1748508465630.png)

8. 注意

由于是旁路由模式且使用了网卡的混杂模式, 所以设备本身无法使用 docker 的魔法上网功能。