通过docker安装Openwrt作为软路由,可以实现去广告等功能,同时可以节省一个设备,实现旁路网关。
前提:准备一个xxx-rootfs.tar.gz 格式的OPENWRT固件文件
1. 打开网卡的混杂模式
ip link set eth0 promisc on
2. 创建网络
子网 10.0.0.0/24
根据实际情况修改 网关 10.0.0.1
根据实际情况修改
docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.1 -o parent=eth0 openwrt
3. 将固件上传至 N1,导入固件
docker import openwrt-*-rootfs.tar.gz openwrt
4. 启动Openwrt
docker run --restart always --name openwrt -d --network network --privileged openwrt:latest /sbin/init
5. 进入容器
docker exec -it openwrt sh
6. 修改ip
假设固件默认后台10.0.0.1, 我要修改为10.0.0.5
sed -i ‘s/10.0.0.1/10.0.0.5/’ /etc/config/network && /etc/init.d/network restart
7. Armbian和OpenWrt网络互通
按照上面设置完旁路由发现Docker的宿主机Armbian系统和OpenWrt无法互相访问。需要修改Armbian网络配置/etc/network/interfaces
,增加如下内容:
up ip link set eth0 promisc on
auto macvlan
iface macvlan inet static
address 192.168.123.123
netmask 255.255.255.0
gateway 192.168.123.1
dns-nameservers 192.168.123.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
其中address
是要固定的Armbian的地址,gateway
和dns-nameservers
填主路由地址就可以了。 保存后执行systemctl restart networking
使配置生效,两个地址就可以互相访问了。
评论区