首页 / 资讯中心 / 文章详情

Scanopy 服务定义完全手册:轻松添加200+服务类型

Scanopy 服务定义完全手册:轻松添加200+服务类型 ★ FEATURED ARTICLE
Scanopy 服务定义完全手册轻松添加200服务类型【免费下载链接】scanopyNetwork diagrams that update themselves项目地址: https://gitcode.com/gh_mirrors/ne/scanopyScanopy 是一款能自己更新的开源网络拓扑工具而让它真正聪明的正是内置的200 服务定义Service Definitions。网络扫描器跑完一遍之后Scanopy 能自动认出你的网段里藏着 Postgres、Grafana、Home Assistant 还是 UniFi 交换机——这一切都靠一个个小巧的服务定义驱动。无论你是想搞懂它如何识别服务还是想亲手添加第一个新服务这份手册都能帮你在 10 分钟内上手。服务定义是什么为什么重要一次网络扫描只会得到一堆某 IP 的某端口开着这样的原始信息。把原始信息变成这是一台 Elasticsearch靠的就是服务定义每份定义告诉 Scanopy 三件事它叫什么名称、描述、图标它属于哪类监控、数据库、媒体服务器、虚拟化……决定它在拓扑图里怎么分组怎么认出它一组发现模式端口、HTTP 端点内容、MAC 厂商等。定义命中之后服务会自动挂到对应主机上进入你看到的四种视图。下图就是扫描结果生成的工作负载视图每一个带图标的方块都是被服务定义成功识别出来的内置 272 份服务定义覆盖几乎所有场景所有定义集中存放在 backend/src/server/services/definitions/ 目录目前包含272 个服务定义文件从网络基础设施到智能家居一应俱全类别你会遇到的服务定义文件示例监控与日志Prometheus、Grafana、Zabbix、Lokiprometheus.rs数据库MySQL、PostgreSQL、Redis、MongoDBpostgresql.rs媒体服务器Plex、Jellyfin、Emby、Sonarrplex.rs虚拟化与容器Proxmox、ESXi、Kubernetes、Dockerkubernetes.rs家庭自动化Home Assistant、OpenHAB、Zigbee2MQTThome_assistant.rsIoT 与终端摄像头、智能音箱、打印机、工业 PLCcamera.rs完整分类可以在 mod.rs 中按章节浏览——文件本身就是最好的目录。自动识别是怎么做到的读懂发现模式每份定义的核心是discovery_pattern()它描述满足什么条件就认为是这个服务。常见模式有这几类完整说明见 contributing.md端点模式Endpoint⭐ 首选访问某个 HTTP 路径检查响应里是否出现服务名。信号最强、误报最少比如 Plex 定义就是查32400端口/web/index.html里是否包含 Plex 字样见 plex.rs端口模式Port只认固定端口适合没有可探测端点的服务如 Redis 认 6379逻辑组合AnyOf / AllOf / Not多个条件或/且/非组合能显著提升准确性特殊模式IsGateway是网关、MacVendorMAC 地址厂商如 Eero、SubnetIsType子网类型、None仅手动识别。 一个实用技巧想知道某个服务的识别逻辑直接查 ui/static/services.json——所有 268 个定义都以人类可读的语言导出了发现模式例如 Sonarr 的描述就是响应体包含 Sonarr 字样的 8989 端口请求即命中。后端则通过 ServiceDefinitionRegistry 统一注册和查找这些定义扫描时逐条比对、命中即识别。三步添加一个新服务定义添加服务定义是 Scanopy 官方推荐的首个贡献不需要深入理解整个代码库。第 1 步新建定义文件在 definitions/ 下创建your_service.rs核心就是实现ServiceDefinitiontraitfn discovery_pattern(self) - Pattern_ { Pattern::Endpoint( PortBase::HttpAlt, // 服务监听的端口 /api/health, // 探测路径 your_service_name // 响应中需包含的关键词 ) }同时声明名称、描述和所属类别。类别清单定义在 categories.rs从Monitoring、Database到IoT、Industrial共 40 余种选最贴近的一个即可。第 2 步在注册表中登记在 mod.rs 对应分类下加一行pub mod your_service;文件末尾加上inventory::submit!注册宏——服务即可被自动发现无需改动任何扫描器代码。第 3 步本地验证用make dev-server启动后端确认编译通过如果网络里真实运行着该服务跑一次发现扫描确认它被正确识别、图标正常显示然后按 contributing.md 的 PR 模板提交一次 PR 只加一个服务。写在最后服务定义看似只是认名字却是 Scanopy 从端口扫描工具进化为活的网络文档的关键——272 份定义覆盖了从工业 PLC 到智能音箱的广阔世界而它依然欢迎社区补充每添加一个定义所有用户的下一次扫描都会变得更聪明一点。如果你的网段里总有一台设备显示为未知服务去 contributing.md 看看为它写一份定义就是最简单的开源参与方式。【免费下载链接】scanopyNetwork diagrams that update themselves项目地址: https://gitcode.com/gh_mirrors/ne/scanopy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站