Docker安装OpenWRT做旁路由

Share
  • 2022年7月29日

1、docker拉取OpenWRT镜像

docker pull unifreq/openwrt-aarch64 

等待下载完成,也可以拉取其他大佬的镜像

2、开启网卡混杂模式

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

最后确定即可生效

和电脑上类似,先记下原来的IP地址, 然后开启静态IP, 将网关改为192.168.0.254

选择静态,然后和电脑配置一样。设置网关为192.168.0.254