Docker安装Openwrt 配置旁路由

介绍一个网站

这是一个可以自编译openwrt的网站,一会需要下载镜像包
并且,非付费的用户可以每天有一个免费的编译机会,大佬还自建了软件源....简直太香了(除了慢点)

1. 打开网卡混杂模式

  • 这里只介绍Ubuntu、debian 以及armbian系统的命令,其他系统自行百度
ip link set eth0 promisc on

eth0 指的是网卡名称

2. 创建一个macvlan网络

  • 创建macvlan网络,是为了实现独立mac地址,在网络层与其他物理机或者容器实现互联。
# 查看这个网卡的网络信息
ip addr show eth0
# 假设eth0的IP是10.0.0.1/24,子网是10.0.0.0/24,网关为10.0.0.1 。那我们的命令为
docker network create -d macvlan \
  --subnet=10.0.0.0/24 \
  --gateway=10.0.0.1 \
  -o parent=eth0 \
  my-macvlan-net

这里,--subnet是macvlan网络的子网,--gateway是网关(通常是子网内的第一个可用地址),-o parent=eth0指定了物理接口。

3.下载 docker镜像包

打开上面这个网站

鼠标滚轮把页面划到最下面,下载这个镜像包,到你想部署Openwrt的这台设备的上。
wget也好,下载上传了也好,随各位心意。

如果你是arm设备或者是32位设备,请在固件搜索区域搜索

4. 导入镜像到docker中

docker import 下载的镜像包名称 docker中显示的镜像名称
# 举例
docker import openwrt-x86-64-generic-rootfs.tar.gz kiddin9_openwrt

5. 创建容器

docker run –restart always –name openwrt kiddin9_openwrt -d –network openwrt –privileged /sbin/init

自己手动创建或者自己改命令

6. 修改openwrt IP

# 进入容器
docker exec -it openwrt sh

# 修改openwrt后台登录IP 
vi /etc/config/network

# 重启网络
/etc/init.d/network restart

# 或者
# 或者退出容器内部环境,在宿主机环境执行重启容器命令
docker container restart openwrt
sed -i ‘s/10.0.0.1/10.0.0.25/’ /etc/config/network && /etc/init.d/network restart

直接网页输入IP,页面登录

#账号密码
root/root

7. 配置位旁路由


8. 注意事项

  • 首页这个联网状态别管他,软件包界面加载慢也别管他,那状态不对。
  • 容器没有办法真正的重启,别问同为啥自己查
  • 尽量少装点插件,docker的性能不是很好,我只装了openclash用的,其余没装

一些废话

首先说一下我为啥在dokcer中部署openwrt,而不是在openwrt中使用docker

  • 设备型号:sw799,配置: CPU RK3399 4+16
    一块捡垃圾来的微信支付设备主板。没有太多的适配固件不多,最常用的还是大佬适配的Armbian固件,所以使用了Armbian固件。
  • 需求:我需要AdguardHome的DNS服务器 和一个openwrt做旁路由
    问题分析:我有一个CPU型号为N6000的ikuai的软路由,以及一个性能还算是凑合的飞牛nas。一些基础的都已经满足了,我需要的是一个稳定的,性能还可以的,并且功耗小的设备。
    Q:为什么不使用ikuai虚拟机部署?
    A:我只想我的主路由保持稳定,而不是all in boom
    Q:为什么不在飞牛里部署?
    A:需求不一样,飞牛跑的都是业务类的服务,而像dns解析,旁路由我想给他单独出来