N1 通过 Docker 安装 Openwrt 为旁路由
说明
我的网络情况:
- 主路由 IP 是
192.168.4.1
; - N1 Armbian IP 是
192.168.4.2
; - Openwrt IP 是
192.168.4.11
.
1. 开启网卡混杂模式
1
2
## 启用
ip link set eth0 promisc on
2. docker 创建 macvlan 网络
1
docker network create -d macvlan --subnet=192.168.4.0/24 --gateway=192.168.4.1 -o parent=eth0 macnet
3. 启动 openwrt 镜像
1
2
3
4
5
6
7
8
9
# for N1
docker run \
-d \
--name=unifreq-openwrt-aarch64 \
--restart=unless-stopped \
--network=macnet \
--privileged \
--ip=192.168.4.11 \
unifreq/openwrt-aarch64:r21.11.11
4. 修改容器 IP 信息并重启容器
1
2
3
# 见 Docker 镜像说明: https://hub.docker.com/r/unifreq/openwrt-aarch64
docker exec unifreq-openwrt-aarch64 sed -e "s/192.168.1.1/192.168.4.11/" -i /etc/config/network
docker restart unifreq-openwrt-aarch64
注意此处命令192.168.1.1是openwrt默认ip, 192.168.4.11是把其替换为要指定的openwrt IP.
5. http://192.168.4.11 访问 openwrt
默认账号密码: root/password
6. 关闭 DHCP
路径: 网络 => 接口 => LAN => DHCP 服务器 => 基本设置 操作: 勾选忽略此接口
7. 关闭 IPv6
路径: 网络 => 接口 => LAN => DHCP 服务器 => IPv6 设置 操作: 禁用 路由通告服务
, DHCPv6 服务
, NDP 代理
8. 配置 网关 和 DNS
路径: 网络 => 接口 => LAN => 一般设置 => 基本设置 操作: 1. IPv4 网关
改为 192.168.4.1
; 2. IPv4 广播
改为 192.168.1.255
; 3. 使用自定义的 DNS 服务器
改为 114.114.114.114
9. 主路由系统是 Padavan
需要的配置
将 IPv4 硬件加速
改为 Offload TCP/UDP for LAN
.
10. 宿主机与Openwrt互通, 宿主机访问外网
目前宿主机无法访问 Openwrt 以及外网, 需要的配置: 在 /etc/rc.local 中增加初始化逻辑:
1
2
3
4
5
ip link set eth0 promisc on
ip link add mynet link eth0 type macvlan mode bridge
ip addr add 192.168.4.2 dev mynet
ip link set mynet up
ip route add 192.168.4.11 dev mynet
11. 配置主路由
目前主路由下的设备可以在网络设置中将路由器的地址改为192.168.4.11
即可实现通过旁路由上网. 为了避免各个设备分别配置, 达到全局使用旁路由的目的, 可以配置主路由: 将 DHCP 默认网关 和 DNS 都改为 192.168.4.11
12. 关于旁路由设置后,主路由WIFI无法上网的问题
进入网络——防火墙——自定义规则,添加
1
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
本文由作者按照
CC BY 4.0
进行授权