secubox-openwrt/package/secubox/luci-app-traffic-shaper/README.zh.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

301 lines
8.0 KiB
Markdown
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.

# Traffic Shaper - 高级 QoS 控制
[English](README.md) | [Francais](README.fr.md) | 中文
**版本:** 0.4.0
**最后更新:** 2025-12-28
**状态:** 活跃
用于高级流量整形和服务质量QoS管理的 LuCI 应用程序,使用 Linux Traffic Control (TC) 和 CAKE qdisc。
## 功能
- **流量类别管理**创建和管理带宽分配类别具有保证rate和最大ceil限制
- **基于优先级的调度**8 级优先级系统,用于精细的流量优先级
- **分类规则**:灵活的规则系统,按以下方式分类流量:
- 端口号(源/目标)
- IP 地址(源/目标)
- DSCP 标记
- 协议类型
- **实时统计**:监控每个类别的数据包计数、字节计数和丢弃统计
- **快速预设**:一键应用优化配置:
- 游戏和低延迟
- 视频流
- 居家办公
- 均衡(默认)
- **可视化仪表板**:带优先级颜色编码的流量流程图
- **多接口支持**:在 WAN、LAN 或任何网络接口上配置 QoS
## 安装
```bash
opkg update
opkg install luci-app-traffic-shaper
/etc/init.d/rpcd restart
/etc/init.d/uhttpd restart
```
## 依赖
- `luci-base`LuCI Web 界面框架
- `rpcd`:后端通信的 RPC 守护进程
- `tc`Linux 流量控制工具
- `kmod-sched-core`:内核流量调度模块
- `kmod-sched-cake`CAKE qdisc 内核模块
## 使用
### 访问界面
导航到:**网络 -> Traffic Shaper**
界面提供 5 个主要视图:
1. **概览**:带状态卡片和流量流程可视化的仪表板
2. **流量类别**:带宽类别的 CRUD 界面
3. **分类规则**:流量匹配规则的 CRUD 界面
4. **统计**:所有流量类别的实时统计
5. **预设**:快速应用优化配置
### 创建流量类别
1. 转到 **网络 -> Traffic Shaper -> 流量类别**
2. 点击 **添加** 创建新类别
3. 配置:
- **名称**:描述性名称(例如"视频流"
- **优先级**1最高到 8最低
- **保证速率**:最小带宽(例如"5mbit"
- **最大速率Ceil**:允许的最大带宽(例如"50mbit"
- **接口**网络接口wan、lan 等)
- **启用**:激活类别
4. 点击 **保存并应用**
### 优先级指南
- **优先级 1-2**关键流量VoIP、游戏、实时应用
- **优先级 3-4**重要流量视频流、VPN
- **优先级 5-6**:正常流量(网页浏览、电子邮件)
- **优先级 7-8**:批量流量(下载、备份)
### 创建分类规则
1. 转到 **网络 -> Traffic Shaper -> 分类规则**
2. 点击 **添加** 创建新规则
3. 配置:
- **流量类别**:选择目标类别
- **匹配类型**端口、IP、DSCP 或协议
- **匹配值**:要匹配的值
- **启用**:激活规则
4. 点击 **保存并应用**
### 规则示例
| 匹配类型 | 匹配值 | 描述 |
|----------|--------|------|
| 目标端口 | `80,443` | HTTP/HTTPS 网络流量 |
| 目标端口 | `22` | SSH 连接 |
| 目标端口 | `53` | DNS 查询 |
| 源 IP | `192.168.1.0/24` | 来自 LAN 子网的所有流量 |
| 目标 IP | `8.8.8.8` | 到 Google DNS 的流量 |
| DSCP | `EF` | 加速转发VoIP |
| 协议 | `udp` | 所有 UDP 流量 |
### 使用预设
1. 转到 **网络 -> Traffic Shaper -> 预设**
2. 查看可用的预设及其配置
3. 点击所需配置文件上的 **应用此预设**
4. 确认操作(这将替换现有配置)
## 配置
### UCI 配置
配置存储在 `/etc/config/traffic-shaper`
```
config class 'gaming'
option name 'Gaming Traffic'
option priority '1'
option rate '10mbit'
option ceil '50mbit'
option interface 'wan'
option enabled '1'
config rule 'gaming_ports'
option class 'gaming'
option match_type 'dport'
option match_value '3074,27015,25565'
option enabled '1'
```
### 流量类别选项
- `name`:类别的显示名称
- `priority`优先级1-8
- `rate`:保证的最小带宽(格式:`<数字>[kmg]bit`
- `ceil`:允许的最大带宽(格式:`<数字>[kmg]bit`
- `interface`:网络接口名称
- `enabled`:启用/禁用类别0/1
### 分类规则选项
- `class`:流量类别 IDUCI section 名称)
- `match_type`:匹配类型(`dport`、`sport`、`dst`、`src`、`dscp`、`protocol`
- `match_value`:要匹配的值
- `enabled`:启用/禁用规则0/1
## 后端 API
RPCD 后端(`luci.traffic-shaper`)提供以下方法:
### 状态方法
- `status()`:获取当前 QoS 系统状态
- `list_classes()`:列出所有流量类别
- `list_rules()`:列出所有分类规则
- `get_stats()`:从 TC 获取每个类别的统计
### 管理方法
- `add_class(name, priority, rate, ceil, interface)`:创建新类别
- `update_class(id, name, priority, rate, ceil, interface, enabled)`:更新类别
- `delete_class(id)`:删除类别
- `add_rule(class, match_type, match_value)`:创建分类规则
- `delete_rule(id)`:删除规则
### 预设方法
- `list_presets()`:获取可用预设
- `apply_preset(preset_id)`:应用预设配置
## 技术细节
### 流量控制实现
该模块使用 Linux Traffic Control (TC),具有以下层次结构:
1. **根 qdisc**CAKECommon Applications Kept Enhanced
2. **类别层次结构**HTBHierarchical Token Bucket用于带宽分配
3. **过滤器**:基于规则的 U32 过滤器用于流量分类
### CAKE 特性
- **智能队列**:自动管理队列大小
- **流隔离**:防止单个流垄断带宽
- **延迟降低**:最小化缓冲膨胀
- **每主机公平**:确保公平的带宽分配
### 统计收集
使用 `tc -s class show` 收集统计并解析以提供:
- 每个类别的数据包计数
- 每个类别的字节计数
- 丢弃计数(由于速率限制而丢弃的数据包)
数据在统计视图中每 5 秒刷新一次。
## 示例
### 示例 1居家办公设置
**类别:**
- 视频通话:优先级 18mbit 保证50mbit 最大
- VPN 流量:优先级 210mbit 保证60mbit 最大
- 网页浏览:优先级 45mbit 保证40mbit 最大
**规则:**
- Zoom 端口8801-8810-> 视频通话
- 带 VPN IP 范围的端口 443 -> VPN 流量
- 端口 80,443 -> 网页浏览
### 示例 2游戏 + 流媒体
**类别:**
- 游戏:优先级 15mbit 保证40mbit 最大
- 流媒体:优先级 315mbit 保证70mbit 最大
- 下载:优先级 72mbit 保证30mbit 最大
**规则:**
- 游戏端口3074、27015 等)-> 游戏
- 到 Netflix/YouTube IP 的端口 443 -> 流媒体
- 端口 80 -> 下载
### 示例 3多用户家庭
使用 **均衡** 预设或创建自定义类别:
- 高优先级10mbit -> 60mbit优先级 2
- 正常15mbit -> 80mbit优先级 5
- 批量5mbit -> 50mbit优先级 7
## 故障排除
### 流量整形不工作
1. 验证 CAKE 模块已加载:
```bash
lsmod | grep sch_cake
```
2. 检查 TC 配置:
```bash
tc qdisc show
tc class show dev wan
tc filter show dev wan
```
3. 验证接口名称:
```bash
ip link show
```
### 类别不显示
1. 重启 RPCD
```bash
/etc/init.d/rpcd restart
```
2. 检查 UCI 配置:
```bash
uci show traffic-shaper
```
3. 验证类别已启用:
```bash
uci get traffic-shaper.<class_id>.enabled
```
### 统计不更新
1. 检查 TC 统计:
```bash
tc -s class show dev wan
```
2. 验证轮询是否活跃(检查浏览器控制台)
3. 确保类别已启用且接口正确
## 性能注意事项
- **CPU 使用**TC 处理在现代路由器上使用最小 CPU
- **内存**:每个类别使用约 1-2KB 内核内存
- **延迟**CAKE 显著降低交互式流量的延迟
- **吞吐量**:对总吞吐量影响最小(<1% 开销
## 许可证
Apache License 2.0
## 维护者
SecuBox Project <secubox@example.com>
## 另请参阅
- [Linux TC 文档](https://man7.org/linux/man-pages/man8/tc.8.html)
- [CAKE qdisc](https://www.bufferbloat.net/projects/codel/wiki/Cake/)
- [OpenWrt 流量整形](https://openwrt.org/docs/guide-user/network/traffic-shaping/start)
- [LuCI 开发指南](https://github.com/openwrt/luci/wiki)