alisakkaf/Ultimate-NetGuard-AIO
GitHub: alisakkaf/Ultimate-NetGuard-AIO
一款零依赖的开源 Windows 网络监控与防火墙管理套件,集成实时数据包捕获、按进程流量追踪、防火墙规则管理和硬件监控于一体。
Stars: 0 | Forks: 0
# 🛡️ Ultimate NetGuard AIO
### 最强大的 Windows 网络与系统监控器 —— 多合一
[](https://github.com/alisakkaf/Ultimate-NetGuard-AIO/releases)
[](https://github.com/alisakkaf/Ultimate-NetGuard-AIO)
[](LICENSE)
[](https://www.qt.io/)
[](https://github.com/alisakkaf/Ultimate-NetGuard-AIO)
[](https://github.com/alisakkaf/Ultimate-NetGuard-AIO/stargazers)
[](https://github.com/alisakkaf/Ultimate-NetGuard-AIO/releases)
**专业级、多合一的网络安全套件,集成了实时数据包级别的流量监控、Windows 防火墙管理、硬件系统监控和精致的任务栏浮窗——全部使用 C++ 原生构建,零外部依赖。**
[📥 下载最新版本](https://github.com/alisakkaf/Ultimate-NetGuard-AIO/releases) · [📖 完整功能列表](../FEATURES_EN.md) · [🌐 网站与文章](https://alisakkaf.com/en/windows-software/ultimate-netguard-aio-network-monitor-firewall-manager) · [💬 Facebook](https://www.facebook.com/AliSakkaf.Dev/) · [🐛 报告 Bug](https://github.com/alisakkaf/Ultimate-NetGuard-AIO/issues) 
| 模块 | 描述 | 亮点 |
|--------|-------------|------------|
| 🌐 **网络监控器** | 实时数据包捕获与分析 | 原始套接字,IPv4/IPv6,按进程跟踪 |
| 🛡️ **防火墙管理器** | Windows 防火墙 COM API 集成 | 阻止/允许,白名单锁定,拖放,规则导入/导出 |
| 💻 **硬件监控器** | CPU, RAM, GPU, 磁盘监控 | WMI + PDH,温度传感器,环形仪表 |
| 📊 **使用历史记录** | 按应用每日带宽跟踪 | JSON 持久化,CSV 导出,时间筛选 |
| 🖥️ **任务栏浮窗** | Windows 任务栏上的实时网速小部件 | 透明,可定制,悬停弹出 |
| 🎨 **主题系统** | 深色与浅色模式 | 实时切换,完整的 QSS 覆盖 |
| 🔔 **系统托盘** | 活动指示器与快捷控制 | 动态图标,速度提示框 |
| ⚙️ **设置** | 综合配置 | 开机启动,浮窗自定义,持久化 |
| 🔄 **自动更新器** | 静默 OTA 更新检查器 | 语义版本对比,更新日志对话框 |
| 📦 **自安装程序** | 自动部署到 Program Files | 桌面快捷方式,注册表启动项,关闭并替换 |
## 📸 软件截图
### 🌑 深色主题 —— 主界面

### ☀️ 浅色主题 —— 主界面

### 🌐 网络流量监控器

### 🛡️ 防火墙管理器 —— 核心规则

### 🛡️ 防火墙管理器 —— 系统规则

### 💻 硬件监控器

### 📊 使用历史记录

### ⚙️ 设置面板

### 🖥️ 任务栏浮窗小部件

## 📋 系统要求
| 要求 | 最低配置 | 推荐配置 |
|------------|---------|-------------|
| **操作系统** | Windows 7 SP1 | Windows 10/11 |
| **架构** | x86 (32-bit) | x86 或 x64 |
| **内存 (RAM)** | 64 MB | 128 MB |
| **磁盘空间** | 15 MB | 25 MB |
| **权限** | **管理员** (必需) | 管理员 |
| **运行时依赖** | 无 (静态构建的 Qt) | 无 |
| **网络** | 至少一个活动的网络适配器 | 以太网或 Wi-Fi |
## 📦 安装说明
### 选项 1:下载预构建版本(推荐)
1. 前往 [Releases](https://github.com/alisakkaf/Ultimate-NetGuard-AIO/releases) 页面
2. 下载 `UltimateNetGuard-v1.0.0-win32.zip`
3. 解压到任意文件夹
4. 以管理员身份运行 `UltimateNetGuard.exe`
5. 搞定 —— 无需安装!
### 选项 2:从源码构建
请参阅下方的 [从源码构建](#-building-from-source)。
## 🔧 从源码构建
### 前置条件
| 工具 | 版本 | 下载 |
|------|---------|----------|
| Qt | 5.14.2 | [qt.io/download](https://www.qt.io/download-qt-installer) |
| MinGW | 7.3.0 (32-bit) | 包含在 Qt 安装程序中 |
| Git | 最新版 | [git-scm.com](https://git-scm.com/) |
### 构建步骤
```
# 1. Clone repository
git clone https://github.com/alisakkaf/Ultimate-NetGuard-AIO.git
cd Ultimate-NetGuard-AIO
# 2. 打开 Qt Creator 并加载 UltimateNetGuard.pro
# 或从 command line 构建:
# 3. 设置环境(调整您的 Qt 安装路径)
set PATH=C:\Qt\5.14.2\mingw73_32\bin;C:\Qt\Tools\mingw730_32\bin;%PATH%
# 4. 生成 Makefile
qmake UltimateNetGuard.pro CONFIG+=release
# 5. 构建
mingw32-make -j%NUMBER_OF_PROCESSORS%
# 6. 输出的 binary 是:release/UltimateNetGuard.exe
```
### 静态构建(便携版)
```
# 要获取没有 Qt DLL 依赖的完全可移植的 executable:
qmake UltimateNetGuard.pro CONFIG+=release CONFIG+=static
mingw32-make -j%NUMBER_OF_PROCESSORS%
```
## 🏗️ 项目架构
```
Ultimate_NetGuard_AIO/
│
├── 📁 src/
│ ├── 📁 core/ # Application Core
│ │ ├── mainwindow.h/cpp # Main window controller, history engine, settings
│ │ ├── apptheme.h/cpp # Full QSS stylesheets for Dark & Light themes
│ │ ├── stylemanager.h/cpp # Singleton theme manager with signal emission
│ │ └── version.h # Centralized version & publisher constants
│ │
│ ├── 📁 network/ # Network Monitoring Engine
│ │ ├── networkmonitor.h/cpp # Raw socket capture thread (IPv4+IPv6)
│ │ ├── networkmodel.h/cpp # Custom QAbstractItemModel tree model
│ │ ├── networkwidget.h/cpp # Network tab UI, context menus, process dialogs
│ │ └── packetparser.h/cpp # Wire-format packet structs & protocol resolver
│ │
│ ├── 📁 firewall/ # Firewall Management
│ │ ├── firewallmanager.h/cpp # Windows COM API (INetFwPolicy2) integration
│ │ ├── firewallmodel.h/cpp # QAbstractTableModel for firewall rules
│ │ └── firewallwidget.h/cpp # Firewall tab UI, drag-drop, import/export
│ │
│ ├── 📁 hardware/ # Hardware Monitoring
│ │ ├── hardwaremonitor.h/cpp # WMI + PDH monitoring thread
│ │ └── hardwarewidget.h/cpp # Circular gauges, temp bars, network I/O
│ │
│ ├── 📁 taskbar/ # Taskbar Integration
│ │ ├── taskbaroverlay.h/cpp # Transparent taskbar speed widget + hover popup
│ │ └── systemtrayicon.h/cpp # System tray icon with dynamic activity dot
│ │
│ ├── 📁 ui/ # Qt Designer Forms
│ │ ├── mainwindow.ui # Main window layout (575 lines)
│ │ ├── networkwidget.ui # Network tab layout
│ │ ├── firewallwidget.ui # Firewall tab layout
│ │ └── hardwarewidget.ui # Hardware tab layout
│ │
│ ├── 📁 Info/ # Documentation & Resources
│ │ ├── FEATURES_EN.md # Complete English feature list
│ │ ├── FEATURES_AR.md # Complete Arabic feature list
│ │ └── 📁 github/ # GitHub repository files
│ │
│ └── main.cpp # Entry point, admin elevation, single-instance
│
├── 📁 icons/ # Application icons (ICO + PNG)
│ ├── app.ico # Windows icon
│ └── Ultimate_NetGuard_AIO.png # High-res PNG icon
│
├── appicon.rc # Windows resource script (VERSIONINFO + icon)
├── app.manifest # UAC manifest (requireAdministrator)
├── resources.qrc # Qt resource compilation file
└── UltimateNetGuard.pro # qmake project file
```
### 依赖图
```
graph TD
A[main.cpp] --> B[MainWindow]
B --> C[NetworkWidget]
B --> D[FirewallWidget]
B --> E[HardwareWidget]
B --> F[TaskbarOverlay]
B --> G[SystemTrayIcon]
B --> H[StyleManager]
C --> I[NetworkMonitor Thread]
C --> J[NetworkTreeModel]
I --> K[PacketParser]
D --> L[FirewallManager COM]
D --> M[FirewallModel]
E --> N[HardwareMonitor Thread]
H --> O[AppTheme QSS]
```
## 🔬 模块深入解析
### 🌐 模块 1:实时网络流量监控器
网络监控器是 Ultimate NetGuard AIO 的核心。它为你的机器上的所有网络流量提供深度的、按进程的可见性。
#### 工作原理
1. **创建原始套接字**:监控器创建两个原始套接字——一个用于 IPv4(`AF_INET`),另一个用于 IPv6(`AF_INET6`)——并绑定到活动的网络适配器。
2. **混杂模式**:使用 `SIO_RCVALL`,将两个套接字设置为捕获通过该适配器的所有流量(而不仅仅是发往本地机器的流量)。
3. **适配器选择**:`pickBestAdapter()` 函数通过 `GetBestInterface()` 查询 Windows 路由表,以查找处理互联网流量的适配器。然后将其与 `GetAdaptersAddresses()` 交叉引用以获取适配器的 IP 地址,并显式过滤掉虚拟适配器(VMware、VirtualBox、Radmin、ZeroTier 等)。
4. **数据包解析**:`PacketParser` 类定义了以下 C 风格的连线格式结构体:
- IPv4 头部 (20+ 字节)
- IPv6 头部 (40 字节)
- TCP 头部 (20+ 字节)
- UDP 头部 (8 字节)
- ICMP 头部 (8 字节)
5. **进程解析**:一个后台缓存线程维护两个数据结构:
- **扩展 TCP 表**(带有 `TCP_TABLE_OWNER_PID_ALL` 的 `GetExtendedTcpTable`)——将 TCP 连接映射到 PID
- **扩展 UDP 表**(带有 `UDP_TABLE_OWNER_PID` 的 `GetExtendedUdpTable`)——将 UDP 监听器映射到 PID
- IPv4 和 IPv6 的变体都会被查询
6. **服务解析**:对于 `svchost.exe` 进程,监控器调用 `EnumServicesStatusEx()` 来识别在该 PID 下运行的特定 Windows 服务。
7. **树状模型**:自定义的 `NetworkTreeModel`(继承自 `QAbstractItemModel`)将数据组织为:
进程名称(汇总统计)
├── 连接 1 (源:端口 → 目标:端口, 协议, 速度)
├── 连接 2
└── 连接 3
8. **性能**:数据包被批量处理(每 250ms 或 3000 个数据包,以先到者为准),以最大程度地减少 GUI 线程开销。速度使用增量字节跟踪按秒计算。
#### 数据列
| # | 列名 | 描述 | 排序类型 |
|---|--------|-------------|-----------|
| 0 | 应用程序 / 协议 | 进程名称或协议名称 | 字母顺序 |
| 1 | 源地址 | 源 IP:端口 | 字母顺序 |
| 2 | 目标地址 | 目标 IP:端口 | 字母顺序 |
| 3 | 服务 | 解析的服务名称 (HTTP, DNS 等) | 字母顺序 |
| 4 | 下载速度 | 当前 RX 速度 (自动缩放) | 数值 (UserRole+5) |
| 5 | 上传速度 | 当前 TX 速度 (自动缩放) |值 (UserRole+5) |
| 6 | 总字节数 | 累计传输字节 | 数值 (UserRole+5) |
| 7 | 数据包 | 总数据包计数 | 数值 (UserRole+5) |
#### 右键菜单操作
| 操作 | 描述 | 实现 |
|--------|-------------|----------------|
| 终止进程 | 终止选定的进程 | `OpenProcess()` + `TerminateProcess()` |
| 进程属性 | 显示详细的信息对话框 | 带有图标、路径、统计信息的自定义 `QDialog` |
| 打开文件位置 | 在进程路径打开资源管理器 | 带有 `/select,` 的 `QDesktopServices::openUrl()` |
| 复制连接信息 | 将源:端口复制到剪贴板 | `QApplication::clipboard()->setText()` |
### 🛡️ 模块 2:Windows 防火墙管理器
防火墙模块提供了对 Windows 防火墙(具有高级安全性的 Windows Defender 防火墙)的直接 COM API 访问。
#### COM 架构
```
FirewallManager
├── CoInitializeEx(COINIT_APARTMENTTHREADED)
├── CoCreateInstance(NetFwPolicy2)
│ └── INetFwPolicy2 *m_fwPolicy
│ └── get_Rules()
│ └── INetFwRules *m_fwRules
│ ├── Add(INetFwRule*)
│ ├── Remove(BSTR name)
│ ├── Item(BSTR name, INetFwRule**)
│ └── get__NewEnum() → IEnumVARIANT
└── Netsh Fallback (QProcess → netsh advfirewall)
```
#### 规则创建流程
```
User selects app.exe → expandAndCleanPath() → resolveShortcut() (if .lnk)
→ makeRuleName("NetGuard_AppName_BLOCK_OUT")
→ CoCreateInstance(CLSID_NetFwRule)
→ put_Name(), put_ApplicationName(), put_Action(), put_Direction()
→ m_fwRules->Add(rule)
→ emit rulesChanged()
```
#### 白名单锁定模式
启用后,锁定模式将:
1. 强制所有配置文件开启 Windows 防火墙
2. 将域、专用和公用配置文件的默认出站操作设置为阻止
3. 遍历所有现有规则并禁用任何不以 `NetGuard_` 为前缀的出站允许规则
4. 为 `svchost.exe` 和 `System` 创建允许规则,以防止操作系统损坏
5. 使用 `netsh advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound` 作为加强措施
### 💻 模块 3:硬件系统监控器
#### 数据收集管道
```
HardwareMonitor Thread (1-second loop)
├── collectPdh() → CPU Load %, Disk Activity %
├── collectRam() → Used/Total MB, Load %
├── collectNetwork() → RX/TX bytes per second
├── queryGpuLoad() → GPU 3D engine utilization %
└── collectTemperatures()
├── Disk Temp ← MSFT_StorageReliabilityCounter (ROOT\Microsoft\Windows\Storage)
├── CPU Temp ← MSAcpi_ThermalZoneTemperature (ROOT\WMI) [Kelvin→Celsius]
│ Fallback A: ← Win32_TemperatureProbe (ROOT\CIMV2)
│ Fallback B: ← Win32_PerfFormattedData_Counters_ThermalZoneInformation
├── GPU Temp ← WMI GPU sensor queries
└── MB Temp ← Lowest ACPI thermal zone reading
```
#### WMI 命名空间
| 命名空间 | 用途 | 使用的类 |
|-----------|---------|--------------|
| `ROOT\CIMV2` | 标准硬件信息 | `Win32_PerfFormattedData_GPUPerformanceCounters_GPUEngine`, `Win32_TemperatureProbe`, `Win32_PerfFormattedData_Counters_ThermalZoneInformation` |
| `ROOT\WMI` | ACPI 热区 | `MSAcpi_ThermalZoneTemperature` |
| `ROOT\Microsoft\Windows\Storage` | 磁盘健康状态 | `MSFT_StorageReliabilityCounter` |
#### 环形仪表盘渲染
`CircularGauge` 小部件使用自定义的 `QPaintEvent` 渲染:
- **弧度角度**:270° 扫描(从 7 点钟位置到 5 点钟位置)
- **颜色逻辑**:蓝色 (#3B82F6) < 60%,琥珀色 (#F59E0B) < 85%,红色 (#EF4444) ≥ 85%
- **排版**:Segoe UI 18pt 粗体用于百分比,8pt 用于温度
- **主题感知**:使用 `QPalette::WindowText` 自动适应深色/浅色模式
### 📊 模块 4:网络使用历史记录
#### 数据流
```
NetworkTreeModel (live data)
→ MainWindow::onHistoryTick() [every 1 second]
→ Extract per-app RX/TX bytes
→ Accumulate in m_historyData[date][appName]
→ Auto-save to JSON every 60 seconds
→ UI refresh when History tab is active
```
#### JSON 结构
```
{
"2026-04-18": {
"chrome.exe": { "rx": 15728640, "tx": 2097152 },
"discord.exe": { "rx": 5242880, "tx": 1048576 }
},
"2026-04-17": {
"firefox.exe": { "rx": 31457280, "tx": 4194304 }
}
}
```
### ⚙️ 模块 5:设置与配置
| 设置项 | 存储 | 键 |
|---------|---------|-----|
| 深色/浅色主题 | QSettings (注册表) | `theme` |
| 开机启动 | 注册表 `HKCU\...\Run` | `UltimateNetGuard` |
| 启动时最小化 | QSettings | `startMinimized` |
| 启用浮窗 | QSettings | `overlayEnabled` |
| 浮窗字体大小 | QSettings | `overlayFontSize` |
| 浮窗不透明度 | QSettings | `overlayOpacity` |
| 浮窗文字颜色 | QSettings | `overlayTextColor` |
| 浮窗背景色 | QSettings | `overlayBgColor` |
### 🖥️ 模块 6:任务栏浮窗小部件
#### 窗口管理
浮窗使用了几种 Windows API 技巧以在任务栏上保持可见:
1. **窗口标志**:`Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::WindowDoesNotAcceptFocus`
2. **扩展样式**:`WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE`(防止任务栏项和焦点抢占)
3. **父级设置**:`SetWindowLongPtr(GWLP_HWNDPARENT, Shell_TrayWnd)` —— 将浮窗设为任务栏的子级
4. **Z 序**:每 500ms 调用 `SetWindowPos(HWND_TOPMOST)` 以保持可见性
5. **位置**:相对于 `TrayNotifyWnd`(系统托盘区域)计算,定位在通知区域的左侧
6. **资源管理器重启**:检测父窗口丢失并自动重新设置父级
#### 统计弹出窗口
悬停弹出窗口在 3×2 网格中显示 6 个实时指标:
| 行 | 左列 | 右列 |
|-----|-------------|--------------|
| 1 | ↓ 下载速度 | ↑ 上传速度 |
| 2 | 📥 会话总下载量 | 📤 会话总上传量 |
| 3 | 💻 CPU 负载 % | 🧠 RAM 负载 % |
### 🔔 模块 7:系统托盘图标
系统托盘图标提供:
- **动态图标**:从 `:/icons/Ultimate_NetGuard_AIO.png` 加载,备用回退 `:/icons/app.ico`
- **活动点**:在 16×16 图标的 (10,10) 处绘制一个 5×5 像素的圆圈
- 当检测到流量时为绿色 (#34D399) (rxBps > 0 || txBps > 0)
- 空闲时为灰色 (#71717A)
- **提示框**:随当前下载/上传速度更新
- **右键菜单**:显示 NetGuard / 退出 NetGuard
### 🎨 模块 8:主题系统
#### 深色主题调色板
| 元素 | 颜色 | Hex |
|---------|-------|-----|
| 背景 | Zinc 900 | `#18181B` |
| 表面 | Zinc 800 | `#27272A` |
| 边框 | Zinc 700 | `#3F3F46` |
| 主要文本 | Zinc 200 | `#E4E4E7` |
| 次要文本 | Zinc 400 | `#A1A1AA` |
| 主色 | Blue 500 | `#3B82F6` |
| 主色悬停 | Blue 400 | `#60A5FA` |
| 成功色 | Emerald 500 | `#10B981` |
| 警告色 | Amber 500 | `#F59E0B` |
| 危险色 | Red 500 | `#EF4444` |
#### 浅色主题调色板
| 元素 | 颜色 | Hex |
|---------|-------|-----|
| 背景 | Zinc 100 | `#F4F4F5` |
| 表面 | 白色 | `#FFFFFF` |
| 边框 | Zinc 300 | `#D4D4D8` |
| 主要文本 | Zinc 800 | `#27272A` |
| 主色 | Blue 600 | `#2563EB` |
| 选中色 | Blue 100 | `#DBEAFE` |
### 🔄 模块 9:自动更新器与自安装程序
#### 智能自安装程序
在首次启动时(或在 `Program Files\NetGuard` 外部运行时),应用程序将:
1. 通过 UAC **提权**至管理员
2. **复制**自身到 `C:\Program Files\NetGuard\UltimateNetGuard.exe`
3. **设置**严格的文件权限 (读/写/执行)
4. 通过 `IShellLink` COM **创建**专业的桌面快捷方式 (`NetGuard AIO.lnk`)
5. **写入** `version.dat` 以跟踪已安装的版本
6. 从安装位置**重新启动**并退出原始实例
#### 静默 OTA 更新器
启动 2 秒后,应用程序静默从 Pastebin URL 获取远程版本文件:
- **版本对比**:智能语义版本对比 (`major.minor.patch`) —— 仅在远程版本严格更高时触发
- **更新对话框**:一个无边框、可拖动、主题感知的 `QDialog` 显示新版本、更新日志,并提供“跳过”和“立即更新”按钮
- **更新流程**:将用户重定向到开发者网站上的官方下载页面
#### 单实例守护
使用 `QSharedMemory` 防止多个实例运行。如果启动了第二个实例,它会通过 `FindWindowW` 找到现有窗口并将其恢复/聚焦。
## 🔐 预置防火墙规则配置
Ultimate NetGuard AIO 附带 **6 个专业策划的防火墙规则配置**(JSON 文件),可通过“防火墙”选项卡的**导入**按钮一键导入。每个配置都是一种即用型的安全姿态:
| # | 配置名称 | 文件 | 用例 |
|---|---|---|---|
| 1 | 🏢 **全局工作空间防护** | `Global_Workspace_Shield.json` | 专业办公环境。允许浏览器、视频会议、云存储和项目管理工具。阻止未经授权的后台应用。 |
| 2 | 🚀 **终极电竞枢纽** | `Ultimate_Esports_Nexus.json` | 职业玩家与主播。通过阻止 Windows 更新和后台干扰来优先保证超低延迟。允许游戏启动器、语音聊天、流媒体工具和反作弊引擎。 |
| 3 | 💻 **开发者沙盒大师** | `Master_Developer_Sandbox.json` | 软件工程师。为 IDE (Qt Creator, VS Code, Visual Studio)、Docker、数据库工具、交易机器人和 AI 编码助手提供不受限制的访问。 |
| 4 | 🔒 **零信任隐私堡垒** | `ZeroTrust_Privacy_Citadel.json` | 最大程度的反跟踪。仅允许隐私浏览器、Tor/I2P、VPN 客户端和端到端加密消息传递。阻止其他一切。 |
| 5 | 📥 **P2P 媒体先锋** | `P2P_Media_Vanguard.json` | 下载站。专门允许下载管理器 (IDM)、所有 P2P/ Torrent 客户端和互联网流媒体播放器。 |
| 6 | 🚫 **离线隔离黑名单** | `Offline_Isolation_Blacklist.json` | 强制 Adobe、Autodesk、Corel 及类似工程/设计套件进入离线模式,以保留本地许可证并阻止遥测。 |
## 📡 支持的协议
| 协议 | 端口 | 类别 | 描述 |
|----------|------|----------|-------------|
| HTTP | 80 | Web | 超文本传输协议 |
| HTTPS | 443 | Web | HTTP over TLS/SSL |
| HTTP/2 | 8080 | Web | 备用 HTTP 端口 |
| DNS | 53 | 网络 | 域名系统 |
| DoH | 853 | 网络 | DNS over HTTPS |
| DHCP | 67, 68 | 网络 | 动态主机配置协议 |
| NTP | 123 | 网络 | 网络时间协议 |
| SSH | 22 | 远程 | 安全外壳协议 |
| FTP | 20, 21 | 文件传输 | 文件传输协议 |
| FTPS | 990 | 文件传输 | FTP over TLS |
| SFTP | 115 | 文件传输 | SSH 文件传输协议 |
| SMTP | 25, 587 | 电子邮件 | 简单邮件传输协议 |
| SMTPS | 465 | 电子邮件 | SMTP over TLS |
| IMAP | 143 | 电子邮件 | 互联网消息访问协议 |
| IMAPS | 993 | 电子邮件 | IMAP over TLS |
| POP3 | 110 | 电子邮件 | 邮局协议版本 3 |
| POP3S | 995 | 电子邮件 | POP3 over TLS |
| MySQL | 3306 | 数据库 | MySQL 数据库 |
| PostgreSQL | 5432 | 数据库 | PostgreSQL 数据库 |
| MongoDB | 27017 | 数据库 | MongoDB NoSQL 数据库 |
| Redis | 6379 | 数据库 | Redis 键值存储 |
| MSSQL | 1433 | 数据库 | Microsoft SQL Server |
| RDP | 3389 | 远程 | 远程桌面协议 |
| VNC | 5900 | 远程 | 虚拟网络计算 |
| Telnet | 23 | 远程 | Telnet 协议 |
| LDAP | 389 | 目录 | 轻量级目录访问协议 |
| LDAPS | 636 | 目录 | LDAP over TLS |
| NetBIOS | 137-139 | Windows | NetBIOS 名称/数据报/会 |
| SMB | 445 | Windows | 服务器消息块 |
| Kerberos | 88 | 认证 | Kerberos 身份验证 |
| SNMP | 161, 162 | 监控 | 简单网络管理协议 |
| Syslog | 514 | 监控 | 系统日志协议 |
| IKE | 500 | VPN | 互联网密钥交换 |
| OpenVPN | 1194 | VPN | OpenVPN 协议 |
| WireGuard | 51820 | VPN | WireGuard VPN |
| SIP | 5060, 5061 | VoIP | 会话发起协议 |
| STUN | 3478 | VoIP | NAT 的会话穿越实用程序 |
| ICMP | — | 网络 | 互联网控制消息协议 |
| ICMPv6 | — | 网络 | IPv6 的 ICMP |
| TCP | — | 传输层 | 传输控制协议 |
| UDP | — | 传输层 | 用户数据报协议 |
| IGMP | — | 多播 | 互联网组管理协议 |
| GRE | — | 隧道 | 通用路由封装 |
## 🔧 使用的 Windows API
| API | 头文件 | 用途 |
|-----|--------|---------|
| `WSASocket` / `WSAIoctl` | `winsock2.h` | 原始套接字创建和 `SIO_RCVALL` |
| `GetExtendedTcpTable` | `iphlpapi.h` | 将 TCP 连接映射到 PID |
| `GetExtendedUdpTable` | `iphlpapi.h` | 将 UDP 监听器映射到 PID |
| `GetBestInterface` | `iphlpapi.h` | 查找活动的互联网适配器 |
| `GetAdaptersAddresses` | `iphlpapi.h` | 枚举网络适配器 |
| `GetIfTable` / `GetIfEntry2` | `iphlpapi.h` | 网络接口统计信息 |
| `EnumServicesStatusEx` | `winsvc.h` | 识别 svchost.exe 服务 |
| `OpenProcess` / `TerminateProcess` | `windows.h` | 进程管理 |
| `SHGetFileInfoW` | `shellapi.h` | 提取应用程序图标 |
| `ShellExecuteExW` | `shellapi.h` | UAC 提权 |
| `CreateMutexW` | `windows.h` | 单实例强制执行 |
| `CoCreateInstance` | `objbase.h` | COM 对象实例化 |
| `INetFwPolicy2` / `INetFwRules` | `netfw.h` | Windows 防火墙 COM API |
| `IShellLinkW` | `shobjidl.h` | 快捷方式 (.lnk) 解析 |
| `ExpandEnvironmentStringsW` | `windows.h` | 环境变量展开 |
| `IWbemLocator` / `IWbemServices` | `wbemidl.h` | WMI 查询 |
| `PdhOpenQuery` / `PdhAddCounter` | `pdh.h` | 性能数据助手计数器 |
| `GlobalMemoryStatusEx` | `windows.h` | RAM 使用统计 |
| `FindWindowW` / `SetWindowPos` | `windows.h` | 任务栏浮窗定位 |
| `SetWindowLongPtr` | `windows.h` | 窗口样式修改 |
| `AdjustTokenPrivileges` | `advapi32.h` | 启用 SeDebugPrivilege |
| `IsUserAnAdmin` | `shlobj.h` | 管理员权限检查 |
## 🔒 安全与隐私
- **无遥测**:应用程序不会在本地机器之外收集、传输或存储任何用户数据
- **无互联网访问**:应用程序本身建立零出站网络连接
- **仅本地存储**:所有数据(历史记录、设置)均本地存储在 `%AppData%` 和 Windows 注册表中
- **无云服务**:没有云服务、没有账户、没有注册
- **开源**:提供完整的源代码可供审计
- **无驱动**:与竞品不同,不安装任何内核模式驱动
- **需要管理员权限**:进行原始套接字访问和防火墙管理需要管理员权限——这是 Windows 的安全要求,而非设计选择
## ⚠️ 免责声明
本软件按“原样”提供,不提供任何形式的保证。作者 对因使用本软件可能产生的任何损害、数据丢失、网络问题或系统问题**概不负责**。
**本工具旨在用于:**
- ✅ 监控您自己计算机上的网络流量
- ✅ 管理您自己的 Windows 防火墙规则
- ✅ 教育和学习目的
- ✅ 在您拥有或有权监控的系统上进行网络管理
**本工具不用于:**
- ❌ 拦截他人的网络流量
- ❌ 绕过网络安全策略
- ❌ 任何非法或未经授权的监控活动
- ❌ 任何恶意目的
**使用本软件即表示您同意:**
1. 您只会在您拥有或获得明确授权进行监控的系统上使用它
2. 您对遵守所有适用的地方、州、国家和国际法律承担全部责任
3. 作者对本工具的滥用不承担任何责任
有关完整的法律免责声明,请参阅 [DISCLAIMER.md](DISCLAIMER.md)。
## ❓ 常见问题解答
问:为什么应用程序需要管理员权限?
Windows 需要管理员权限用于: 1. **原始套接字数据包捕获**(`SIO_RCVALL`)——这是 Windows 内核级别的限制 2. **Windows 防火墙管理** —— 修改防火墙规则需要提权 3. **进程信息访问** —— 读取有关系统进程的信息需要 `SeDebugPrivilege` 这不是设计选择,而是 Windows 安全要求。问:这是病毒或恶意软件吗?
**绝对不是。** 源代码 100% 开放,可供审查。某些杀毒软件可能会标记它,因为: 1. 它使用原始套接字(网络扫描工具也使用的技术) 2. 它修改 Windows 防火墙规则 3. 它将自身注入为启动程序 这些对于网络监控工具来说都是合法的功能。您可以自行从源代码构建应用程序以进行验证。问:为什么我的杀毒软件会标记这个?
误报在网络监控工具中很常见,因为它们使用的 API 也被恶意软件使用(原始套接字、防火墙修改、进程枚举)。您可以: 1. 审查源代码 2. 自行从源代码构建 3. 在杀毒软件中添加例外 4. 将二进制文件提交给您的杀毒软件供应商进行重新分析问:这能捕获 HTTPS 内容吗?
**不能。** 此工具在 IP 层捕获网络数据包,这意味着它能看到: - 源和目标 IP 地址 - 源和目标端口 - 协议类型 - 数据包大小 它**无法**看到 HTTPS 流量的加密内容。它只能看到流量正发往/来自端口 443 上的特定 IP。问:我可以在不拥有的网络上使用它吗?
**仅在获得明确授权的情况下。** 此工具旨在监控您自己机器的流量。在未经授权的情况下使用它监控网络或机器上的流量可能违反当地法律。问:为什么我的 CPU 没有温度读数?
通过 WMI 获取 CPU 温度取决于 BIOS/UEFI 的支持。许多现代主板不通过 `MSAcpi_ThermalZoneTemperature` WMI 类公开温度数据。应用程序具有 3 种备用机制,但如果都不起作用,它将显示“N/A”。要获取准确的温度读数,请考虑在此工具旁边使用特定于硬件的工具,如 HWiNFO 或 Core Temp。
如果您觉得我的工具和项目有用,请考虑支持我的工作。您的支持有助于保持这些项目完全免费!
| 加密资产 | 网络 | 钱包地址 (复制) | 快速扫码 |
| :--- | :--- | :--- | :---: |
|  | **TRC20** | `TYLBeDA5aGNcc3WkVqf3xWPHXmsZzs2p28` |
|
|  | **BEP20** | `0x67cf27f33c80479ea96372810f9e2ee4c3b095c5` |
|
|  | **Bitcoin** | `bc1q97dr37h37npzarmmrv0tjz2nm50htqc7pfpzj6` |
|
|  | **ERC20** | `0x67cf27f33c80479ea96372810F9e2EE4C3b095C5` |
|
|  | **Solana** | `Cbesgr4tvo4T1inNMFe46GSym2qMYjkmofbXFc77rDNK` |
|
|  | **ERC20** | `0x67cf27f33c80479ea96372810f9e2ee4c3b095c5` |
|
|  | **SPL** | `Cbesgr4tvo4T1inNMFe46GSym2qMYjkmofbXFc77rDNK` |
|
|  | **BEP20** | `0x67cf27f33c80479ea96372810F9e2EE4C3b095C5` |
|
## 👨💻 作者
**Ali Sakkaf**
[](https://alisakkaf.com)
[](https://www.facebook.com/AliSakkaf.Dev/)
[](https://github.com/alisakkaf)
**© 2026 Ali Sakkaf. 保留所有权利。**
用 ❤️ 制作
⭐ **如果你喜欢这个项目,请给它一颗星!** ⭐
标签:C++14, certspotter, COM API, Gophish, IPv4, IPv4/IPv6双栈, IPv6, PowerShell, Qt5, Windows桌面应用, Windows防火墙, 任务栏悬浮窗, 安全防护, 实时抓包, 开源, 流量监控, 硬件监控, 系统信息, 网络安全, 网络流量分析, 进程级网络追踪, 防御绕过, 防火墙管理, 隐私保护, 零依赖