飞牛、绿联、群晖、Armbian 部署 QWRT 旁路由教程
转载来源:悟空的日常
摘要
本文针对企业及个人级网络部署场景,详细阐述基于 Docker Compose 架构,在 Arm64/x86-64 架构群晖 NAS、Armbian-arm64 嵌入式系统中部署 QWRT 旁路由的标准化实施流程。文中涵盖前置资源准备、底层系统配置、网络模式选型、分架构配置文件编写及核心参数调优要点,为 QWRT 旁路由的标准化部署提供可落地的技术参考。
一、前置资源与环境准备
1.1 Docker 离线包获取
针对无公网或内网隔离部署场景,可从官方维护仓库获取适配多架构的 Docker 离线包,满足离线环境下的容器引擎部署需求:
Docker 离线包构建项目及下载地址:https://github.com/wukongdaily/DockerTarBuilder/releases
1.2 基础系统环境配置
执行专属配置命令,完成芝麻开门配置,命令如下:
echo 0xDEADBEEF > /etc/config/google_fu_mode
1.3 宿主机网卡信息查询
QWRT 旁路由部署依赖宿主机物理网卡的精准映射,通过以下命令查询宿主机网卡名称(如 eth0、end0、enp1s0、enp1s0-ovs 等),为后续 macvlan 网络驱动配置提供依据:
ip link show
二、部署架构与核心技术选型
本次部署采用Docker Compose作为容器编排工具,实现 QWRT 容器的标准化部署与生命周期管理;网络层选用macvlan 网络模式,使 QWRT 容器获得与宿主机同网段的独立网络接口,满足旁路由的网络转发与路由策略部署需求;容器运行层面开启特权模式(privileged: true),赋予容器对宿主机网络栈的完整操作权限,保障 QWRT 路由功能的正常运行。
所有部署场景均采用/sbin/init作为容器启动命令,初始化容器内的系统服务栈,满足 QWRT 作为轻量级路由系统的服务运行要求。
三、分架构 Docker Compose 标准化配置
3.1 Arm64 架构群晖 NAS(代表机型:DS220J)
适配 ARMv8/64 位架构群晖设备的配置文件,镜像选用官方 Arm64 专属版本,核心需替换parent(网卡名称)、subnet(宿主机网段)、gateway(网段网关)三个核心参数,配置如下:
services:
qwrt:
image: coolsnowwolf/qwrt:arm64-latest
container_name: qwrt
privileged: true
command: /sbin/init
networks:
- qwrt_macnet
networks:
qwrt_macnet:
name: qwrt_macnet
driver: macvlan
driver_opts:
parent: eth0 # 替换为宿主机实际物理网卡名称
ipam:
config:
- subnet: 192.168.66.0/24 # 替换为群晖NAS所在的局域网网段
gateway: 192.168.66.1 # 替换为局域网网关地址
3.2 x86-64 架构群晖 NAS(代表机型:DS1821+)
适配 x86_64/AMD64 架构群晖设备,仅容器镜像为 x86-64 专属版本,其余网络配置、参数替换规则与 Arm64 架构保持一致,配置如下:
services:
qwrt:
image: coolsnowwolf/qwrt:amd64-latest
container_name: qwrt
privileged: true
command: /sbin/init
networks:
- qwrt_macnet
networks:
qwrt_macnet:
name: qwrt_macnet
driver: macvlan
driver_opts:
parent: eth0 # 替换为宿主机实际物理网卡名称
ipam:
config:
- subnet: 192.168.66.0/24 # 替换为群晖NAS所在的局域网网段
gateway: 192.168.66.1 # 替换为局域网网关地址
3.3 Armbian-arm64 嵌入式系统
适配基于 Arm64 架构的 Armbian 嵌入式系统,镜像与 Arm64 架构群晖保持一致,默认网卡占位符为 enp0s1,需按实际查询结果替换,配置如下:
services:
qwrt:
image: coolsnowwolf/qwrt:arm64-latest
container_name: qwrt
privileged: true
command: /sbin/init
networks:
- qwrt_macnet
networks:
qwrt_macnet:
name: qwrt_macnet
driver: macvlan
driver_opts:
parent: enp0s1 # 替换为Armbian系统实际物理网卡名称
ipam:
config:
- subnet: 192.168.66.0/24 # 替换为Armbian设备所在的局域网网段
gateway: 192.168.66.1 # 替换为局域网网关地址
四、部署关键参数与实施规范
特权模式开启:
privileged: true为必配项,QWRT 作为路由系统需对网络接口、路由表、iptables 等核心网络组件进行操作,无特权模式将导致功能缺失;macvlan 网络参数:
parent参数必须映射至宿主机物理网卡,不可使用桥接网卡或虚拟网卡,否则会导致网络转发异常;网段与网关一致性:
subnet与gateway需严格匹配宿主机所在局域网的网络规划,掩码采用 / 24(255.255.255.0)为通用配置,可根据实际网络规划调整;容器命名规范:固定
container_name: qwrt便于后续容器的运维管理与网络策略映射;镜像版本选择:采用
latest标签获取最新稳定版镜像,生产环境可替换为具体版本号实现版本固化。
五、后续运维与操作建议
部署完成后,可通过
docker compose up -d命令启动容器,通过docker logs qwrt查看容器初始化日志,排查启动异常;旁路由部署完成后,需在局域网设备中手动配置网关为 QWRT 容器的 IP 地址,实现流量经 QWRT 转发;
如需修改 QWRT 配置,可通过
docker exec -it qwrt /bin/bash进入容器内部进行操作,保持容器与宿主机的解耦性;离线环境下部署时,需先将 QWRT 镜像导入宿主机,再执行 Docker Compose 部署命令,避免镜像拉取失败。
结语
本方案基于 Docker 容器化技术,实现了 QWRT 旁路由在群晖、Armbian 多平台、多架构的标准化部署,相比传统物理机部署,具备环境隔离、部署高效、运维便捷的优势。
在实际部署中,需严格遵循网络规划规范,精准配置核心参数,即可实现 QWRT 旁路由的快速落地,满足局域网路由策略定制、网络转发优化等业务需求。