树莓派部署旁路由实现全局科学上网
简单介绍
旁路由架构是:主路由依旧负责拨号和DHCP,而树莓派作为旁路由接入同一网段,通过静态IP和自定义路由规则,让家里的设备可以选择是否把流量交由树莓派处理。这种模式不会破坏原有网络结构,也能随时拔掉。
目的
在Docker中运行OpenWrt旁路网关(透明网关)
- 结构图如下
![]()
开启网卡的混杂模式
- 是为了让我们的虚拟机和宿主机能同时接收数据包
- 以下二选一选择执行
- 插线形式,请执行:
1
sudo ip link set dev eth0 promisc on
- WIFI形式,请执行:
1
sudo ip link set dev wlan0 promisc on
![]()
下载OpenWrt镜像
- 在终端界面执行以下命令,下载镜像文件
1
docker pull buddyfly/openwrt-aarch64
![]()
![]()
![]()
- 下载完后,可选择查看镜像是否在docker镜像里,执行以下命令
1
docker images
![]()
检查是否存在Docker虚拟网络(macnet)
- 第一次执行之前,一般情况是没有的,不过我们还是要执行看看先
- 查看所有网络列表
1
docker network ls
- 如果出现重名,可执行下面命令用来删除已存在的同名网络
1
docker network rm `填写NAME`
![]()
创建Docker虚拟网络
- 虚拟网络名称为
macnet,驱动为macvlan模式,将subnet 10.10.10.0修改为你自己主路由的网段,gateway 10.10.10.1修改为你自己的主路由网关。![]()
- 图中的示范命令如下
1
docker network create -d macvlan --subnet=10.10.10.0/24 --gateway=10.10.10.1 -o parent=eth0 macnet
- 以下二选一选择执行(以我自己的为例)
- 插线形式,请执行:
1
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eth0 macnet
- WIFI形式,请执行:
1
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=wlan0 macnet
![]()
如果不清楚自己的主路由器网关地址和网段,那就请看下面这一章节。
如何查看主路由器的网关地址和网段(Windows)
- 通过路由器管理界面(通用方法)
![]()
![]()
- 通过命令行形式查看
- 按win键 + R键
- 输入
cmd - 在命令行输入
ipconfig![]()
![]()
验证【Docker虚拟网络】是否创建成功
- 输入命令
docker network ls![]()
启动OpenWrt容器
- 执行下面命令
1
docker run --restart always -d --network macnet --privileged buddyfly/openwrt-aarch64:latest
![]()
![]()
查看运行中的OpenWrt容器
- 执行下面命令
1
docker ps -a | grep openwrt
![]()
![]()
修改OpenWrt容器的IP地址
- 进入容器内部
1
docker exec -it a94607d8119f ash
![]()
![]()
![]()
- 编辑网卡文本
1
sudo nano /etc/config/network
- 修改文件如下,将
option ipaddr '192.168.0.252'改为你想作为旁路由网关的空闲地址(我的网段为192.168.0.X),主路由IPV4地址改为你自己的即可。1
2
3option ipaddr '192.168.0.252' # 252这是我自定义的
option gateway '192.168.0.1' # 这是我的主路由IPV4地址
option dns '192.168.0.1' # 保持和gateway一致![]()
- 重启容器网卡
1
/etc/init.d/network restart
![]()
校验【修改OpenWrt容器的IP地址】修改是否成功
- 现在我们可以call下外部的主路由IP,试试连通性。
1
ping 192.168.0.1 # 换成你自己的
![]()
显示和我的截图一样,收到数据包就可以了。
永久开启网卡混杂模式
- 先退出docker容器,然后再去宿主机里进行下面操作
- 先执行
sudo nano /etc/network/interfaces - 添加内容
1
2up ip link set eth0 promisc on # 插线形式用这个
up ip link set wlan0 promisc on # WIFI形式用这个![]()
- 添加内容后,按 ESC 并输入 :wq 正常保存
- 用cat命令查看是否已写入
cat /etc/network/interfaces![]()
- 如果文件权限有问题,那执行下面操作
1
2ls -l /etc/network/interfaces
sudo chmod 644 /etc/network/interfaces![]()
登录树莓派旁路由网关系统(旁路网关配置)
- 网址输入
1
http://192.168.0.252 # 改为你自己设置的
- 初始用户名 root 密码 password
![]()
- 先做最重要的事情:改密码。
![]()
更改系统主题

更改上级路由





网络加速设置



科学上网






配置旁路网关
- 把局域网内需要连接的设备的WiFi改为手动配置
- 然后IP地址改为192.168.0.XXX改为你愿意的地址
- 子网掩码改为255.255.255.0
- 路由器(网关)改为192.168.0.254,这个其实是OpenWrt的IPv4地址
- DNS服务器改为192.168.0.254,同OpenWrt的IPv4地址
![]()
验证网关是否生效(树莓派验证)
ip route showping 8.8.8.8curl -Iv https://www.youtube.com --connect-timeout 10curl -Iv https://www.google.com --connect-timeout 10




































































