Netventory 网络扫描工具技术分析
一、新闻概述
1. 标题
Netventory:快速单二进制网络扫描工具,支持 TUI 和 WebUI 双界面
2. 发布时间
2025 年 1 月(当前版本 v0.3.0n)
3. 来源
GitHub 开源项目
4. 作者
RamboRogers
二、核心内容
1. 事件摘要
A. 主要内容
Netventory 是一个用 Go 语言编写的快速网络发现工具,提供终端 TUI 和 Web 两种用户界面,无需 root 权限即可运行。
B. 核心亮点
- 单二进制可执行文件,无需额外依赖
- 跨平台支持 Linux、macOS 和 Windows
- 双界面设计:终端 TUI 和 WebUI
- 高并发扫描架构,性能优异
- 多协议主机名解析
- MAC 地址厂商识别
2. 关键信息
A. 版本号
当前版本:v0.3.0n
B. 技术栈
- 语言:Go 1.21+(GPLv3 开源许可)
- 架构:并发扫描 + Worker Pool
C. 涉及技术
- 网络扫描、端口检测
- NetBIOS、SMB、RDP、mDNS 协议解析
- WebSocket 实时通信
- Token 认证机制
3. 背景介绍
A. 项目定位
网络发现和网络审计工具,替代传统的 nmap 等复杂工具,提供更友好的用户界面。
B. 相关上下文
网络扫描工具通常分为命令行工具(如 nmap)和图形化工具(如 Angry IP Scanner),Netventory 结合了两者的优势。
三、详细报道
1. 主要功能
A. 网络发现
- 快速网络扫描,可配置 Worker 数量
- 自动检测网络接口和计算 CIDR 范围
- MAC 地址解析和厂商查找
- 端口扫描(22、80、443、445、139、135、8080、3389、5900、8006)
- 无需 root 权限
B. 高级主机名解析
Netventory v0.3.0n 引入了多层主机名解析策略:
graph TD
A[目标设备] --> B{DNS 解析}
B -->|成功| F[主机名]
B -->|失败| C{NetBIOS}
C -->|成功| F
C -->|失败| D{SMB 主机名}
D -->|成功| F
D -->|失败| E{RDP 证书}
E -->|成功| F
E -->|失败| G{mDNS/Bonjour}
G -->|成功| F
G -->|失败| H[使用 IP 地址]C. 设备类型检测
- Apple 设备:通过厂商 OUI、端口开放情况和 mDNS 发现
- Windows 设备:通过 SMB 和 NetBIOS 检测
- Proxmox 虚拟化平台:检测 8006 端口
D. 协议增强
- SMB:支持来宾账户、匿名访问回退、共享枚举
- RDP:TLS 证书解析,提取 CN 和 SAN
- mDNS:服务类型发现、Apple 专用服务检测
2. 技术架构
A. 系统组成
graph TB
subgraph 用户界面层
TUI[终端 TUI]
WEB[Web UI]
end
subgraph 业务逻辑层
SCAN[扫描引擎]
RESOLVE[主机名解析器]
DETECT[设备检测器]
end
subgraph 协议层
DNS[DNS 客户端]
NETBIOS[NetBIOS]
SMB[SMB 客户端]
RDP[RDP 证书解析]
MDNS[mDNS 客户端]
end
subgraph 网络层
WORKER[Worker Pool]
ICMP[ICMP Ping]
TCP[TCP 端口扫描]
end
TUI --> SCAN
WEB -->|WebSocket| SCAN
SCAN --> WORKER
WORKER --> ICMP
WORKER --> TCP
RESOLVE --> DNS
RESOLVE --> NETBIOS
RESOLVE --> SMB
RESOLVE --> RDP
RESOLVE --> MDNS
SCAN --> RESOLVE
SCAN --> DETECT
DETECT --> SMB
DETECT --> MDNSB. 并发扫描模型
sequenceDiagram
participant M as 主控制器
participant W as Worker Pool
participant T as 目标设备
M->>W: 分配 IP 段
par 并发扫描
W->>T: ICMP Ping
W->>T: TCP 端口检测
end
T-->>W: 返回在线状态
W->>W: 端口扫描
W->>W: MAC 地址解析
W-->>M: 设备信息
M->>M: 主机名解析
M->>M: 设备类型判断C. Web 架构
graph LR
C[客户端浏览器] -->|HTTP + WebSocket| S[Web 服务器]
S -->|Token 验证| A[认证中间件]
A -->|通过| S
S -->|扫描请求| E[扫描引擎]
E -->|实时更新| S
S -->|WebSocket 推送| C3. 技术细节
A. 性能指标
- 默认 Worker 数量:50
- 可配置 Worker 范围:用户自定义
- 扫描速度:高并发非阻塞设计
- 内存占用:优化的设备追踪
B. 安全设计
- Token 认证:WebUI 访问需要唯一 Token
- 不收集敏感数据
- 隐私优先设计
- 无需 root 权限
C. 兼容性
- Linux
- macOS
- Windows(PowerShell 安装脚本)
四、影响分析
1. 行业影响
A. 竞争格局
- 与 nmap 相比:更友好的界面,更简单的使用
- 与 Angry IP Scanner 相比:跨平台、命令行和 Web 双界面
- 与 masscan 相比:更侧重设备发现而非速度
B. 技术趋势
- 单二进制部署趋势
- TUI 和 WebUI 融合
- 零依赖部署模式
2. 用户影响
A. 目标用户
- 网络管理员
- 安全研究人员
- IT 运维人员
- 网络爱好者
B. 应用场景
- 网络审计:快速发现网络设备
- 安全评估:端口和服务枚举
- 网络管理:设备清单和追踪
- 故障排查:网络连接验证
3. 技术优势
A. 相比传统工具
- 无需复杂参数配置
- 实时可视化反馈
- 跨平台一致性体验
- 丰富的设备信息
B. 创新点
- 多协议主机名解析回退机制
- 设备类型智能识别
- WebSocket 实时更新
- 单二进制零依赖
五、各方反应
1. 项目特点
- GitHub Stars:持续增长中
- 开源许可:GPLv3
- 社区活跃:持续迭代更新
2. 技术评价
A. 优点
- 界面美观,交互友好
- 性能优秀,扫描快速
- 功能全面,协议丰富
- 部署简单,单文件运行
B. 限制
- 相比 nmap 功能较简单
- 不支持自定义脚本
- 高级扫描选项较少
六、使用指南
1. 安装方式
Mac 和 Linux
curl -L https://raw.githubusercontent.com/RamboRogers/netventory/refs/heads/master/install.sh | sh或使用 Homebrew(Mac):
brew tap ramborogers/netventory
brew install netventoryWindows PowerShell
iwr -useb https://raw.githubusercontent.com/RamboRogers/netventory/refs/heads/master/install.ps1 | iex2. 命令行选项
# 终端模式
netventory # 启动终端界面
netventory -d # 启用调试模式
# Web 模式
netventory -w # 启动 Web 界面
netventory -p 8080 # 指定 Web 端口
# 性能调优
netventory --workers 100 # 设置 Worker 数量
# 信息查询
netventory -v # 显示版本信息
netventory -h # 显示帮助3. Web 访问
启动 Web 模式后,使用生成的 Token 访问:
http://localhost:7331?auth=<token>七、版本演进
v0.3.0n(当前版本)
- 增强设备发现功能
- 多协议主机名解析
- Proxmox 端口检测
v0.2.0n
- 完整的 Web 界面
- WebSocket 实时更新
- Token 认证机制
早期版本
- 终端 TUI 界面
- 基础网络扫描功能
- MAC 地址解析