扫一遍局域网,陌生设备立刻现形
简介
什么是 LAN Orangutan ?
LAN Orangutan是一个开源的轻量级局域网设备发现工具,底层借助nmap自动扫描网络中的设备,并为每一台设备打上持久化的标签、分组和备注。它可以帮助用户在完全本地化的前提下,快速搞清家庭或办公网络上到底”有什么”。
主要特点
- 自动发现设备:基于
nmap自动扫描网络,识别IP、MAC地址、厂商和主机名 - 设备标注管理:可以为设备添加标签、分组和备注,并在多次扫描后保持不变,便于长期追踪
- 多网络支持:自动检测本机所有网络接口,也支持手动添加路由网段或 VLAN
- Tailscale 集成:自动拉取
tailnet在线节点,也可以在应用内一键连接、断开Tailscale(需要在宿主机安装Tailscale,详见注意事项) - 实时扫描进度:扫描在后台运行,仪表盘可实时查看进度,长扫描不会超时,还支持随时取消
- 现代 Web 仪表盘:实时在线状态、明暗双主题、搜索过滤、快捷键操作,支持导出
CSV/JSON - 完整 CLI 工具:内置命令行工具,支持
scan、serve、list、export等命令,输出JSON - 数据完全本地:设备列表、标签和设置都保存在本地,无任何云端依赖
- 开源免费:基于
MIT协议开源,可免费使用和修改
应用场景
- Homelab 设备盘点:家庭服务器、树莓派、
NAS、智能家居设备数量众多,一键扫描即可摸清家底,并给每台设备打上标签方便管理 - IoT 设备监控:随时掌握哪些物联网设备在线、哪些掉线,
MAC厂商信息还能帮你识别”陌生设备” - Tailscale 网络管理:在应用内直接查看
tailnet在线节点,并快速连接、断开Tailscale,无需切换到命令行(仅限直接运行二进制时可用,Docker部署下不可用) - 网络安全自查:定期扫描网络可以发现未授权的接入设备,配合导出功能留存设备变更记录
- 开发者测试:开发人员可以在局域网内快速搭建一个轻量的设备发现环境,用于排障和调试

LAN Orangutan 是一个把”局域网里有什么”这个问题回答得最简单、最直观的自托管工具,设备发现、标注和追踪一屏搞定。
项目采用 Go 编写,以单个二进制发布,支持 Linux、macOS 和 Windows,同时提供 Docker 镜像,还内置了 Tailscale 集成,是一款面向 homelab 玩家的自托管网络发现利器。
安装
在群晖上以 Docker 方式安装。
本文写作时,
latest版本对应为3.3.8;

LAN Orangutan 以 Docker 方式部署有一个特殊要求:必须使用 host 网络模式,且容器需要 NET_RAW、NET_ADMIN 等额外权限。原因在于,如果使用 Docker 默认的 bridge 网络,容器永远只能看到 172.17.0.0/16 上的其他容器,而看不到局域网里的真实设备。
官方镜像同时发布在
Docker Hub(291group/lan-orangutan)和GitHub Container Registry(ghcr.io/291-group/lan-orangutan),下面的命令以GHCR为例。
docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 lan-orangutan 和 子目录 |
环境变量的简单说明,更多的环境变量可以参考:https://hub.docker.com/r/291group/lan-orangutan#configuration
| 可变 | 值 |
|---|---|
ORANGUTAN_PORT |
10291,服务监听端口 |
TZ |
Asia/Shanghai,时区 |
ORANGUTAN_PASSWORD |
可选,预设仪表盘密码 |
环境变量说明:
ORANGUTAN_PASSWORD可以不设置,首次打开仪表盘时应用会引导你创建密码;如希望提前确定密码,可在此设置。更多变量还包括ORANGUTAN_BIND_ADDRESS(默认0.0.0.0)、ORANGUTAN_SESSION_HOURS(默认168)等。
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | services: |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 lan-orangutan 和 子目录 |

运行
在浏览器中访问 http://<群晖IP>:10291 即可进入主界面,首次需要先设置密码

登录成功后的主界面,应用会自动扫描检测到的网络,在仪表盘即可查看发现的设备,并为其添加标签、分组和备注

如需扫描未被自动检测到的网段,需通过环境变量 ORANGUTAN_NETWORKS 或配置文件 config.ini 中的 [scanning] networks 指定(设置界面没有添加网络的入口),添加后这些网络会出现在仪表盘上供扫描
在 Docker 部署中,通过环境变量添加额外网段:
1 | # docker cli 方式:追加 -e 参数 |
或在 docker-compose.yml 的 environment 中添加:
1 | environment: |
说明:
ORANGUTAN_NETWORKS用于扫描通过路由器可达的网段或VLAN,这类网络没有本机接口,不会被自动检测。通过路由网段扫描到的设备没有MAC地址和厂商信息,因为ARP只对同一网段生效。
注意事项
- 必须使用 host 网络模式:使用
Docker默认bridge网络时,容器只能发现其他容器(172.17.0.0/16),无法发现局域网设备,且页面不会报错,看起来一切正常,实际结果却是错的 - 仅支持 Linux 上的 Docker:
Docker on macOS/Windows的容器运行在虚拟机里,host网络实际挂载的是虚拟机网络,扫描和访问均不可用,需要在宿主机直接运行二进制文件 - 容器无需额外安装 nmap:官方镜像内已内置
nmap及其脚本,而直接在宿主机运行二进制时,需要自行安装nmap - 忘记密码怎么办:密码以
bcrypt哈希保存在数据目录下的auth文件中(本例为docker/lan-orangutan/data/auth),删除该文件并重启容器,即可重新设置密码,设备列表和标签不受影响,也没有任何数据会被清空 - 无内置 HTTPS:默认监听在网络上,建议将服务放在反向代理(如
Nginx、Traefik)之后,或通过Tailscale` 访问,以保证连接加密 - Docker 部署下 Tailscale 集成不可用:
Tailscale功能依赖宿主机上安装的Tailscale CLI,而Docker容器拥有自己的文件系统,无法访问宿主机的Tailscale,即使宿主机已接入tailnet,仪表盘上的Tailscale状态卡片也会显示”未安装”。如需使用Tailscale集成,请在宿主机上直接运行二进制文件,而不是部署在容器中 - 安全建议:如通过反向代理完成认证,可以设置
allow_insecure跳过密码;否则切勿在网络监听(0.0.0.0)下关闭密码保护,否则任何能路由到该主机的人都可读取甚至删除设备列表
参考文档
291-Group/LAN-Orangutan: Self-hosted network discovery for homelabbers with Tailscale support.
地址:https://github.com/291-Group/LAN-OrangutanLAN Orangutan — Lightweight Network Scanner | 291 Group
地址:https://lanorangutan.com/Docker Hub 镜像页面
地址:https://hub.docker.com/r/291group/lan-orangutan