# network_toolkit **Repository Path**: adif0028/network_toolkit ## Basic Information - **Project Name**: network_toolkit - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-14 - **Last Updated**: 2026-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Network Toolkit - 网络诊断工具 > 一个跨平台的网络连通性检测、抓包分析与 DNS 跳转追踪工具。 ## 功能特性 - **连通性检测**:Ping、TCP 端口测试、DNS 解析、DNS 跳转链追踪、端口扫描、路由追踪 - **网络抓包**:支持 Scapy、tcpdump(Linux)、eBPF(Linux)多种抓包后端,支持指定网卡和 BPF 过滤 - **实时流量监控**:实时显示网络流量统计、协议分布、Top Talkers - **自动分析**:协议统计、延迟分析(TCP 握手 / DNS 响应)、流量汇总、DNS 包分析 - **异常检测**:TCP 重传检测、端口扫描检测、连接风暴、DNS 异常 / 隧道检测 - **报告生成**:支持 JSON、文本、HTML 格式输出(HTML 含可视化图表) - **跨平台支持**:Windows / Linux / 容器环境自动适配 --- ## 安装说明 ### 1. 克隆/进入项目目录 ```bash cd network_toolkit ``` ### 2. 安装 Python 依赖 ```bash pip install -r requirements.txt ``` ### 3. 系统依赖(可选) | 平台 | 依赖 | 说明 | |------|------|------| | Windows | [Npcap](https://npcap.com/) | 抓包必需(管理员权限) | | Linux | tcpdump / tshark | 高性能抓包 | | Linux | bcc-tools | eBPF 抓包(内核 >= 4.9,root 权限) | --- ## 快速开始 ```bash # 查看环境信息 python main.py --env # 列出可用网卡 python main.py --list-interfaces # Ping 测试 python main.py --ping 192.168.1.1 # DNS 跳转追踪 python main.py --dns-trace www.baidu.com # 指定网卡抓包 10 秒 python main.py --capture --interface "WLAN" --duration 10 --output capture.pcap # 分析抓包文件并生成 HTML 报告 python main.py --analyze capture.pcap --report report.html ``` --- ## 详细使用示例 ### 一、连通性测试 #### 1. Ping 测试 ```bash python main.py --ping 127.0.0.1 --ping-count 4 ``` #### 2. TCP 端口测试 ```bash python main.py --tcp 192.168.1.1:443 ``` #### 3. DNS 解析 ```bash python main.py --dns www.example.com ``` #### 4. DNS 跳转链追踪 ```bash python main.py --dns-trace www.baidu.com ``` 输出示例: ``` DNS 解析链: www.baidu.com └─ CNAME (2.0ms) -> www.a.shifen.com. └─ A (3.0ms) -> 183.2.172.177, 183.2.172.17 总解析延迟: 5.0ms 最终 IP: ['183.2.172.177', '183.2.172.17'] ``` #### 5. 端口扫描 ```bash # 扫描常用端口 python main.py --scan 192.168.1.1 --ports 22,80,443,3306 # 使用预设模板 python main.py --scan 192.168.1.1 --ports web ``` #### 6. 路由追踪 ```bash python main.py --traceroute www.baidu.com --max-hops 20 ``` --- ### 二、网络抓包 #### 1. Scapy 抓包(默认,全平台) ```bash python main.py --capture --interface "WLAN" --duration 30 --output http.pcap --filter "tcp port 80" ``` #### 2. tcpdump 抓包(Linux) ```bash python main.py --capture --method tcpdump --interface eth0 --duration 60 ``` #### 3. eBPF 抓包(Linux,root) ```bash sudo python main.py --capture --method ebpf --interface eth0 --duration 10 ``` **常用 BPF 过滤表达式:** - `tcp port 80` — 只抓 TCP 80 端口 - `host 192.168.1.100` — 只抓指定 IP - `tcp port 443 and host 10.0.0.1` — 组合过滤 - `udp port 53` — 抓取 DNS 流量 --- ### 三、实时流量监控 实时监控当前网卡流量,每 2 秒刷新一次统计: ```bash python main.py --live-traffic --interface "WLAN" --duration 30 ``` 输出示例: ``` [实时流量] 包数: 183 | 字节: 53437 协议: UDP: 88 | TCP: 64 | OTHER: 31 Top IPs: 10.10.92.126(64), 239.255.255.250(38), 61.142.57.5(31) Top Ports: 5353(52), 1900(37), 2117(31) ``` 按 `Ctrl+C` 可提前结束监控。 --- ### 四、抓包分析 ```bash python main.py --analyze capture.pcap ``` 分析模块会自动输出: - **协议统计**:TCP / UDP / ICMP / ARP 分布 - **流量汇总**:总包数、总字节、Top Talkers、Top Ports - **DNS 分析**:查询/响应统计、CNAME 链重构 - **延迟分析**:TCP 握手延迟、DNS 响应延迟 - **异常检测**:重传、端口扫描、连接风暴、DNS 隧道 --- ### 五、报告生成 支持通过 `--report` 自动生成报告: ```bash # JSON 报告 python main.py --ping 127.0.0.1 --report report.json # 文本报告 python main.py --analyze capture.pcap --report report.txt # HTML 报告(含可视化图表) python main.py --analyze capture.pcap --report report.html ``` --- ### 六、综合诊断流程 一次性执行多项检测并生成完整报告: ```bash python main.py \ --ping 192.168.1.1 \ --dns-trace www.baidu.com \ --traceroute www.baidu.com --max-hops 10 \ --capture --interface "WLAN" --duration 10 --output diag.pcap \ --analyze diag.pcap \ --report full_report.html ``` --- ## 命令行参数速查 ``` 环境信息: --env 显示环境信息 --list-interfaces 列出所有可用网卡 连通性测试: --ping HOST Ping 目标主机 --tcp HOST:PORT TCP 连接测试 --dns DOMAIN DNS 解析测试 --dns-trace DOMAIN DNS 跳转链追踪 --scan HOST 端口扫描 --ports PORTS 端口列表或模板 (web/database/ssh/all) --traceroute HOST 路由追踪 --max-hops N 最大跳数 (默认: 30) --ping-count N Ping 发包数 (默认: 4) 抓包与监控: --capture 启动抓包 --live-traffic 启动实时流量监控 --interface IFACE 指定网卡 (默认: auto) --method METHOD 抓包方法: auto/scapy/tcpdump/ebpf (默认: auto) --duration SEC 抓包/监控时长 (默认: 10) --filter EXPR BPF 过滤表达式 --max-packets N 最大抓包数量 (默认: 1000) --output FILE 抓包输出文件 (.pcap) 分析: --analyze PCAP 分析 pcap 文件 --report FILE 报告输出文件 (.json/.txt/.html) 其他: --timeout SEC 超时时间 (默认: 5) --verbose 详细输出 --config CONFIG 配置文件路径 ``` --- ## 跨平台注意事项 | 功能 | Windows | Linux | 容器 | 备注 | |------|---------|-------|------|------| | Scapy 抓包 | ✅ | ✅ | ⚠️ | 容器需 `--cap-add=NET_ADMIN` | | tcpdump | ❌ | ✅ | ⚠️ | 需要特权模式 | | eBPF | ❌ | ✅ | ❌ | 内核 >= 4.9,root | | 实时流量监控 | ✅ | ✅ | ⚠️ | 依赖 Scapy | | 网卡枚举 | ✅ | ✅ | ✅ | 容器信息可能不完整 | | Ping | ✅ | ✅ | ✅ | Windows 建议管理员权限 | --- ## 运行测试 项目包含完整的自测用例: ```bash cd tests python test_all.py ``` 测试覆盖: - 平台检测与环境适配 - 配置解析 - 连通性检测(Ping / TCP / DNS / 端口扫描) - 网卡管理 - 抓包模块 - 分析模块(协议 / DNS / 延迟 / 流量 / 异常) - 报告生成(JSON / 文本 / HTML) - CLI 集成测试 --- ## 项目结构 ``` network_toolkit/ ├── main.py # CLI 入口 ├── requirements.txt # 依赖清单 ├── core/ # 核心模块 ├── connectivity/ # 连通性检测 ├── capture/ # 抓包与网卡管理 ├── analysis/ # 数据分析 ├── report/ # 报告生成 ├── platforms/ # 跨平台适配层 ├── tests/ # 测试用例 └── output/ # 默认输出目录 ```