你画的那张 draw.io 网络图,上周就过期了。
不是你懒,是设备一上架、IP 一改、容器一重启,图就和现实对不上。运维查问题时还得先翻图再翻命令行,来回比对三遍才敢动手。
其实不用人盯,也不用买商业拓扑工具——Scanopy 能自己扫、自己画、自己更新,只要你的网络能 ping 通它。
它替你省掉了什么
它不替代某一款具体软件,但直接砍掉一类长期付费需求:持续维护网络拓扑图的人力和工具成本。
“不像 diagrams drawn in draw.io that go stale the week they’re saved”
很多中小公司用 Visio 或 Lucidchart 订阅服务,按月/年付费,一年少说 2000 元起;MSP 或企业还会采购 SolarWinds、Datadog APM 或 Cisco DNA Center 的拓扑模块,单节点授权动辄上万。这些工具要么要装代理、要么要开 SNMP、要么得对接云 API,配置复杂还容易漏。
Scanopy 不收订阅费,不卖 seat,不强制上云。你下载一个 docker-compose.yml,跑起来就能开始扫网。所有数据留在你自己的服务器里,连扫描凭证都不出内网。
价格直接砍到零。
它能干什么
- 自动发现你网络里所有活的设备:从路由器、交换机、物理服务器,到虚拟机、Docker 容器、K8s Pod,甚至 Windows 主机上的 SQL Server 和 Nginx,官方支持 230+ 种服务定义,不用手动填端口或协议。比如它识别 MySQL 时会检查 3306 端口是否响应、返回是否含 version 字符串;识别 Docker 容器则通过本地 Unix Socket 读取 /var/run/docker.sock,列出运行中容器及其暴露端口。
- 一次扫描,生成四张图:L2 物理层(谁连谁的网线)、L3 逻辑层(子网怎么互通)、工作负载层(容器在哪台宿主机上)、应用依赖层(订单服务调用了哪个数据库和缓存)。这四张图都基于同一份实时扫描结果,不会互相矛盾。L2 图里能看到交换机端口与 MAC 地址绑定关系;L3 图中可点击任意 IP 查看其所属子网、网关和路由路径。
- 不用在每台设备上装 agent。它靠 ARP、LLDP、SNMP、Docker Socket 和 Kubernetes API 这几类通用机制主动探测,一个后台进程就能覆盖整个局域网,多 VLAN 或跨机房场景还能部署多个扫描器协同工作。例如在总部部署主扫描器,在分部防火墙后加一个轻量 daemon,通过 TLS 加密通道回传数据,无需开放内部端口。
- 图不是静态截图。你可以设成每小时/每天自动重扫,新机器上线半小时内就会出现在图上,下线设备两天后自动淡出。导出支持 SVG 和 Mermaid,也能嵌进 Confluence 页面当活地图用。SVG 文件保留图层结构,可用 Inkscape 编辑标注;Mermaid 输出可直接粘贴进 Markdown 文档,随代码库一起版本管理。
- 支持多用户和权限管理。IT 部门可以建一个只读视图给财务看机房拓扑,DevOps 团队另开一个带服务依赖的调试视图,不同角色看到的内容天然隔离,不用手动截不同版本的图发邮件。RBAC 规则细到「只能查看指定子网段的 L3 图」或「仅允许导出 SVG,禁用 Mermaid 导出」。
- 适合小团队也适合家里的 NAS+树莓派组合。README 里明确写了“Home labs: Document your infrastructure without opening draw.io”,真有普通用户拿它理清自己家的软路由、iStoreOS、Jellyfin 和 Home Assistant 之间的连接关系。比如把 OpenWrt 当作 L2 设备扫描,把 Jellyfin 容器识别为媒体服务,自动标出它依赖的 PostgreSQL 实例和 Redis 缓存。
上手只要三步
- 确认你有一台能跑 Docker 的 Linux 服务器(树莓派、群晖、旧笔记本都行),访问 GitHub 原始链接 下载 docker-compose.yml:
https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml - 在该文件所在目录执行 docker compose up -d,等待几秒,服务就起来了。不需要改配置,默认监听 60072 端口。如果你的服务器已有其他服务占用了这个端口,只需编辑 docker-compose.yml 中的 ports 字段,改成 “60073:60072” 即可。
- 打开浏览器,输入 http://你的服务器IP:60072,注册第一个账号,首次扫描会自动触发,两分钟内就能看到第一张 L2 拓扑图——不用导入设备列表,不用填 SNMP 社区名,也不用点“开始扫描”按钮。系统默认启用 ARP 扫描和本地 Docker 探测,无需额外配置即可发现同网段主机和容器。
项目信息
scanopy/scanopy
GitHub
Network diagrams that update themselves







