佛系生活,缓慢更新,AFK!!

MENU

树莓派使用docker布置OpenWrt

April 4, 2020 • Read: 2250 • 树莓派

树莓派使用docker布置OpenWrt

原本布置openwrt是用来解决ASF的挂卡问题的,但是还是太菜了,ASF还是没整好,只好暂时当旁路由了

OpenWrt是嵌入式设备上运行的linux系统。 OpenWrt 的文件系统是可写的,开发者无需在每一次修改后重新编译, 令它更像一个小型的 Linux 电脑系统,也加快了开发速度。 你会发现无论是 ARM, PowerPC 或 MIPS 的处理器,都有很好的支持。 并且附带3000左右的软件包,用户可以方便的自定义功能来制作固件。 也可以方便的移植各类功能到openwrt下。openwrt比较小,因此如果树莓派直接刷入openwrt比较浪费硬件资源,所以依旧用docker来解决树莓派使用openwrt的问题

顾名思义,旁路由是独立于主路由之外的一个网关环境,我们在其他设备上搭建一个网关环境,将主路由的网关任务交给旁路由来做,之后再将处理完的任务返回主路由进行转发,在旁路由上我们可以开启各种功能来对任务进行处理,可以用来去广告,魔法等等

环境准备

树莓派系统Debian-Pi-Aarch64 2.0-MacOS_Mojave主题定制桌面(全功能版)

系统默认启用docker,KVM,其它系统请自行安装docker

OpenWrt镜像sulinggg/openwrt

你也可以使用另外的镜像,比如buddyfly/openwrt-aarch64,只要是ARM标签都可以

镜像问题

1.此镜像无法开启树莓派WIFI
2.此镜像适用于树莓派2B/3B/3B+/4B,其他设备有可能不能使用
3.镜像内功能众多,有些存在冲突问题,如介意请选用另一个推荐镜像,常用功能也非常全面
4.容器进行停止或删除操作时,树莓派可能会发生卡顿现象,SSH 可能会断开,1~2 分钟后会恢复正常

安装过程

登录树莓派SSH端

打开树莓派网卡混杂模式

sudo ip link set eth0 promisc on

创建桥接网络

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet

其中-d macvlan是创建macvlan网络,使用macvlan网络驱动,--subnet是宿主机所在网段,--gateway是指定此网段的网关,-o parent是指继承网段的网卡,其中的IP网段需要根据自己树莓派的网段进行修改,可使用sudo ifconfig命令查看eth0的ip网段,可用docker network ls命令查看docker网络情况

拉取镜像启动容器

docker pull sulinggg/openwrt #拉取镜像
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt /sbin/init #启动容器,自动重启,命名容器名,后台运行,加入macnet网络,容器内命令执行权限,定义容器启动后执行的命令

容器内参数修改

docker exec -it openwrt bash #进入容器bash界面

修改openwrt的网络配置文件

sudo nano /etc/config/network

修改lan的信息

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdd3:60d7:a044::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.1.100' #openwrt的IP地址,可自定义网段内任意IP,不发生冲突即可
        option netmask '255.255.255.0'
        option gateway '192.168.1.1' #填写主路由的IP地址
        option dns '192.168.1.1' #填写主路由的IP地址

config interface 'vpn0'
        option ifname 'tun0'
        option proto 'none'

设置好后ctrl+o保存ctrl+x退出

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

宿主机网络修复

旁路由运行之后,宿主机可能无法访问网络,需要修复

cp /etc/network/interfaces /etc/network/interfaces.bak # 备份文件
vim/nano /etc/network/interfaces # 使用 vim 编辑文件

向文件末尾添加

auto eth0
iface eth0 inet manual

auto macvlan
iface macvlan inet static
  address 192.168.1.3
  netmask 255.255.255.0
  gateway 192.168.1.1
  dns-nameservers 192.168.1.1
  pre-up ip link add macvlan link eth0 type macvlan mode bridge
  post-down ip link del macvlan link eth0 type macvlan mode bridge

保存重启树莓派,树莓派ip会固定为address

网页管理OpenWrt

在网页输入openwrt的IP地址进入luci控制面板,账密:root-password

主界面

选择网络-接口-lan-修改,修改为以下内容,IP地址-网关-DNS替换为自己的地址,DHCP服务忽略此接口,点击保存应用

lan口设置

主路由设置

自动连接旁路由

设置DHCP服务器的网关DNSopenwrt-IP地址,这样连接网络的设备可以自动全部走旁路由

主路由DHCP设置

手动连接旁路由

有些路由器固件不支持设置DHCP服务器的网关和DNS地址或者只希望部分设备走旁路由(like me

那我们不用设置主路由,只修改设备连接主路由的网关DNSopenwrt-IP地址

手机无线设置

旁路由功能设置

最主要的功能当然是魔法,请自行设置

passwall设置,GFW模式无法使用

其他的功能请自行设置

参考教程

在Docker 中运行 OpenWrt 旁路网关

N1旁路由/lede旁路由+Padavan主路由设置方法分享

N1刷入LEAN OPENWRT做旁路网关,导致访问国内网站卡顿

Last Modified: November 13, 2020
Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment

已有 1 条评论
  1. 易记 易记     Windows 10 /    Google Chrome

    站长你好,文章写的很详细,谢谢。但是我安装好后里面的广告插件AdGuard Home没法使用,不知要怎么样设置呢