老鬼以前看网络拓扑图,最怕的不是画得丑,而是画得太漂亮。
draw.io 里交换机、NAS、虚拟机摆得整整齐齐,箭头颜色都分好了。结果某天临时加两台机器、迁了个容器,没人去改图。半年后新人拿着“最新版拓扑”排故,查半天才发现现实世界早换了一套。
这种文档,越精致越容易骗人。

最近看到 Scanopy,我第一眼停住的点是:它干脆不让人维护图,而是跑一个 daemon 定时扫网络,根据现在真正活着的设备和服务重新生成拓扑。一次扫描拆成四张视图:L2 物理连接、L3 子网关系、虚拟机/容器等 Workloads,还有应用之间的依赖。设备下次扫描被发现,图自己变。
这思路挺对我胃口。

老鬼看这类运维工具,通常不太关心图标有没有动画,先看它是不是又要求每台服务器装 Agent。Scanopy 这块比较省事:一个扫描器直接做网络发现,内置 230 多种服务定义,数据库、Web 服务、容器和一些网络设备能自动识别,不需要挨台机器塞探针。复杂网络还能在不同网段部署多个 daemon。
Docker Compose 起服务也没整什么花活:
curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
docker compose up -d
但这里我得泼点冷水。
它毕竟不是普通 Dashboard。官方 Compose 里 daemon 用了 network_mode: host 和 privileged: true,要发现 Docker 还会只读挂载 /var/run/docker.sock。放家里 Homelab 问题可能不大,公司生产网里直接照抄部署,我肯定会先过一遍权限、扫描范围和隔离策略。网络发现这种东西,“不用装 Agent”和“权限很轻”不是一回事。
啧,这地方才是重点。
扫描完的图不只是自己看看,可以导出 SVG、Mermaid,还能放一个持续更新的 live view 给同事。相比每次网络改完再提醒某个人“记得更新拓扑图”,我更愿意把这活交给扫描任务。
尤其是家里 Proxmox、Docker、NAS、自托管服务堆了一柜子的,或者公司里网络和 DevOps 经常互相问“这 IP 到底是谁的”,Scanopy 这种东西很适合先跑一套。
别指望它替你做网络管理。
但至少以后排故时,先不用怀疑那张三个月没改过的 draw.io。
Github地址:github.com/scanopy/scanopy

|