树莓派使用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.此镜像无法开启树莓派WIFI2.此镜像适用于树莓派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服务忽略此接口
,点击保存应用
主路由设置
自动连接旁路由
设置DHCP服务器的网关
和DNS
为openwrt-IP地址
,这样连接网络的设备可以自动全部走旁路由
手动连接旁路由
有些路由器固件不支持设置DHCP服务器的网关和DNS地址或者只希望部分设备走旁路由(like me)
那我们不用设置主路由,只修改设备连接主路由的网关
和DNS
为openwrt-IP地址
旁路由功能设置
最主要的功能当然是魔法,请自行设置
其他的功能请自行设置
参考教程
N1旁路由/lede旁路由+Padavan主路由设置方法分享
N1刷入LEAN OPENWRT做旁路网关,导致访问国内网站卡顿
版权属于:mancornuto
本文链接:https://mancornuto.xyz/archives/0007.html
转载时须注明出处及本声明
站长你好,文章写的很详细,谢谢。但是我安装好后里面的广告插件AdGuard Home没法使用,不知要怎么样设置呢