在 Docker 中使用 openwrt 作为旁路由方便快捷,使家中电脑、手机、平板等设备无需其他软件,快捷的连入互联网
开启网卡混杂模式
# enp4s0 换成你的网卡名,通过 ifconfig 查看
sudo ip link set enp4s0 promisc on创建 docker 的虚拟网络
# ifconfig 查看你的网卡 IP 地址、网段等信息
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=enp4s0 macnet
# 查看 macnet 是否建立成功
docker network ls开启 openwrt 镜像
docker run -d \
--name openwrt \
--network macnet \
--privileged \
--restart always \
sulinggg/openwrt:x86_64 /sbin/init修改容器内的网络设置
docker exec -it openwrt bash
vim /etc/config/networkconfig interface 'lan'
option type 'bridge'
option ifname 'enp4s0'
option proto 'static'
option ipaddr '192.168.0.100'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.0.1'
option broadcast '192.168.0.255'
option dns '192.168.0.1'重启网络
/etc/init.d/network restart重置 root 密码,openwrt 的控制面板登录密码
# 默认为 password
passwd root控制面板
浏览器输入 http://192.168.123.100 进入控制面板
用户名:root
密码:password(默认)
关闭 DHCP 服务
在 网络 - 接口 - Lan - 修改 界面中关闭 openwrt DHCP 服务,勾选下方的 忽略此接口(不在此接口提供 DHCP 服务),并 保存&应用
主路由 DHCP 设置
-
将主路由的默认网关设置为
192.168.0.100(openwrt IP 地址) DHCP 服务自动连接到 openwrt 旁路由 -
通过 DHCP 接入网络的设备(未手动设置过网络)就会自动连接上 openwrt 旁路由
-
或者手动将设备的网关地址改为
192.168.0.100
问题
-
无法上网,找到
网络 - 接口 - Lan页面中的物理设置取消勾选下方的桥接接口,已关闭桥接模式,并保存&应用。 -
PassWall等 xx 软件输入节点之后网络连接问题,找到网络 - 防火墙 - 自定义规则页面中,注释掉下面两行#iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53 #iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53