Files
StudyDiary-20261009/02-学习笔记/Tips/单网口OpenWrt旁路由OpenClash redir-host完整配置文档(含自检清单).md
CrazyJasonwell e97be9ac8c commit all
2026-10-09 22:06:40 +08:00

180 lines
5.9 KiB
Markdown
Executable File
Raw 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完整配置文档(含自检清单)
## 文档说明
**适用场景**:单网口OpenWrt软路由作为旁路由,搭配OpenClash redir\-host模式,实现**按需代理**。仅手动修改网关的设备走代理,全屋其余设备、群晖NAS、qBittorrent均直连主路由,不受软路由干扰。
**设备环境**:
- 主路由:192\.168\.1\.1(全屋默认网关)
- 软路由:单网口OpenWrt、fw4\(nftables\)防火墙、OpenClash核心
- 业务设备:群晖NAS \+ Docker qBittorrent
**核心目标**:彻底关闭全局ARP劫持,解决全网卡顿;采用redir\-host精准分流,兼顾代理需求与内网稳定性,BT下载流量纯净直连。
## 一、整体网络拓扑
主路由\(192\.168\.1\.1\) ↔ 交换机 ↔ 软路由(单网口旁路由)、群晖NAS、手机、电脑等局域网终端
- 普通设备/群晖:网关=主路由,流量直连上网,不经过软路由
- 需要代理设备:网关改为软路由IP,流量由OpenClash接管代理
## 二、软路由基础前置配置
### 2\.1 关闭软路由DHCP服务
软路由仅做旁路由,禁止分配IP,避免局域网IP冲突、网关错乱。
操作路径:LuCI → 网络 → DHCP/DNS → 停用DHCP服务器 → 保存应用
### 2\.2 关闭系统自带DNS劫持
清理OpenWrt原生DNS转发规则,避免与OpenClash DNS劫持冲突,防止解析异常、DNS泄漏。
### 2\.3 彻底关闭ARP劫持(解决全网卡顿核心方案)
**故障根源**:OpenClash ARP劫持会全局劫持内网所有去往主路由的流量,单网口软路由性能薄弱,满载后直接导致全网延迟高、网速卡顿。本场景按需代理,完全不需要ARP劫持。
#### 1\. 查看ARP劫持状态(SSH执行)
```shell
# 查看ARP劫持进程
ps | grep arpspoof
# 查看ARP相关防火墙规则
iptables -L | grep -i arp
```
判定:有arpspoof进程输出,代表ARP劫持正在生效。
#### 2\. 临时关闭ARP劫持(立即生效,重启内核复原)
```shell
killall arpspoof 2>/dev/null
```
#### 3\. 永久关闭(必做)
OpenClash网页 → 设置 → 取消勾选【ARP劫持/局域网ARP欺骗】→ 保存配置 → 停止并重启OpenClash内核。
#### 4\. 客户端清理ARP缓存(macOS)
```shell
sudo arp -d 192.168.1.1
```
校验:执行arp \-a,192\.168\.1\.1对应的MAC为**主路由原生MAC**,非软路由MAC即为正常。
## 三、OpenClash redir\-host模式核心配置(fw4/nftables)
### 3\.1 模式原理
redir\-host基于nftables实现TCP/UDP精准劫持,**仅对网关指向软路由的设备生效**,不影响全屋其他设备;自带DNS劫持、QUIC拦截,杜绝DNS泄漏、协议绕过代理问题。
### 3\.2 网页关键参数配置
- 运行模式:redir\-host
- 监听网卡:选择软路由唯一LAN网卡
- ARP劫持:完全关闭
- DNS设置:开启OpenClash内置DNS劫持,关闭上游UDP DNS,防泄漏
- QUIC拦截:开启,拒绝境外UDP443流量,防止绕过代理
### 3\.3 内核运行状态校验
```shell
ps | grep clash
```
正常输出:存在clash主进程、openclash\_watchdog看门狗守护进程,代表内核正常运行。
### 3\.4 nftables规则校验(fw4环境专用)
OpenWrt 22\.03\+默认fw4防火墙,无传统iptables CLASH链,需用nft命令查看规则。
```shell
nft list ruleset | grep -i clash
```
**正常规则特征**:
1. DNS劫持规则:th dport 53 redirect to :53(接管全网DNS解析)
2. 流量转发规则:ip protocol tcp/udp jump openclash(TCP/UDP流量送入内核处理)
3. QUIC拦截规则:udp dport 443 reject(拦截境外QUIC绕过代理)
备注:chain openclash 空链为fw4环境正常现象,转发逻辑由Clash内核内部处理,非故障。
## 四、群晖NAS qBittorrent专项配置
**核心需求**:BT下载Peer流量纯净直连、不走代理;Tracker节点按需走代理,保证下载连通性。
- 群晖系统网关:固定192\.168\.1\.1(不修改软路由网关,完全避开代理劫持)
- qBittorrent设置:仅开启Tracker代理,Peer连接关闭代理
- 校验方式:查看QB日志,确认Peer流量直连、Tracker按需走代理
## 五、常见故障排查方案
- **开启OpenClash全网卡顿**:ARP劫持未彻底关闭,重新关闭ARP欺骗、清理客户端ARP缓存、重启内核
- **内核运行但无代理效果**:检查监听网卡是否选错,重新保存配置并重启内核注入nft规则
- **存在DNS泄漏**:开启OpenClash DNS劫持,禁用上游UDP DNS,全覆盖53端口解析
- **单网口性能占用高**:更换轻量内核、精简规则集,避免超大规则库导致CPU满载
---
# 快速自检核对清单(修改配置后必检)
## 🔹 一、ARP劫持核心检查(杜绝全网卡顿)
- \[ \] SSH执行 ps \| grep arpspoof,无任何arpspoof进程
- \[ \] 终端arp \-a查询,192\.168\.1\.1 MAC为原生主路由MAC,无篡改
- \[ \] OpenClash网页ARP劫持功能已关闭,保存并重启内核
## 🔹 二、OpenClash内核与规则检查
- \[ \] ps \| grep clash 正常存在主进程\+看门狗进程
- \[ \] nft规则包含:DNS劫持、TCP/UDP转发、QUIC拦截规则
- \[ \] 运行模式为redir\-host,监听网卡绑定本机单LAN口
## 🔹 三、设备分流业务测试
### 设备A:网关192\.168\.1\.1(全屋普通设备、群晖NAS)
- \[ \] ifconfig\.me 显示家庭宽带公网IP,非代理IP
- \[ \] dnsleaktest 检测无境外DNS泄漏
### 设备B:网关为软路由IP(代理设备)
- \[ \] 国内站点直连宽带IP,境外规则站点正常走代理
- \[ \] DNS由OpenClash接管,无解析泄漏
- \[ \] ping 223\.5\.5\.5 延迟稳定、无丢包、全网无卡顿
## 🔹 四、qBittorrent专项自检
- \[ \] 群晖网关保持主路由192\.168\.1\.1
- \[ \] QB仅Tracker走代理,Peer下载流量纯直连
- \[ \] 日志无异常代理劫持、无下载断连问题
> (注:部分内容由豆包工作 AI 生成)