前提条件:需要一个一键安装好docker环境的家庭设备(小主机,N1之类的ARM设备都可以---接上家里的路由设备)
以下都是在ssh登录后执行
docker拉取OpenWRT镜像
docker pull unifreq/openwrt-aarch64
等待下载完成。。。ps:也可以拉取其他大佬的镜像
开启网卡混杂模式
ip link set eth0 promisc on
重启 N1 就会失效。
网卡永久设置混杂模式
修改 /etc/rc.local 加入如下代码(vi打开文件,i键进入编辑模式,输入后按esc退出编辑模式,按 :wq!保存退出):
vi /etc/rc.local
ip link set eth0 promisc on
改完后重启网络 /etc/init.d/network restart
或者重启系统检查网卡是否混杂模式。
查看是否设置成功,输入ifconfig命令,如下图红色框所示:网卡名eth0按自己实际的来看
创建 Docker 虚拟网络
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=eth0 macnet
ps:eth0 为自己实际的网卡名,一般是eth0,看自己ssh连接的ip网卡名就行
注意:macnet 为名称,macvlan 为模式,另外请将 192.168.0 修改为你自己主路由网段。
运行OpenWRT容器
docker run --restart always -d --name=OpenWRT --network macnet --privileged unifreq/openwrt-aarch64 /sbin/init
注意:OpenWrt 包名与前述导入/pull下来的保持一致,后面 /sbin/init 可以省略。macnet 虚拟网络名字与前面创建的一致。
配置 OpenWRT 容器网络
docker exec -it OpenWRT bash
OpenWRT 是前面 --name 指定的容器名字,没有指定的话以通过运行 docker container ls
显示出的 NAMES 字段获得。
这样我们就进到OpenWRT的系统里了。
vi /etc/config/network
将 option ipaddr 192.168.X.1 替换旁路由 OpenWRT IP 地址(如 192.168.0.254),注意需与主路由同网段。如果确定只做旁路有还可以顺带把 DHCP 和桥接关掉,然后 ESC,:wq! 保存退出。
参考配置:
config interface 'lan' option ifname 'eth0' option proto 'static' option netmask '255.255.255.0' option gateway '192.168.0.1' option ip6assign '60' option dns ' 8.8.8.8 114.114.114.114' option ipaddr '192.168.0.254' option broadcast '192.168.0.255'
reboot
或者
/etc/init.d/network restart
重启 OpenWRT/网络,就可以 192.168.0.254 登录 Docker 里的 OpenWRT的路由了。用户名 密码(root password)
禁用dhcp功能
配置魔法
如图所示,就不细说了,懂都懂。^ - ^
配置全局设置(所有设备都能直接代理)
此方案优点是可以让一些不能配置网关的设备通过N1代理, 例如Xbox等, 就只能用这种方法.缺点是需要更改主路由设定, 如果多人共用主路由不建议这样设置除非所有人都有代理需求.
方法如下:
打开主路由的设置界面, 进入DHCP
设置, 将网关
设置为N1的IP也就是192.168.0.254
, 保存后再去电脑上查询IP设定时会发现网关已经是N1的IP了. 若未发生变化建议断开网络后重新连接以刷新网关设定
这个地方提醒一下各位小白不要设置成WAN接口的网关了,否则可能上不了网了, 比如我这个路由器就会给我提示设置错误.
其他品牌的路由器设置应该大同小异.
非全局设置(手动配置过的设备能代理)
非全局方案好处是可以想让哪台设备上网就让哪台设备上网, 并且不会打扰到别人的网络体验.
缺点是某些无法自定义网关的设备例如Xbox无法通过N1代理.
- 电脑
首先连接到主路由的网络, 打开Control PanelNetwork and InternetNetwork Connections
, 如图进行操作
记住下面这张图里的IPv4 Address
这里IP Address
里面填刚刚记下的IPv4 Address
最后确定
即可生效
- 手机
这里我以我自己的vivo手机为例, 其他手机包括iPhone设置大同小异
点击进入WiFi详情页进行设置
和电脑上类似,先记下原来的IP地址
, 然后开启静态IP
, 将网关
改为192.168.0.254
选择静态,然后和电脑配置一样。设置网关为192.168.0.254
感谢分享,已经成功使用上旁路由了