6.6 KiB
Executable File
单网口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 分配混乱。
-
LuCI → 网络 → DHCP/DNS
-
停用 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 网页关键参数
-
运行模式:
redir-host -
监听网卡:选择软路由唯一 LAN 网卡
-
ARP 劫持:❌ 关闭
-
DNS:开启 OpenClash 内置 DNS 劫持,防止 DNS 泄漏
-
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
✅正常特征:
-
th dport 53 ... redirect to :53 comment "OpenClash DNS Hijack":DNS 劫持生效 -
ip protocol tcp jump openclash/ip protocol udp jump openclash_mangle:TCP/UDP 流量送入 clash 内核处理 -
udp dport 443 ... reject with icmp port-unreachable comment "OpenClash QUIC REJECT":拦截境外 QUIC
备注:
chain openclash {}为空链属于 fw4+redir-host 正常现象,转发逻辑在 clash 内核内部实现,非故障。
3.4 redir-host 业务功能自检清单(必做)
-
✅ ARP 检查:无 arpspoof 进程;
192.168.1.1MAC 为主路由原生 MAC,无 ARP 劫持 -
✅ 非代理设备(网关 [192.168.1.1](192.168.1.1))
-
[ifconfig.me](ifconfig.me):返回家庭宽带公网 IP,不是代理 IP
-
dnsleaktest.com:DNS 为国内运营商 / 公共 DNS,无泄露
-
-
✅ 代理设备(网关 = 软路由 IP)
-
国内网站:直连,使用宽带 IP;匹配规则的境外域名走代理 IP
-
dnsleaktest.com:DNS 由 OpenClash 接管,无 DNS 泄露
-
ping [223.5.5.5](223.5.5.5),延迟稳定,无大量丢包,全网不再卡顿
-
-
✅ nft 规则:nft list ruleset 可读到 OpenClash 劫持规则
四、群晖 Docker qBittorrent 配置(分流需求)
需求:qb 主体流量直连不走代理;Tracker 可按需走代理。 拓扑:群晖网关保持主路由
192.168.1.1,不受软路由 OpenClash 影响。
方案说明
不使用全局代理,两种方案可选: 方案 A:qBittorrent WebUI 内配置代理,仅 Tracker 流量走代理,Peer 流量直连。 方案 B:Docker 网络层面控制,容器不走代理。
查看 qb 日志,验证 Tracker 是否走代理
-
WebUI 查看日志
-
SSH 命令查看日志
-
验证要点:Tracker 连接按预期走代理,Peer 流量直连。
重点:群晖网关不修改,保持主路由,qb 不会被软路由 redir-host 劫持。
五、常见故障排查
- 一开 OpenClash 全网卡顿
-
原因:ARP 劫持开启,全局劫持内网流量。
-
解决:关闭 ARP 劫持,清理 ARP 缓存,重启 OpenClash 内核。
- nft list 看不到 clash 规则,内核进程在运行
- 解决:OpenClash 网页保存配置,完全停止再重启内核,重新注入 nft 规则。
- redir-host 模式下 DNS 泄漏
- 解决:OpenClash 开启 DNS 劫持,拦截 53 端口 UDP/TCP,关闭上游 UDP DNS。
- 网关指向软路由的设备无法走代理
- 检查:监听网卡选择是否正确;规则集、代理组配置;内核是否正常启动。
六、重要注意事项
-
单网口旁路由性能有限,不要使用超大 Meta 内核、超大规则集,减少 CPU 占用。
-
redir-host 只劫持网关指向软路由设备,和本项目设计目标匹配。
-
不要同时开启 ARP 劫持,ARP 劫持会全局接管整个局域网流量,造成性能瓶颈。
-
软路由 fw4 (nftables) 环境,不要使用传统 iptables 命令查找 clash nat 链,会报错。
如果你需要,我可以再单独导出一份精简版一页纸快速核对清单,方便你每次修改配置后快速打勾自检。需要吗?
(注:部分内容由豆包工作 AI 生成)