前言:
很多小伙伴在飞牛应用中心一键安装了 QWRT,却发现 NAS 与QWRT 容器网络不能互通。什么?为什么要互通?主要是想用openclaw来管理qwrt。本文记录了从“踩坑”到“彻底解决”的全过程,希望能帮大家省去数小时的折腾。
实现效果如下:

一、初始环境(飞牛默认安装)
在飞牛应用中心安装 QWRT 后,系统会自动创建:
- 容器 IP:
192.168.5.100
- 网络模式:
macvlan
- Docker 网络名:
qwrt_macvlan
- NAS 物理网卡:
enp3s0
现象:
- ✅ 手机 / PC 能 ping 通 QWRT
- ✅ NAS 能访问外网
- ❌ NAS 无法 ping 通 QWRT
- ❌ QWRT 也无法 ping 通 NAS
二、第一阶段:以为是路由 / 防火墙问题(踩坑开始)
最初怀疑:
- 主路由(中兴 E8820V3)拦截
- NAS 防火墙(iptables)策略
- Docker 网络异常
尝试过的操作:
- 检查主路由设置(AP 隔离、端口隔离)
- 在 NAS 上关闭防火墙
- 在 QWRT 容器中放行 ICMP
👉 结果:全部无效
三、第二阶段:macvlan 的“发夹弯”真相
经过深入排查,发现问题本质:
❌ Linux 内核默认禁止 macvlan 子接口与父接口直接通信
也就是说:
- NAS(父接口)
- QWRT(macvlan 子接口)
天然无法直连
这不是飞牛的问题,也不是 Docker 的 Bug,而是 Linux 的设计限制。
四、第三阶段:尝试 ipvlan(以为找到了银弹)
听说 ipvlan 能解决 macvlan 的所有问题,于是:
- 删除原有网络
- 创建 ipvlan 网络
- 重建 QWRT 容器
结果:
- QWRT 能 ping 通主路由
- ❌ 依然 ping 不通 NAS
原因:
- 飞牛 fnOS 对 ipvlan 的支持并不完整
- Docker 网络有时处于“半通”状态
五、第四阶段:最终稳定方案(工程级正确)
✅ 核心思路
接受“macvlan 容器 ↔ 宿主机不能直接通信”的事实
通过主路由中转,实现逻辑互通
✅ 最终实现方案
1️⃣ NAS → QWRT(通过 macvlan)
在 NAS 上创建虚拟网卡:
sudo ip link add macvlan0 link enp3s0 type macvlan mode bridge
sudo ip addr add 192.168.5.200/24 dev macvlan0
sudo ip link set macvlan0 up
sudo ip route add 192.168.5.100 dev macvlan0
✅ NAS 可 ping 通 QWRT
2️⃣ QWRT → NAS(通过主路由中转)
在 QWRT 容器中:
ip route add 192.168.5.11 via 192.168.5.1
✅ QWRT 可 ping 通 NAS
六、最终网络拓扑(逻辑)
主路由 192.168.5.1
|
**───────**───────**
| |
NAS 192.168.5.11 QWRT 192.168.5.100
| |
macvlan0 macvlan
|
enp3s0
✅ 不走内核 hack
✅ 不依赖 ipvlan
✅ 可重启
✅ 可维护
七、总结(给准备折腾的朋友)
- ❌ 不要指望 macvlan 容器和 NAS 直连
- ❌ ipvlan 在飞牛上未必靠谱
- ✅ 主路由中转 = 唯一工程级正确解
如果你也是飞牛 + QWRT 用户,这篇帖子可以让你少走 80% 的弯路。
祝大家网络畅通,少踩坑 👍