Skip to content

freadzhou/NetSentry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetSentry 📡

网络安全监控工具 - 轻量级进程网络活动监控

Version Platform Python

fread_logo

✨ 功能特性

核心功能

  • 🔍 网络连接监控 - 实时查看所有进程的TCP/UDP连接
  • 📊 流量统计 - 系统级上传/下载速率显示
  • 🔎 进程搜索 - 按进程名或PID快速查找
  • 🎨 双主题支持 - 暗色/亮色主题一键切换

安全功能

  • 🛡️ 风险判断 - 自动识别可疑进程和恶意连接
  • 📋 威胁库更新 - 在线拉取最新威胁情报
  • ⚠️ 风险等级 - 正常/低风险/中风险/高风险/威胁

界面特性

  • 💻 悬浮窗设计 - 简洁时尚,不干扰工作
  • 🧲 磁吸隐藏 - 拖到屏幕边缘自动隐藏
  • 📱 可调整大小 - 拖拽边缘调整窗口尺寸

📥 安装使用

方式一:Windows 直接运行EXE(推荐)

  1. Releases 下载最新版本
  2. 解压发布包
  3. 确保 config 文件夹与 NetSentry.exe 在同一目录
  4. 双击 NetSentry.exe 运行
NetSentry/
├── NetSentry.exe
└── config/
    └── threats/
        └── threat_db.json

方式二:从源码运行(Windows / Linux / macOS)

前置要求

  • Python 3.10 或更高版本
  • uv 包管理器

安装 uv

Windows (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Linux / macOS:

curl -LsSf https://astral.sh/uv/install.sh | sh

运行程序

# 克隆仓库
git clone https://github.com/freadz/NetSentry.git
cd NetSentry

# 安装依赖并运行(uv 会自动处理所有依赖)
uv run python run.py

Linux 特别说明

Linux 上主题切换按钮显示文字(Dark/Light)而非 emoji,这是为了兼容性。

方式三:打包为可执行文件

Windows 打包

cd NetSentry
uv run python build_exe.py

生成的 NetSentry.exe 位于 dist/ 目录下。

Linux 打包

cd NetSentry

# 安装依赖
uv sync

# 打包(需要安装 PyInstaller)
uv run pyinstaller run.py \
    --name=NetSentry \
    --onefile \
    --windowed \
    --clean \
    --noconfirm \
    --hidden-import=PyQt6 \
    --hidden-import=psutil \
    --collect-all=PyQt6

# 生成的可执行文件在 dist/ 目录

注意:Linux 打包需要系统已安装相关图形库(如 PyQt6 的依赖)。


🎮 使用说明

基本操作

操作 方法
移动窗口 拖拽标题栏
调整大小 拖拽窗口边缘
切换主题 点击 🌙/☀️ 按钮
更新威胁库 点击 "🛡 更新" 按钮
退出程序 右键标题栏 → 退出

界面布局

┌────────────────────────────────────────────┐
│ 📡 NetSentry - Designed by Fread.Z         │
│            [更新] [⏱2s] [排序] [🌙]         │
├────────────────────────────────────────────┤
│ 🔍 搜索进程名或PID...                    ✕   │
├────────────────────────────────────────────┤
│ ↑ 上传    ↓ 下载    活动进程    威胁库         │
│ 12 KB/s   45 KB/s   5          2026-03-24  │
├────────────────────────────────────────────┤
│ 🌐 chrome.exe              [正常] [3] ▼     │
│ 📦 unknown.exe             [低风险] [1] ▼   │
│ ⚙️ xmrig.exe               [威胁] [2] ▼     │
└────────────────────────────────────────────┘

🛡️ 威胁库说明

风险等级

等级 颜色 说明
正常 🟢 绿色 已知安全进程
低风险 🟡 黄色 未知进程
中风险 🟠 橙色 可疑行为
高风险 🔴 红色 连接可疑端口
威胁 🟣 紫色 已知恶意软件/恶意IP

判断依据

判断项 数据来源
恶意IP 在线拉取(约3万条)
进程可信度 内置规则(高信任/低信任分级)
端口风险 内置规则(危险/可疑/正常分级)
IP类型 实时判断(本地/内网/公网)

📡 威胁库更新源

自动拉取源(按优先级)

优先级 来源 URL
1 Emerging Threats rules.emergingthreats.net/blocklists/...
2 FireHol Level1 raw.githubusercontent.com/firehol/...
3 FireHol CDN镜像 cdn.jsdelivr.net/gh/firehol/...
4 Blocklist.de lists.blocklist.de/lists/all.txt

更新机制

点击"更新" → 按优先级尝试各源 → 解析IP列表 → 去重替换 → 保存到本地

注意:采用替换式更新,与远程源保持同步,防止本地文件无限膨胀。

数据说明

  • 拉取内容:恶意IP地址列表(约3万条)
  • 更新频率:建议每周更新一次
  • 数据来源:全球威胁情报社区

📁 配置文件

文件位置

config/
├── threats/
│   └── threat_db.json    # 威胁库
└── settings.json         # 用户设置(自动生成)

threat_db.json 结构

{
  "version": "2026-03-26",
  "source": "FireHol Level1, Blocklist.de...",
  "malicious_ips": ["1.2.3.4", ...],     // 恶意IP列表
  "process_trust": {                       // 进程可信度分级
    "high": ["chrome.exe", "msedge.exe", ...],  // 高信任进程
    "low": ["xmrig.exe", "nc.exe", ...]         // 低信任进程
  },
  "port_risk": {                           // 端口风险分级
    "dangerous": [4444, 5555, ...],        // 危险端口
    "suspicious": [7897, 1080, ...],       // 可疑端口
    "normal": [80, 443, ...]               // 正常端口
  },
  "suspicious_connections": {              // 可疑连接类型
    "tor_nodes": [9001, 9050, ...],
    "miner_pools": [3333, 4444, ...]
  }
}

风险判断逻辑

进程综合风险 = max(进程本身风险, 所有连接的最高风险)

判断因素:

  1. 进程可信度:高信任(正常) / 未知(低风险) / 低信任(高风险)
  2. IP类型:本地(正常) / 内网(需结合其他因素) / 公网(需结合其他因素)
  3. 端口风险:正常端口 / 可疑端口 / 危险端口
  4. 恶意IP:直接判定为威胁

⚙️ 高级设置

刷新间隔调整

点击 ⏱ 2s 按钮,可选择 0.5s ~ 5s 刷新间隔

排序方式

点击 排序 按钮,可选择:

  • 按连接数排序
  • 按进程名排序
  • 按PID排序

🔧 开发相关

技术栈

组件 技术
UI框架 PyQt6
网络监控 psutil
打包工具 PyInstaller

项目结构

NetSentry/
├── main.py              # 主入口
├── run.py               # 启动脚本
├── build_exe.py         # 打包脚本
├── pyproject.toml       # 项目配置
├── core/
│   ├── monitor.py       # 网络监控核心
│   └── threats/         # 威胁检测模块
├── ui/
│   ├── main_window.py   # 主窗口
│   └── styles.py        # 样式定义
├── utils/
│   ├── formatters.py    # 格式化工具
│   └── geoip.py         # 端口服务识别
└── config/
    └── threats/         # 威胁库配置

📋 更新日志

v1.7.2 (2026-03-27)

  • ✅ 更新 pyproject.toml,添加项目元数据
  • ✅ 更新 README,细化安装和运行说明
  • ✅ 添加 Linux 打包说明

v1.7.1 (2026-03-26)

  • ✅ 修复 Windows 上拖动窗口导致程序闪退的问题
  • ✅ 优化跨平台代码结构,确保 Windows 使用原有逻辑

v1.7.0 (2026-03-26)

  • ✅ Linux 平台兼容性修复
    • 使用系统级窗口移动/调整大小 API(解决 GNOME 下无法拖动窗口的问题)
    • 主题切换按钮在 Linux 上显示文字而非 emoji(解决图标不显示的问题)

📄 许可证

MIT License

👤 作者

Fread.Z © 2026

About

轻量级进程网络活动监控

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages