ftagent-lite
实时 DDoS 流量监控工具。单文件。无需账户。无云端依赖。
将其部署到任意 Linux 服务器上,即可实时查看每秒数据包数(PPS)、带宽、协议分布、源 IP 基数以及攻击严重程度。您可以将 JSON 数据通过管道传输至您的自定义工具中,或者直接在终端中查看实时仪表盘。
## 快速开始
### 从 PyPI 安装
```
pip install ftagent-lite[full]
sudo ftagent-lite
```
`[full]` 扩展会安装 `scapy`(用于数据包捕获和协议解析)以及 `psutil`(作为备用计数器)。
### 或者直接运行单文件
```
curl -O https://raw.githubusercontent.com/Flowtriq/ftagent-lite/main/ftagent_lite.py
pip install scapy psutil
sudo python3 ftagent_lite.py
```
使用原始套接字(raw socket)进行捕获需要 Root / sudo 权限。
## 功能说明
**专注于以下两项核心功能:**
1. **流量监控** —— PPS、带宽(Gbps/Mbps)、TCP/UDP/ICMP 分布、唯一源 IP、热门目标端口以及平均数据包大小。每个时间间隔的计算结果都会输出到标准输出(stdout)。
2. **攻击模式检测** —— 根据您设定的阈值对流量严重程度进行分类。当 PPS 超过阈值时,它会标记该时间间隔,显示热门源 IP,并识别出攻击模式。
| PPS 与阈值的比例 | 严重程度 |
| ---------------- | ---------- |
| 低于阈值 | `NORMAL` |
| 1 倍阈值 | `MEDIUM` |
| 2 倍阈值 | `HIGH` |
| 5 倍阈值 | `CRITICAL` |
无需配置文件。无需守护进程(daemons)。无需账户。它会立即开始捕获数据包并输出监测到的内容。
## 用法
```
sudo ftagent-lite [options]
Options:
-i, --interface IFACE Network interface (default: any)
-t, --interval SECS Reporting interval in seconds (default: 2)
-T, --threshold PPS PPS alert threshold (default: 5000)
-j, --json Machine-readable JSON (one object per line)
-w, --watch Live updating terminal dashboard
--no-color Disable ANSI colors
-V, --version Show version
```
### 示例
```
# 监控所有接口,默认 2 秒间隔
sudo ftagent-lite
# 监控 eth0,5 秒间隔,50K PPS 阈值
sudo ftagent-lite -i eth0 -t 5 -T 50000
# 实时终端仪表板
sudo ftagent-lite --watch
# JSON 输出通过管道传递给 jq
sudo ftagent-lite --json | jq '{pps: .pps, bps: .bps, srcs: .src_ip_count}'
# 记录到文件以供日后分析
sudo ftagent-lite --json >> /var/log/traffic.jsonl
# 导入到您自己的告警系统
sudo ftagent-lite --json | while read line; do
pps=$(echo "$line" | jq .pps)
[ "$pps" -gt 100000 ] && curl -X POST your-webhook -d "$line"
done
```
### JSON 输出
每个时间间隔会生成一个 JSON 对象:
```
{
"timestamp": "2026-06-14T03:12:07+00:00",
"pps": 47821,
"bps": 215000,
"tcp": 1530,
"udp": 45100,
"icmp": 191,
"other": 0,
"tcp_pct": 3.2,
"udp_pct": 94.1,
"icmp_pct": 0.4,
"src_ip_count": 8421,
"top_src_ips": ["203.0.113.5", "198.51.100.8", "192.0.2.99"],
"top_dst_ports": [[11211, 31042], [53, 12831], [80, 3201]],
"avg_pkt_size": 38
}
```
## 使用场景
- **快速诊断** —— 通过 SSH 登录到受攻击的服务器,几秒钟内即可查清正在遭受的攻击情况
- **CI/CD 流水线** —— 对预发布环境运行流量测试,并断言 PPS 保持在阈值以下
- **自定义工具** —— 将 JSON 数据通过管道传输至您自己的告警系统、仪表盘或 SIEM
- **蜜罐与研究** —— 将流量模式记录为 JSONL 格式,以便进行离线分析
- **轻量级监控** —— 在小型 VPS 上保持运行,因为在这些场景下使用完整的监控代理大材小用
## 环境要求
- Python 3.7+
- Linux(使用原始套接字捕获;macOS 可通过 BPF 运行)
- 捕获数据包需要 Root / sudo 权限
- `scapy`(用于完整的协议分析,推荐使用)
- `psutil`(作为备用方案,仅支持 PPS/BPS,无法进行协议分布分析)
## 支持
- Discord: [discord.gg/SsTWMYuyGG](https://discord.gg/SsTWMYuyGG)
- Issues: [github.com/Flowtriq/ftagent-lite/issues](https://github.com/Flowtriq/ftagent-lite/issues)
## 了解更多
- [GitHub 上的 ftagent-lite](https://github.com/Flowtriq/ftagent-lite) - 源代码、Issues 与发布版本
- [开始免费试用](https://flowtriq.com/signup) - 14 天免费试用,无需信用卡
- [Flowtriq](https://flowtriq.com) - 实时 DDoS 检测与缓解
## 许可证
MIT 许可证。版权所有 (c) 2026 [Flowtriq](https://flowtriq.com)。
可自由使用、派生或发布。如果提及出处我们将不胜感激,但这并非强制要求。
由 [Flowtriq](https://flowtriq.com) 构建 - 实时 DDoS 检测与缓解。