家里的设备越来越多,路由器后台一打开就是几十个 IP 和 MAC 地址,能认出来的没几个。NAS 是哪个?智能音箱是哪个?电视盒子是哪个?全糊在一起。有时候多了一台设备也不知道什么时候连上来的。
前几天在 GitHub 上看到 LanLens,一个专门做局域网设备盘点的自托管工具。扫了一下代码库,353 次提交,MIT 协议,更新很勤快——最新一次提交就两天前。决定在 NAS 上跑起来试试。

部署不算复杂,但有几个坑
LanLens 用 Docker 跑,一条命令的事。但它要做 ARP 扫描,必须用 host 网络模式,不能走 bridge——否则抓不到 MAC 地址。这意味着容器直接共享宿主机的网络栈,端口冲突要注意。
我的 NAS 上已经跑了不少服务,7765 端口倒没被占,直接启动就好。第一次访问用 admin / admin 登录,进去后强制改密码——这点比很多同类工具靠谱,至少没忘了最基本的安全。
另一个容易忽略的点:如果你用的是 Docker Compose,记得挂 /data 目录做持久化。LanLens 用 SQLite 存所有数据,目录丢了就白扫了。官方的一键启动脚本已经帮你处理好了,直接用就行。
启动之后它会自动检测你当前所在的子网并立即开始 ARP 扫描。我等了大概 30 秒,dashboard 上已经开始出现设备了。
它能干什么
最核心的功能就一个:给局域网里的每台设备建档。LanLens 通过 ARP 扫描发现设备,用 MAC 地址查 IEEE OUI 数据库识别厂商,然后你可以给每台设备加名字、备注、标签、位置,甚至记录它跑了哪些服务、开了哪些端口。
比路由器后台强的地方在于:
- 能识别厂商——iPhone 是 Apple 的,电视是 Samsung 的,不用猜
- 能看到每台设备的 IP 变更历史和在线时间线,比如”NAS 昨天凌晨断网了 3 分钟”
- DHCP 监控能发现网内有没有不明 DHCP 服务器——这在家用场景不常见,但如果软路由配置乱了就可能出问题
- 拓扑图可以看设备之间的连接关系——前提是启用了 SNMP 或 LLDP(大部分家用交换机没有)

还有一个让我觉得挺实用的细节:设备详情页里能看到 24 小时在线时间线。排查设备半夜掉线再也不用翻路由器日志了。

说实话,有些功能我用不上
LanLens 1.5.6 之后的版本加了不少企业级功能——SNMP 交换机端口统计、LLDP/CDP 被动发现、CMDB/i-doit 导出——这些在家用环境基本用不到。除非你家交换机支持 SNMP 且你有心情去配,否则这些只是增加了菜单栏的复杂度。
但好在它是模块化的,不配置就不会打扰你。核心的 ARP 扫描 + 设备建档 + 在线时间线已经足够满足”搞清楚家里到底有多少设备”这个需求了。
通知功能支持 Telegram、Webhook 和邮件。我配了 Telegram,新设备上线时推一条消息。配起来不麻烦,在 Settings 里填个 bot token 和 chat ID 就行。
跟其他工具对比
同类产品里我试过几个。Pi-hole 更多是 DNS 层面的广告拦截,设备列表只是附带功能。NetAlertX 功能更复杂但 UI 太老了。LanLens 的定位很明确——设备盘点第一,监控第二,不是监控系统,而是一个”你家里都连了啥”的档案本。
资源占用也不高。在我的 NAS 上跑了几天,内存大概 80-100MB,CPU 几乎不动。SQLite 数据库到现在不到 5MB。
底线
如果你的路由器后台已经有清晰的设备列表和厂商识别(比如部分高端路由器的手机 App 做得不错),LanLens 没什么特别的价值。但如果你跟我一样,路由器后台只是冷冰冰的 IP 和 MAC 地址,那花 5 分钟部署一个 LanLens,把家里的设备挨个标上名字,还是挺爽的。