本方案原理:使用docker的macvlan网络为容器虚拟出一个二层网卡,作为容器物理网卡,和虚拟机桥接网络类似

固件默认账号:root 密码:password

传送门: 镜像仓库链接我在用的网站

方案一(命令行):

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-21.12.6-arm64

等待容器进入running状态后,打开http://192.168.1.254,测试部署是否成功

方案二(docker compse):

ip link set [修改为本地网卡名称,如eth0] promisc on 
mkdir openwrt&&cd openwrt 
将下面代码复制到文件 'docker-compose.yaml', 并将 `driver_opts: parent`的值改为需要桥接的网口
在创建'docker-compose.yaml'文件的同一目录下运行命令`docker-compose up -d` 

等待容器进入running状态后,打开http://192.168.1.254,测试部署是否成功

docker-compose.yaml:

version: '2'
services:
  openwrt:
    image: raymondwong/openwrt_r9:21.2.1-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个虚拟网卡,模拟真正的路由

留下评论