在 Docker 中运行 OpenWrt
·2 min read·BIGWONG Studio
Openwrt
本方案原理:
使用 Docker 的 macvlan 网络虚拟化一个二层网卡,作为容器的物理网卡使用。
Docker 固件用户名/密码: root/password
固件链接: raymondwong/openwrt_r9
重要!请确保你的局域网在 192.168.1.0/24 网段
方式一:Shell 命令
ip link set [你的网卡名,例如 eth0] promisc on
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=[你的网卡名] macnet
docker run --restart always -d --network macnet --privileged -v /lib/modules:/lib/modules raymondwong/openwrt_r9:autobuild-22.2.12-arm64
注: 如果运行在 X86 机器上,请切换为 autobuild-22.2.12-x86_64。
打开 http://192.168.1.254,测试是否部署成功。
方式二:Docker Compose
ip link set [你的网卡名,例如 eth0] promisc on
mkdir openwrt&&cd openwrt
# 将下方代码复制到 'docker-compose.yaml',并修改 `driver_opts: parent` 值为你的网卡名
docker-compose up -d
注:
如果运行在 X86 机器上,请切换为 autobuild-22.2.12-x86_64。
打开 http://192.168.1.254,测试是否部署成功。
docker-compose.yaml:
version: '2'
services:
openwrt:
image: raymondwong/openwrt_r9:autobuild-22.2.12-arm64
container_name: openwrt_r9
privileged: true
restart: always
networks:
openwrt_macnet:
ipv4_address: 192.168.1.254
networks:
openwrt_macnet:
driver: macvlan
driver_opts:
parent: en0
ipam:
config:
- subnet: 192.168.1.0/24
ip_range: 192.168.1.128/25
gateway: 192.168.1.1
注: 本教程为单虚拟网卡方案。如果部分插件工作异常,可以尝试添加 2 张虚拟网卡来模拟真实路由。