Files
StudyDiary-20261009/02-学习笔记/Tips/单网口OpenWrt旁路由(OpenClash redir-host)+群晖qBittorrent综合配置文档.md
CrazyJasonwell e97be9ac8c commit all
2026-10-09 22:06:40 +08:00

206 lines
6.6 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 单网口OpenWrt旁路由(OpenClash redir\-host)\+群晖qBittorrent综合配置文档
# 单网口 OpenWrt 旁路由(OpenClash redir\-host)\+ 群晖 qBittorrent 综合配置文档
> 场景说明:
> 主路由:OpenWrt,IP:`192.168.1.1`
> 软路由:单网口 OpenWrt,部署 OpenClash,作为旁路由。
> 设计目标:**设备网关指向软路由 IP 才走代理;其余设备网关保持 \[192\.168\.1\.1\]\(192\.168\.1\.1\),流量直连主路由,不经过软路由。**
> 群晖 NAS 部署 qBittorrent,控制 BT 流量不走代理,Tracker 按需走代理。
>
>
## 一、网络拓扑
主路由 \(\[192\.168\.1\.1\]\(192\.168\.1\.1\)\) ↔ 交换机 ↔ 软路由(单网口旁路由)、群晖 NAS、局域网终端
- 不使用代理设备:网关 `192.168.1.1`,流量全部经过主路由,绕过软路由
- 需要代理设备:手动修改网关为软路由 IP,流量交由 OpenClash 处理
## 二、软路由基础配置(OpenWrt)
### 2\.1 关闭 DHCP 服务器
软路由作为旁路由,不能开启 DHCP,避免局域网 IP 分配混乱。
1. LuCI → 网络 → DHCP/DNS
2. 停用 DHCP 服务器,保存应用。
### 2\.2 关闭 DNS 劫持(系统层面)
清理 OpenWrt 自带 DNS 劫持规则,避免和 OpenClash DNS 劫持冲突。
### 2\.3 关闭 OpenClash ARP 劫持(核心!解决全网卡顿根源)
> 故障现象:开启 OpenClash 后全网变慢,关闭立刻恢复。
> 根因:ARP 劫持(ARP 欺骗)会劫持局域网所有去往主路由`192.168.1.1`流量,全部转发到软路由。单网口软路由性能不足,造成全网卡顿。
> 你的场景**完全不需要 ARP 劫持**。
>
>
#### 查看 ARP 劫持状态(SSH 软路由执行)
```sh
# 查看arpspoof进程
ps | grep arpspoof
# 查看iptables arp相关规则
iptables -L | grep -i arp
```
- 有 arpspoof 进程运行 = ARP 劫持正在生效。
#### 临时关闭 ARP 劫持(SSH,重启 OpenClash 会复原)
```sh
# 终止arpspoof进程
killall arpspoof 2>/dev/null
```
> 永久关闭必须网页端操作:
> OpenClash → 设置 → 取消勾选【ARP 劫持 / 局域网 ARP 欺骗】,保存,停止并重启 OpenClash 内核。
>
>
#### 客户端清除 ARP 缓存
macOS 终端:
```bash
sudo arp -d 192.168.1.1
```
校验:`arp -a`,查看`192.168.1.1`MAC 地址,必须为主路由原生 MAC,不是软路由 MAC。
## 三、OpenClash 配置:redir\-host 模式(fw4/nftables)
> 系统环境:OpenWrt fw4,底层使用 nftables,不再使用传统 iptables。
> redir\-host 原理:基于 nftables 劫持 TCP/UDP 流量,仅对**网关指向软路由**的设备生效;网关为主路由的设备不受任何影响。
> redir\-host 自带 DNS 劫持,同时拦截境外 QUIC \(UDP443\),防止协议绕过代理。
>
>
### 3\.1 OpenClash 网页关键参数
1. 运行模式:`redir-host`
2. 监听网卡:选择软路由唯一 LAN 网卡
3. ARP 劫持:❌ 关闭
4. DNS:开启 OpenClash 内置 DNS 劫持,防止 DNS 泄漏
5. QUIC 拦截:启用,拒绝境外 UDP:443(配置自动生成 nft 规则)
### 3\.2 校验 OpenClash 内核状态
```sh
ps | grep clash
```
✅正常输出:存在 clash 主进程 \+ openclash\_watchdog 看门狗进程。
### 3\.3 查看 nftables 流量劫持规则(fw4 环境)
> fw4 环境没有 iptables CLASH nat 链,使用 nft 查看
>
>
```sh
nft list ruleset | grep -i clash
```
✅正常特征:
1. `th dport 53 ... redirect to :53 comment "OpenClash DNS Hijack"`:DNS 劫持生效
2. `ip protocol tcp jump openclash` / `ip protocol udp jump openclash_mangle`:TCP/UDP 流量送入 clash 内核处理
3. `udp dport 443 ... reject with icmp port-unreachable comment "OpenClash QUIC REJECT"`:拦截境外 QUIC
> 备注:`chain openclash {}`为空链属于 fw4\+redir\-host 正常现象,转发逻辑在 clash 内核内部实现,非故障。
>
>
### 3\.4 redir\-host 业务功能自检清单(必做)
1. ✅ ARP 检查:无 arpspoof 进程;`192.168.1.1`MAC 为主路由原生 MAC,无 ARP 劫持
2. ✅ 非代理设备(网关 \[192\.168\.1\.1\]\(192\.168\.1\.1\))
- \[ifconfig\.me\]\(ifconfig\.me\):返回家庭宽带公网 IP,不是代理 IP
- [dnsleaktest\.com](https://dnsleaktest.com):DNS 为国内运营商 / 公共 DNS,无泄露
3. ✅ 代理设备(网关 = 软路由 IP)
- 国内网站:直连,使用宽带 IP;匹配规则的境外域名走代理 IP
- [dnsleaktest\.com](https://dnsleaktest.com):DNS 由 OpenClash 接管,无 DNS 泄露
- ping \[223\.5\.5\.5\]\(223\.5\.5\.5\),延迟稳定,无大量丢包,全网不再卡顿
4. ✅ nft 规则:nft list ruleset 可读到 OpenClash 劫持规则
## 四、群晖 Docker qBittorrent 配置(分流需求)
> 需求:qb 主体流量直连不走代理;Tracker 可按需走代理。
> 拓扑:群晖网关保持主路由`192.168.1.1`,不受软路由 OpenClash 影响。
>
>
### 方案说明
不使用全局代理,两种方案可选:
方案 A:qBittorrent WebUI 内配置代理,仅 Tracker 流量走代理,Peer 流量直连。
方案 B:Docker 网络层面控制,容器不走代理。
### 查看 qb 日志,验证 Tracker 是否走代理
1. WebUI 查看日志
2. SSH 命令查看日志
3. 验证要点:Tracker 连接按预期走代理,Peer 流量直连。
> 重点:群晖网关不修改,保持主路由,qb 不会被软路由 redir\-host 劫持。
>
>
## 五、常见故障排查
1. 一开 OpenClash 全网卡顿
- 原因:ARP 劫持开启,全局劫持内网流量。
- 解决:关闭 ARP 劫持,清理 ARP 缓存,重启 OpenClash 内核。
2. nft list 看不到 clash 规则,内核进程在运行
- 解决:OpenClash 网页保存配置,完全停止再重启内核,重新注入 nft 规则。
3. redir\-host 模式下 DNS 泄漏
- 解决:OpenClash 开启 DNS 劫持,拦截 53 端口 UDP/TCP,关闭上游 UDP DNS。
4. 网关指向软路由的设备无法走代理
- 检查:监听网卡选择是否正确;规则集、代理组配置;内核是否正常启动。
## 六、重要注意事项
1. 单网口旁路由性能有限,不要使用超大 Meta 内核、超大规则集,减少 CPU 占用。
2. redir\-host 只劫持网关指向软路由设备,和本项目设计目标匹配。
3. 不要同时开启 ARP 劫持,ARP 劫持会全局接管整个局域网流量,造成性能瓶颈。
4. 软路由 fw4 \(nftables\) 环境,不要使用传统 iptables 命令查找 clash nat 链,会报错。
---
如果你需要,我可以再单独导出一份**精简版一页纸快速核对清单**,方便你每次修改配置后快速打勾自检。需要吗?
> (注:部分内容由豆包工作 AI 生成)