This website requires JavaScript.

树莓派Docker部署使用Openwrt

环境

  • 硬件:树莓派 4B 4G 内存
  • 系统:RaspbianOS 32 位系统

Snipaste_2021-05-15_15-57-21

安装 Docker

docker 官方提供了一键安装的脚本,直接执行命令即可安装

sudo curl -sSL https://get.docker.com | sh

配置 docker 可视化图形工具 Portainer(可选)

官方站点:https://www.portainer.io/

docker volume create portainer_data

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

默认映射端口为 9000,容器启动后访问树莓派 ip+port,如 http://192.168.50.10:9000 。根据步骤配置好即可看到管理 Docker 的图形界面

Snipaste_2021-05-15_16-49-26

安装 Openwrt

打开网卡混杂模式

sudo ip link set eth0 promisc on 

创建网络

docker network create -d macvlan --subnet=192.168.50.0/24 --gateway=192.168.50.1 -o parent=eth0 macnet

注意这里要修改--subnet=192.168.50.0/24 --gateway=192.168.50.1为你内网对应的网段。如树莓派 ip 为 192.168.1.1,那么就改为--subnet=192.168.1.0/24 --gateway=192.168.1.1

拉取镜像

Openwrt 在 docker hub 中是有官方镜像的,但是树莓派是 arm 架构,且我这里使用的是 32 位系统,官网镜像不支持。好在有 SuLingGG/OpenWrt-Rpi-Docker 项目重新编译了 arm 架构的 Openwrt 镜像。

docker pull sulinggg/openwrt:latest

OpenWrt-Rpi-Docker 项目提供了 4 中标签的镜像,分别是 rpi1、rpi2、rpi3、rpi4,这里拉取使用 latest 实际上和 rpi2 为同一镜像。

虽然我是 4B,但是项目里的 rpi4 标签只 64 位系统,如果你的 4B 刷的是 64 位系统则用 rpi4 标签,否则使用 rpi2 即可。

创建并启动容器

docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:latest /sbin/init

进入容器修改配置

docker exec -it openwrt bash
vim /etc/config/network

修改 LAN 口的配置

config interface 'lan'
        option type 'bridge' // 这行要去掉
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.50.11' // 要修改,设置为 openwrt ip
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.50.1' // 要修改
        option broadcast '192.168.50.255' // 要修改
        option dns '192.168.50.1' // 要修改

配置中要修改的部分的网段都要修改为实际网络的网段

option ipaddr配置的就是 openwrt 的 ip,最后一位随意配置,只要不和已分配 ip 冲突即可

option type 'bridge'这行配置要去掉,官方给的参考教学没有这一项,但是这个配置会把 openwrt 设置为桥接模式,会让一些‘特殊功能’无法生效,所以要去掉。

重启网络生效配置

/etc/init.d/network restart

配置 Openwrt 为旁路由

上面步骤成功在树莓派上通过 Docker 部署 Openwrt,现在来配置使其成为旁路由

进入 Openwrt 管理页面

访问地址http://192.168.50.11(刚才配置的ipaddr地址),默认的用户名是root,密码是password

Snipaste_2021-05-15_21-32-50

关闭 DHCP 服务

在 “网络 - 接口 - Lan - 修改” 界面中,勾选下方的 “忽略此接口(不在此接口提供 DHCP 服务)”,并“保存&应用”。

Snipaste_2021-05-15_21-34-40

配置 DHCP 到 Openwrt

接下来要设置路由的 DHCP。有两种方式,一种是配置主路由 DHCP,这种可以让所有在主路由网关下的设备都走 Openwrt 网关。还有一种是自己手动配置想要走网关的设备。

windows

配置对应的网络设置,其中默认网关和 DNS 地址设置为 Openwrt 的 ip

Snipaste_2021-05-16_23-23-38

IOS

在网络里手动设置 IPV4 地址和 DNS 服务器,同样的把“路由器”和 DNS 地址设成 Openwrt 的 IP

Snipaste_2021-05-16_23-25-34

参考

0条评论
avatar