Flowtriq/nethawk
GitHub: Flowtriq/nethawk
一款在终端中进行实时网络流量监控与 DDoS 攻击检测的轻量级命令行工具,零配置、单二进制即可运行。
Stars: 0 | Forks: 0
◆ NetHawk
在终端中进行实时网络流量分析。
安装 •
用法 •
功能 •
JSON 模式 •
攻击检测 •
参与贡献 •
Discord
通过 SSH 登录到服务器。运行 `nethawk`。实时查看访问您网络的所有内容。
无需配置文件。无需数据库。无需 Web 服务器。仅需一个 5MB 的二进制文件。
## 安装
### 一行命令安装 (Linux/macOS)
```
curl -sSfL https://raw.githubusercontent.com/Flowtriq/nethawk/main/install.sh | sudo sh
```
### 从源码安装
```
go install github.com/Flowtriq/nethawk/cmd/nethawk@latest
```
### 从发布版本安装
从 [Releases](https://github.com/Flowtriq/nethawk/releases) 下载适合您平台的二进制文件。
### 前置条件
NetHawk 使用 `libpcap` 进行数据包捕获:
- **Linux (Debian/Ubuntu):** `sudo apt install libpcap-dev`
- **Linux (RHEL/CentOS):** `sudo yum install libpcap-devel`
- **macOS:** 系统自带
## 用法
```
# 自动检测 interface,默认 threshold
sudo nethawk
# 指定 interface
sudo nethawk -i eth0
# 自定义攻击检测 threshold (PPS)
sudo nethawk -i eth0 -t 100000
# JSON 输出(用于管道传输至其他工具)
sudo nethawk -json
# 列出可用的 interface
nethawk -list
```
需要 root 权限,因为原始数据包捕获需要该权限。这与 tcpdump、Wireshark 或任何其他数据包捕获工具的要求相同。
## 功能
### 实时流量仪表板
- **带宽和数据包速率** — 实时 Gbps/Mbps 和 PPS,并带有峰值跟踪
- **60秒走势图** — 一目了然的彩色编码流量历史记录
- **协议明细** — 带有可视化条形图的 TCP、UDP、ICMP 百分比
- **源 IP Top 排行** — 按数据包数量排名,向您发送最多流量的 IP
- **目标端口 Top 排行** — 正在被访问的服务及其百分比
### 攻击检测
NetHawk 实时对流量模式进行分类。当每秒数据包数超过您的阈值时,它会识别出攻击向量:
| 严重程度 | 触发条件 | 颜色 |
|----------|---------|-------|
| NORMAL (正常) | 低于阈值 | 绿色 |
| MEDIUM (中等) | 1倍阈值 | 黄色 |
| HIGH (高) | 2倍阈值 | 橙色 |
| CRITICAL (严重) | 5倍阈值 | 红色 |
检测到的攻击类型:
- DNS 放大攻击 (UDP/53)
- NTP 放大攻击 (UDP/123)
- Memcached 放大攻击 (UDP/11211)
- SSDP 放大攻击 (UDP/1900)
- LDAP 放大攻击 (UDP/389)
- SNMP 放大攻击 (UDP/161)
- CharGEN 放大攻击 (UDP/19)
- UDP Flood
- SYN Flood
- TCP Flood (带端口识别)
- ICMP Flood
- 流量型攻击 (混合协议)
### JSON 模式
将结构化数据管道传输给 jq、自定义警报、日志聚合或其他任何用途:
```
sudo nethawk -json | jq '.severity'
```
```
{
"timestamp": "2026-06-20T14:30:00Z",
"interface": "eth0",
"pps": 234000,
"bps": 1240000000,
"tcp_pct": 45.2,
"udp_pct": 42.1,
"icmp_pct": 12.7,
"unique_src_ips": 847,
"top_sources": [
{"ip": "192.168.1.100", "count": 89000}
],
"top_ports": [
{"port": 53, "protocol": "UDP", "count": 98700, "percent": 42.1}
],
"avg_pkt_size": 512,
"severity": "NORMAL"
}
```
## 工作原理
NetHawk 使用 libpcap 直接从您的网络接口捕获数据包。每过一秒,它会汇总:
1. **数据包和字节计数器** — 总吞吐量
2. **协议分类** — 每个数据包的 L4 协议
3. **源 IP 跟踪** — 唯一的源 IP(上限为 10 万个以限制内存使用)
4. **目标端口跟踪** — 正在接收流量的端口
5. **攻击分类** — 将当前 PPS 与阈值进行比较,从协议/端口模式中识别出攻击向量
所有操作均在进程内运行。没有数据离开本机。无云端依赖。无需账户。无网络回传。
## 横向对比
| | NetHawk | iftop | nload | bandwhich | Wireshark |
|--|---------|-------|-------|-----------|-----------|
| 实时 TUI | 是 | 是 | 是 | 是 | 否 (GUI) |
| 协议明细 | 是 | 否 | 否 | 否 | 是 |
| 源 IP Top 排行 | 是 | 连接情况 | 否 | 按进程 | 是 |
| 目标端口 Top 排行 | 是 | 否 | 否 | 否 | 是 |
| 攻击检测 | 是 | 否 | 否 | 否 | 否 |
| 攻击分类 | 是 | 否 | 否 | 否 | 否 |
| JSON 输出 | 是 | 否 | 否 | 否 | 是 |
| 单一二进制文件 | 是 | 否 | 否 | 是 | 否 |
| 零配置 | 是 | 是 | 是 | 是 | 否 |
## 用于生产环境的 DDoS 防护
NetHawk 可向您展示访问您网络的流量。如果您需要能够自动**拦截**这些流量的工具 —— 包括 7x24 小时监控、自动缓解、警报、团队仪表板、事件取证 —— 请查看 [Flowtriq](https://flowtriq.com)。
## 许可证
MIT。详情请见 [LICENSE](LICENSE)。
## 另请参阅
- [ftagent-lite](https://github.com/Flowtriq/ftagent-lite) — 轻量级 Python DDoS 监控工具(单文件,支持 pip install,JSON 输出)
- [Flowtriq](https://flowtriq.com) — 托管式 DDoS 检测和缓解平台
标签:EVTX分析, Go, IP 地址批量处理, Ruby工具, 数据包抓取, 日志审计, 流量监控, 系统分析, 网络分析, 防御绕过