一款为 macOS 设计的现代网络数据包捕获和分析工具,提供了一个轻量级的 Wireshark 替代品,具有基于 Web 的界面。
MacTshark 是一款为 macOS 设计的网络数据包捕获和分析工具。它由两个主要组件组成:
-
MacTsharkServer:一个 C++ 后端服务器,使用 tshark(Wireshark 的命令行工具)捕获和处理网络数据包,通过 HTTP API 端点以 JSON 格式提供数据。
-
MacTsharkWeb:一个基于 React 的 Web 前端,提供与服务器交互的用户界面,可视化网络数据并分析数据包信息。
- 网络数据包捕获和分析
- 会话跟踪和分析
- 协议统计
- IP 地理位置信息
- 实时网络适配器监控
- 数据包详细检查与十六进制数据查看器
- 支持离线 PCAP 文件分析和实时捕获
- macOS 操作系统
- 已安装 Wireshark(用于 tshark)
- C++14 兼容编译器
- CMake 3.31 或更高版本
- Node.js 和 npm(用于 Web 界面)
- 为 macOS 安装 Wireshark
- 克隆此仓库
- 构建服务器:
cd MacTsharkServer
mkdir -p build
cd build
cmake ..
make- 导航到 Web 应用程序目录:
cd mactsharkweb- 安装依赖:
npm install- 生产环境构建:
npm run build- 启动后端服务器:
cd MacTsharkServer/build
./MacTsharkServer- 在开发模式下启动 Web 界面:
cd mactsharkweb
npm startcd mactsharkweb
npm run electron./start_mactshark_macos.shMacTsharkServer 提供以下 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 提供的底层数据包捕获功能
- 本项目中使用的所有开源库