Skip to content

Latest commit

 

History

History
160 lines (110 loc) · 3.51 KB

File metadata and controls

160 lines (110 loc) · 3.51 KB

MacTshark

MacTshark 标志

一款为 macOS 设计的现代网络数据包捕获和分析工具,提供了一个轻量级的 Wireshark 替代品,具有基于 Web 的界面。

概述

MacTshark 是一款为 macOS 设计的网络数据包捕获和分析工具。它由两个主要组件组成:

  1. MacTsharkServer:一个 C++ 后端服务器,使用 tshark(Wireshark 的命令行工具)捕获和处理网络数据包,通过 HTTP API 端点以 JSON 格式提供数据。

  2. MacTsharkWeb:一个基于 React 的 Web 前端,提供与服务器交互的用户界面,可视化网络数据并分析数据包信息。

功能特点

  • 网络数据包捕获和分析
  • 会话跟踪和分析
  • 协议统计
  • IP 地理位置信息
  • 实时网络适配器监控
  • 数据包详细检查与十六进制数据查看器
  • 支持离线 PCAP 文件分析和实时捕获

截图

仪表盘 数据包分析

系统要求

  • macOS 操作系统
  • 已安装 Wireshark(用于 tshark)
  • C++14 兼容编译器
  • CMake 3.31 或更高版本
  • Node.js 和 npm(用于 Web 界面)

安装

后端 (MacTsharkServer)

  1. 为 macOS 安装 Wireshark
  2. 克隆此仓库
  3. 构建服务器:
cd MacTsharkServer
mkdir -p build
cd build
cmake ..
make

前端 (MacTsharkWeb)

  1. 导航到 Web 应用程序目录:
cd mactsharkweb
  1. 安装依赖:
npm install
  1. 生产环境构建:
npm run build

使用方法

作为独立组件运行

  1. 启动后端服务器:
cd MacTsharkServer/build
./MacTsharkServer
  1. 在开发模式下启动 Web 界面:
cd mactsharkweb
npm start

作为 Electron 应用运行

cd mactsharkweb
npm run electron

快速启动(macOS)

./start_mactshark_macos.sh

API 端点

MacTsharkServer 提供以下 API 端点:

  • GET /api/getPacketDetail?frameNumber=1 - 获取数据包详情
  • POST /api/analysisFile - 分析 PCAP 文件
  • GET /api/getWorkStatus - 获取工作状态
  • POST /api/startCapture - 开始数据包捕获
  • POST /api/stopCapture - 停止数据包捕获
  • GET /api/getSessions?page=1&pageSize=10 - 获取会话列表
  • GET /api/getSessionDetail?sessionId=1 - 获取会话详情
  • GET /api/getIPStatsList?page=1&pageSize=10 - 获取 IP 统计
  • GET /api/getProtoStatsList?page=1&pageSize=10 - 获取协议统计
  • GET /api/getCountryStatsList?page=1&pageSize=10 - 获取国家统计

项目结构

该仓库分为几个关键目录:

  • MacTsharkServer/: C++ 后端服务器
  • mactsharkweb/: React/TypeScript 前端应用程序
  • lessons/: 按课程编号组织的教育内容和示例
  • build/: 构建产物(自动生成)

有关项目结构的更详细信息,请参阅结构文档

技术栈

后端

  • C++14
  • CMake
  • SQLite3
  • cpp-httplib
  • RapidJSON, RapidXML
  • Loguru, IP2Region

前端

  • React 18 与 TypeScript
  • Electron
  • Arco Design UI 组件
  • ECharts 数据可视化

有关技术栈的更详细信息,请参阅技术文档

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

致谢

  • Wireshark 和 tshark 提供的底层数据包捕获功能
  • 本项目中使用的所有开源库