9.3 KiB
Executable File
OpenWrt单网口旁路由 + 群晖qBittorrent 综合配置手册
OpenWrt 单网口旁路由 + 群晖 qBittorrent 综合配置手册
复制下面全部内容,粘贴到记事本,文件另存为:
OpenWrt_群晖QB配置手册.md,编码选择 UTF-8
# OpenWrt单网口旁路由 + 群晖qBittorrent 综合配置手册
## 模块一 OpenWrt单网口旁路由(关闭DHCP+彻底关闭DNS劫持)
### 一、适用场景
- 设备:单网口软路由、无独立WAN口、单口复用
- 模式:纯旁路由模式,**主路由负责拨号、PPPoE、DHCP分配IP**
- 需求:关闭OpenWrt DHCP、关闭DNS 53端口劫持,不篡改终端DNS请求
- 核心原则:**全程不新建、不配置WAN接口**,防止单网口断后台
### 二、前置风险提示
1. OpenWrt关闭DHCP后,内网设备无法自动获取IP,IP分配全部交给上层主路由DHCP。
2. 单网口设备不要随意修改接口、新建WAN,极易丢失后台访问。
3. DNS劫持来源两类:防火墙53端口DNAT规则 / AdGuardHome/SmartDNS等插件强制拦截DNS。
### 三、核心配置步骤(LuCI图形界面 + SSH)
#### 步骤1 LAN接口基础配置(旁路由核心)
网络 → 接口 → LAN → 编辑
1. 常规设置
- IPv4地址:同网段静态IP(例:主路由`192.168.1.1`,旁路由`192.168.1.2`,避免IP冲突)
- 子网掩码:`255.255.255.0`
- IPv4网关:填写**主路由IP**
- DNS服务器:填写**主路由IP**
2. DHCP服务器选项卡:勾选【忽略此接口】,关闭LAN口DHCP分发
3. 物理设置:单网口建议拆除多余桥接,仅绑定eth0
保存&应用。
#### 步骤2 SSH命令永久关闭DHCP
```bash
uci set dhcp.lan.ignore="1"
uci commit dhcp
/etc/init.d/dnsmasq restart
校验命令:
uci show dhcp.lan
输出含 dhcp.lan.ignore='1' 代表 DHCP 关闭成功。
步骤 3 清除 DNS 劫持
-
图形界面:网络 → 防火墙 → 端口转发,删除所有目标端口 53 的 DNAT 规则,保存应用。
-
SSH 查看 53 端口劫持规则:
iptables -t nat -L PREROUTING --line-numbers | grep dpt:53
删除规则(行号替换为你查到的数字)
iptables -t nat -D PREROUTING 1
重复执行直到无输出。 3. 插件设置(AdGuardHome / SmartDNS):关闭「拦截 53 端口、强制劫持 DNS」。
步骤 4 防火墙必要设置
网络 → 防火墙
-
LAN 区域转发:接受
-
开启 IP 动态伪装(MASQ),否则流量无法转发
-
不新增 WAN 区域
四、DNS 劫持有效性测试
Windows CMD 执行(设备网关设旁路由 IP,DNS 手动填 [223.5.5.5](223.5.5.5))
nslookup baidu.com 223.5.5.5
✅正常:服务器 =223.5.5.5
❌劫持:服务器显示旁路由内网 IP
OpenWrt 内 SSH 测试:
nslookup baidu.com 223.5.5.5
五、核对清单
-
LAN DHCP 已忽略关闭
-
防火墙无 53 端口 DNAT 劫持规则
-
DNS 插件劫持关闭
-
LAN 防火墙 MASQ 开启
-
没有新建 WAN 接口
模块二 群晖 NAS qBittorrent 配置(Docker 部署)
环境:群晖 DSM,Docker 安装 qBittorrent,配合旁路由做流量出口,配套目录权限、文件整理、防踩坑设置
一、前置准备
-
群晖存储空间:新建共享文件夹,示例命名
qb-download- 子目录建议:
incomplete(临时未完成)、complete(完成文件)
- 子目录建议:
-
权限:给 Docker 的 qb 容器读写权限,不要用 root 直接跑,设置 PUID/PGID(群晖用户 UID)
-
网络模式:推荐
bridge桥接模式;如需走旁路由,容器网关指定为 OpenWrt 旁路由 IP。
二、Docker 容器环境变量(常用模板)
PUID=1026
PGID=100
TZ=Asia/Shanghai
WEBUI_PORT=8080
端口映射:
-
8080:8080 Web 管理面板
-
50681:50681/TCP+UDP BT 监听端口(自行选用)
挂载目录:
-
/volume1/qb-download/complete→/downloads -
/volume1/qb-download/incomplete→/incomplete -
/volume1/docker/qb/config→/config
三、qBittorrent WebUI 核心参数配置
打开 WebUI → 选项
-
连接
-
监听端口固定,启用 UPnP/NAT-PMP(有公网 IP 推荐开启)
-
限制全局连接数,防止占满内网带宽
-
-
下载
-
✅ 启用:未完成文件保存到单独目录(incomplete)
-
完成后自动移动到
complete目录 -
预分配磁盘空间:按需开启(大文件推荐)
-
-
BitTorrent
- DHT、PEX、本地对等发现:按需开启(私种关闭 DHT/PEX)
-
高级
- 不要开启不必要的代理;如需走旁路由,全局网关在 Docker 层面设置,不要在 qb 内单独配置代理
四、配套:文件名清理 / 刮削脚本(Tinymediamanager)
需求:自动清理文件名特殊字符、目录监听、媒体库刮削
-
TinyMediaManager 用于媒体元数据刮削,自动匹配电影 / 剧集海报、简介
-
文件名清洗脚本:正则过滤特殊符号,清理种子下载带来的杂乱文件名,避免 Emby/Jellyfin 识别失败
-
注意:脚本运行用户 UID 必须和 qb 下载文件 UID 一致,防止权限报错。
五、权限 & 避坑重点
-
权限大坑:qb 下载文件归属 PUID 用户,群晖文件管理器看不到 / 无法删除,就是 PUID 不匹配
-
旁路由联动:
-
群晖本身网关可保留主路由;仅 Docker 容器单独指定网关走 OpenWrt 旁路由
-
注意:DNS 设置,群晖 / 容器 DNS 不要被劫持,使用公共 DNS([223.5.5.5](223.5.5.5))
-
-
端口:群晖防火墙放行 qb 监听端口;路由器端口映射(有公网 IP)
-
硬盘:开启 SSD 缓存,大流量下载注意硬盘休眠策略,避免频繁启停损坏硬盘
六、备份建议
-
qBittorrent:备份
/config整个目录(包含配置、种子列表) -
定期导出 torrent 种子文件做异地备份
附录 A:故障排查小节
1. qBittorrent 无速度 / Tracker 连接失败
-
DNS 问题:容器内 DNS 被劫持。在 Docker 容器配置内手动指定 DNS 为
223.5.5.5,不要自动获取。 -
端口不通:
-
检查群晖防火墙放行 BT 监听端口 TCP/UDP
-
公网环境:主路由端口映射,确认 UPnP 正常
-
-
私种站点:关闭 DHT、PEX;核对站点密钥、passkey,检查种子是否过期
-
网关错误:容器网关没有正确指向旁路由 IP;检查 OpenWrt 防火墙 MASQ 是否开启
2. 群晖文件权限报错(无法删除、看不到文件)
-
根源:PUID/PGID 和群晖本地用户 ID 不一致
-
解决:在容器环境变量修改 PUID,与你群晖登录用户 UID 保持一致;重建容器,不要直接修改已下载文件权限。
获取群晖 UID:SSH 登录群晖,执行
id 你的用户名
3. OpenWrt 旁路由故障
-
无法访问 OpenWrt 后台:检查电脑 IP 网段;单网口不要新建 WAN,修改 LAN IP 后需要用新 IP 访问
-
设备网关指向旁路由但无法上网:LAN 区域 IP 动态伪装 (MASQ) 未开启;检查主路由与旁路由网段一致
-
DNS 劫持复现:重启防火墙后 53 端口 DNAT 规则恢复,回到 LuCI 防火墙端口转发页面删除持久化规则;检查 AdGuardHome/SmartDNS 插件劫持开关
4. TinyMediaManager 刮削识别失败
-
文件名残留特殊符号,正则清洗脚本未执行,媒体库无法识别剧集 / 电影
-
文件权限:脚本运行用户没有读取 complete 目录权限
-
网络:TMM 的 DNS 被劫持,无法访问元数据站点,使用公共 DNS
附录 B:定期自动备份脚本(群晖任务计划程序)
用途:自动备份 qb 的 config 目录和种子,保存到群晖另一存储目录,可设置定时任务(每日凌晨执行) 使用方法:群晖控制面板 → 任务计划程序 → 新增【用户定义的脚本】,填入下面脚本,修改路径为你实际路径
#!/bin/bash
# qBittorrent配置备份脚本
BACKUP_SRC="/volume1/docker/qb/config"
BACKUP_DST="/volume1/backup/qb_backup"
TMP_NAME="qb_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
# 创建备份目录
mkdir -p ${BACKUP_DST}
# 打包备份
tar -zcf ${BACKUP_DST}/${TMP_NAME} ${BACKUP_SRC}
# 保留最近7天备份,删除旧备份
find ${BACKUP_DST} -name "qb_backup_*.tar.gz" -mtime +7 -delete
注意事项:
修改脚本内路径为你真实的存储路径
任务运行用户选择和 qb 相同 UID 的用户,避免权限报错
建议备份目录放在不同硬盘 / 存储池,防止单盘损坏丢失
附录 C:整体网络拓扑
光猫 → 主路由(拨号+DHCP)
↓
├─ 群晖NAS(Docker qBittorrent)
└─ 单网口OpenWrt旁路由(不拨号、无WAN,关闭DHCP+关闭DNS劫持)
## 📝 保存操作步骤
1. 全选上面所有文本,复制
2. 电脑桌面右键 → 新建 → 文本文档
3. 粘贴内容进去
4. 文件 → 另存为
- 文件名:`OpenWrt_群晖QB配置手册.md`
- 编码:**UTF-8**
5. 保存完成,可用Typora、VS Code等软件打开查看。
如果你后续还要新增其他配置(比如飞牛OS、Audiobookshelf),我可以继续追加到这份文档里。
(注:部分内容由豆包工作 AI 生成)