关于 pcapport
pcapport 是面向网络运维人员和开发者的本地 PCAP 分析器,可汇总协议流量与 TCP 状况,无需联网或实时抓包。它读取经典 libpcap 文件,并提供 MCP 工具和命令行界面。
主要功能
- 01DNS、DHCP、ICMP 和 SIP 汇总
- 02TCP 连接与异常分析
- 03重传和流量方向分析
- 04抓包元数据与数据包统计
- 05离线处理本地文件
适用场景
- 01检查抓包中的 DNS 和 DHCP 活动
- 02排查 TCP 重置、半开连接和重传
- 03统计指定服务器的双向流量
- 04查看抓包时长、大小和封装类型
MCP 相关
它以 stdio MCP 服务运行,提供九种用于分析 PCAP 文件的工具,涵盖 DNS、DHCP、ICMP、TCP、SIP、流量和抓包信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
9收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| pcap_file | string | 是 | 要读取的数据包捕获文件路径。 |
详细介绍
pcapport
pcapport 会完全在你自己的机器上分析 PCAP 捕获文件。 指定一个经典 libpcap 文件,它就会汇总其中的内容: DNS 查询和响应码、DHCP 消息类型以及涉及的服务器和客户端、 ICMP 流量、带状态估算的 TCP 连接、TCP 异常和重传、与某台 服务器之间的流量、SIP 呼叫,以及数据包数量、持续时间和封装 等基本捕获信息。
它不会访问网络,不需要 API 密钥,也不会进行实时捕获:此 工具只会读取你指定的捕获文件。解析器是一个原创的精简实现, 支持 Ethernet(包括单个 VLAN 标签)和承载 IPv4 的原始 IP 捕获,并可解码 TCP、UDP 和 ICMP,以及解析 DNS、DHCP 和 SIP 负载。
安装
npx @reneturcios/pcapport analyze_capinfos '{"pcap_file":"capture.pcap"}'
或者运行容器镜像:
docker run -i ghcr.io/cloudcorprecords/pcapport
容器默认启动 MCP 服务。传入 CLI 参数即可将其用作 CLI。
CLI
CLI 与工具一一对应:每个工具有一个子命令,参数以单个 JSON 对象的形式传入。
pcapport analyze_capinfos '{"pcap_file":"capture.pcap"}'
pcapport analyze_dns_packets '{"pcap_file":"capture.pcap"}'
pcapport analyze_tcp_connections '{"pcap_file":"capture.pcap","detailed":true}'
pcapport analyze_tcp_retransmissions '{"pcap_file":"capture.pcap","threshold":0.05}'
pcapport analyze_traffic_flow '{"pcap_file":"capture.pcap","server_ip":"10.0.0.5","server_port":80}'
pcapport --version
退出码:成功时为 0,出错时为 1(错误信息会说明问题,
例如 PCAP 魔数错误或文件被截断),用法错误时为 2。空捕获
不算错误:工具会返回各项均为零的汇总结果。
MCP 服务
一个可执行文件提供两种用法。mcp 子命令会启动 stdio MCP
服务:
npx -y @reneturcios/pcapport mcp
MCP 客户端配置:
{
"mcpServers": {
"pcapport": {
"command": "npx",
"args": ["-y", "@reneturcios/pcapport", "mcp"]
}
}
}
工具
| 工具 | 输入 | 功能 |
|---|---|---|
analyze_dns_packets | pcap_file(必需) | DNS 查询/响应数量、热门查询(聚合后前 20 项)以及响应码汇总。 |
analyze_dhcp_packets | pcap_file(必需) | 按消息类型统计 DHCP 数据包数量(discover、offer、request、ack 等)、服务器 IP 和客户端 MAC。 |
analyze_icmp_packets | pcap_file(必需) | 按类型统计 ICMP 数量、回显请求/响应、不可达数量以及最活跃的通信方。 |
analyze_tcp_connections | pcap_file(必需)、server_ip、server_port、detailed | 按标准化的 4 元组对连接进行归类,并提供客户端/服务器、数据包数、字节数、SYN/FIN/RST 数量以及状态估算(已建立、已关闭、已重置、半开)。启用 detailed 后,还会包含每个连接的时间戳摘要。 |
analyze_tcp_anomalies | pcap_file(必需)、server_ip、server_port | 统计重置连接、半开连接(有 SYN 但没有 SYN-ACK)、无数据连接和零窗口通告的数量,根据标志位和窗口字段计算。 |
analyze_tcp_retransmissions | pcap_file(必需)、server_ip、threshold(默认值 0.02) | 重传指重复出现的(元组、序列号、负载长度)数据段。报告数据段数量、重传数量、重传率、是否超过阈值以及重传最严重的连接。 |
analyze_traffic_flow | pcap_file(必需)、server_ip(必需)、server_port | 统计与服务器之间传输的数据包和字节数、唯一客户端数量以及按字节数排名的热门客户端。 |
analyze_sip_packets | pcap_file(必需) | 按方法统计 SIP 请求,按状态类别统计响应,以及统计呼叫(Call-ID、From、To)。会处理端口 5060 上的负载,以及任何以 SIP 方法或 SIP/2.0 开头的负载。 |
analyze_capinfos | pcap_file(必需) | 数据包数量、持续时间、数据字节数、平均数据包大小、首末数据包时间、封装方式和捕获长度。 |
支持范围和限制
解析器仅支持经典 libpcap(大端/小端、微秒和纳秒时间戳), 不支持 pcapng。仅解码 IPv4;IPv6 和其他 ethertype 会计入数据包 总数,但不会进行分析。不会进行 TCP 流重组,因此 SIP over TCP 会按数据段匹配,TLS 负载则视为不透明数据。异常和状态判断 采用有意简化的近似方法,不能替代完整的 tshark 级分析。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, synthetic captures only, no network
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。