家里用的普通wifi6路由器,虽然速度都不错,但是有时候需要开发使用一些代码去github上,vecel上部署一些应用等,不方便,闲了也想刷刷抖音看看黄头发小姐姐,于是就萌生了使用手里的bnanapi bpi M1开发板部署一个单臂旁路由,然后用一些特别的方法配置一下,这样家里的手机、电脑,只要是网关和dns指向这个旁路由就可以无节操上网了。家里其他家人正常上网,自己偷偷把手机网关和dns改成旁路由,就可以无节操上网刷github了。。
至于为什么用单臂旁路由,是因为成本比较低,相信站上的兄弟每人都有几个开发板,随便开发板、电视盒子不管什么能用的只有一个lan口的,能刷armbian、debian等等linux系统的都可以用,不挑。顺便还能装个Home-assistant、网盘,部署个web服务啥的,都可以弄在一起很方便。
之前因为安装home-assistant,在M1开发板上安装了docker和linux面板(用的1panel,简单干净)。
1. 给自己的开发板刷入armbian或debian,apt update,装docker,具体步骤就不介绍了,可以见我另外文章
bananapi bpi M1 香蕉派刷home-assistant 实践-CSDN博客
当然,apt update以后可以直接安装1panel 这个linux面板,自动安装面板和docker,非常不错也不消耗太多资源
官网有一键安装脚本很方便,自动化,apt update完了以后直接按脚本一键安装等待完成,docker就装好了,完成后会给一个后台地址端口,这样可以进入1panel后台可视化安装,里面有很多应用可以使用,部署web服务器,当网络存储等上百种应用。简直不要太香。
2. 开启网卡混杂模式
ssh登录linux用下面命令开启
ip link set end0 promisc on
开启前先看看你的网卡名字是什么,把eth0替换成你自己的网卡名字。可以先用ifconfig看一下ipv4前面的网卡名字,比如我的就叫做end0。如果你没有ifconfig工具,可以安装一个,命令:apt-get install net-tools 这部很重要,网卡名字很重要
记住这个网卡名字是系统的网卡,到docker里就不是这个了,docker里面的都是eth0,这也是当时我费解的地方,导致很多时候配置错误。 Docker和系统之间的是end0(或者其他自己的名字),docker里的是eth0。
3. 配置Docker网络接口名字macnet,类型macvlan
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=end0 macnet
这个应该是给docker上的openwrt建立一个和系统接口通信的网络接口,这个后面的参数parent=end0,这个里的end0一定要改成你前面ifconfig查到的armbian网络接口名字,每个主机可能不一样。这个搞错了可能openwrt就无法和系统进行网络通信了。
4. 创建网络配置文件,用下面命令
mkdir -p /home/docker/openwrtvim /home/docker/openwrt/network
用vi编辑器修改network的内容,armbian默认没有,用apt-get install vim安装即可。安装完了就可以执行上面的命令。
network文件内容代码如下:
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 packet_steering '1'config interface 'lan' option type 'bridge' option ifname 'eth0' option proto 'static' option netmask '255.255.255.0' option ip6assign '60' option ipaddr '192.168.1.3' option gateway '192.168.1.1' option dns '192.168.1.1'config interface 'vpn0' option ifname 'tun0' option proto 'none'
这个代码除了ip地址,其他不用修改直接copy粘贴到network文件里就行。
option ipaddr改成你想要的openwrt的ip后台地址
option gateway 和dns 改成你的网关地址,这样配置好了你直接就可以访问。这里最好配置成静态地址,因为后期你要把手机和电脑的网关、dns都指向这个地址,不能来回变来变去。
配置完成进行下一步
5 拉取openwrt镜像并初始化
docker run --restart always --name openwrt -d --network macnet --privileged --ip 192.168.1.3 -v /home/docker/openwrt/network:/etc/config/network sulinggg/openwrt:armv7 /sbin/init
这里因为我的处理器是armv7的,所以我用了sulinggg/openwrt:armv7的镜像,他的openwrt版本非常棒,继承了大部分常用插件,ui也很不错。你可以根据你的平台找到自己的镜像名字。
安装完成后,你就可以直接访问openwrt后台了,默认用户名root,密码password。
6 最后,进行一些基本的设置openwrt
进入:网络-接口-lan-修改
ip,网关,dns等确认一下,按你的实际情况配置,
拉到下面,把ipv6接口忽略。应用保存即可。
进入网络-防火墙
把常规的3个项都改成接受,把区域规则lan的3个都改成接受,应用保存即可。
在网络-防火墙-自定义规则里加上这一句,应用保存。
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
这个就用eth0,接口名称不用改,因为是docker里面的接口名字,这个openwrt内部用的接口名字就和内部lan接口名字一样就行,都是eth0。
至此,单臂旁路有就配置好了。你可以把手机、电脑的网关和dns都设置成openwrt的ip地址(注意不是开发板的地址),试一下能正常访问网络就没问题了。
接下来就是怎么访问github的问题了,我用了一个只花了1块钱(其实也可以免费,但是麻烦),就可以全年稳定的不限量的访问github,速度还不错,看抖音视频也很流畅。这次我就不写了,如果有兴趣,给我点个赞,收个藏,最好能赞助个几毛几分的都行,码字不容易,反馈好的话,我下次单出一个教程,名字就叫1快钱在openwrt里配置单臂旁路有无节操全年稳定访问github的方法。欢迎围观。
最后放两张图,为下期文章做一下铺垫