本文将详细介绍如何在 Docker
中部署 OpenWrt
并配置宿主机网络转发,使用 172.16.0.0/16
的内网环境。
docker 容器默认使用
172.17.0.0/16
以及之后的网段, 注意可能冲突
架构概述
在 Docker
容器中运行 OpenWrt
作为透明网关,使宿主机和局域网设备可以通过 OpenWrt
容器转发流量。架构特点包括:
- 使用
Docker
运行完整的OpenWrt
系统 Docker macvlan
网络:容器直接接入物理网络- 双 IP 设计:宿主机同时拥有主 IP 和 macvlan IP
OpenClash
使用 Fake-IP & TUN 模式
网络拓扑
[路由器]
│
└─ LAN 口 (172.16.0.0/16)
│
├─[宿主机 Debian]
│ ├─ enp1s0 172.16.1.202 (主 IP)
│ ├─ local-macvlan 172.16.0.248 (虚拟网卡, 桥接 enp1s0)
│ └─ Docker 服务
│ └────┐
├─[Debian > Docker > OpenWrt]
│ └─ eth0 172.16.0.254
│
└─[其他设备]
└─ 172.16.x.x
准备工作
系统要求
Linux
宿主机(本文以Debian
为例)Docker
和Docker Compose
已安装- 物理网卡
enp1s0
(根据实际情况调整) Debian
网络使用networking
配置systemctl status networking