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

6.6 KiB
Executable File
Raw Permalink Blame History

单网口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 软路由执行)

# 查看arpspoof进程
ps | grep arpspoof
# 查看iptables arp相关规则
iptables -L | grep -i arp
  • 有 arpspoof 进程运行 = ARP 劫持正在生效。

临时关闭 ARP 劫持(SSH,重启 OpenClash 会复原)

# 终止arpspoof进程
killall arpspoof 2>/dev/null

永久关闭必须网页端操作: OpenClash → 设置 → 取消勾选【ARP 劫持 / 局域网 ARP 欺骗】,保存,停止并重启 OpenClash 内核。

客户端清除 ARP 缓存

macOS 终端:

sudo arp -d 192.168.1.1

校验:arp -a,查看192.168.1.1MAC 地址,必须为主路由原生 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 内核状态

ps | grep clash

✅正常输出:存在 clash 主进程 + openclash_watchdog 看门狗进程。

3.3 查看 nftables 流量劫持规则(fw4 环境)

fw4 环境没有 iptables CLASH nat 链,使用 nft 查看

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.1MAC 为主路由原生 MAC,无 ARP 劫持

  2. ✅ 非代理设备(网关 [192.168.1.1](192.168.1.1))

    • [ifconfig.me](ifconfig.me):返回家庭宽带公网 IP,不是代理 IP

    • dnsleaktest.com:DNS 为国内运营商 / 公共 DNS,无泄露

  3. ✅ 代理设备(网关 = 软路由 IP)

    • 国内网站:直连,使用宽带 IP;匹配规则的境外域名走代理 IP

    • 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 内核。

  1. nft list 看不到 clash 规则,内核进程在运行
  • 解决:OpenClash 网页保存配置,完全停止再重启内核,重新注入 nft 规则。
  1. redir-host 模式下 DNS 泄漏
  • 解决:OpenClash 开启 DNS 劫持,拦截 53 端口 UDP/TCP,关闭上游 UDP DNS。
  1. 网关指向软路由的设备无法走代理
  • 检查:监听网卡选择是否正确;规则集、代理组配置;内核是否正常启动。

六、重要注意事项

  1. 单网口旁路由性能有限,不要使用超大 Meta 内核、超大规则集,减少 CPU 占用。

  2. redir-host 只劫持网关指向软路由设备,和本项目设计目标匹配。

  3. 不要同时开启 ARP 劫持,ARP 劫持会全局接管整个局域网流量,造成性能瓶颈。

  4. 软路由 fw4 (nftables) 环境,不要使用传统 iptables 命令查找 clash nat 链,会报错。


如果你需要,我可以再单独导出一份精简版一页纸快速核对清单,方便你每次修改配置后快速打勾自检。需要吗?

(注:部分内容由豆包工作 AI 生成)