news 2026/9/25 6:08:16

如何 5 分钟部署 WatchYourLAN:局域网监控从 0 到 1 完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何 5 分钟部署 WatchYourLAN:局域网监控从 0 到 1 完整教程

如何 5 分钟部署 WatchYourLAN:局域网监控从 0 到 1 完整教程

【免费下载链接】WatchYourLANLightweight network IP scanner written in Go. With notifications, history, export to Grafana项目地址: https://gitcode.com/GitHub_Trending/wa/WatchYourLAN

一台陌生设备悄悄接入你的内网,你却完全不知道它从哪来。WatchYourLAN 是一款轻量局域网监控工具,靠 IP 扫描与主机发现持续记录设备在线历史,陌生设备一出现还能推送提醒。照这篇操作,30 分钟跑起你自己的内网监控。

一条命令跑起来

这一步解决的是"最快看到结果":先让监控转起来,其他配置以后随时调。

WatchYourLAN 的 Docker 部署有个硬性要求:必须用 host 网络模式,因为它要调用arp-scan直接在宿主网络栈上收发 ARP 包。把eth0换成你的接口(ip link show可以查),执行:

docker run --name wyl \ -e "IFACES=eth0" \ -e "TZ=Asia/Shanghai" \ --network="host" \ -v ~/wyl:/data/WatchYourLAN \ aceberg/watchyourlan
参数作用
IFACES要扫描的网络接口,必填,多个用空格分隔
TZ时区,必填,保证历史记录时间正确
--network=host使用宿主网络,arp-scan 收发 ARP 包所必需
-v ~/wyl:/data/WatchYourLAN数据卷,保存配置与数据库

浏览器打开http://localhost:8840,这就是主机清单主界面:

每台主机的 IP、MAC、厂商、最后在线时间和在线状态一目了然。不想用容器也行:项目的 latest release 提供各发行版的二进制安装包,运行时依赖arp-scan和tzdata两个系统包,装完一样打开 8840 端口。

扫不全?从普通接口到 VLAN、docker0 逐级升级

这一步解决"我的网不止一个平面":先按最简配置来,扫不全再逐级加料。

第一级是IFACES,填接口名就行,绝大多数家庭网络到这一级就够。第二级是ARP_ARGS,它会给每个接口的扫描命令追加参数,比如想减少重试就填-r 1;把LOG_LEVEL设为debug,日志会打印实际执行的完整arp-scan命令,方便你核对参数有没有生效。

VLAN 107 与 docker0:两条现成命令

第三级是ARP_STRS,它和IFACES完全独立,每条字符串会被原样当成一条arp-scan命令执行。网络里有个 VLAN 107 的网段时这样写:

ARP_STRS_JOINED: "-gNx 10.0.107.0/24 -Q 107 -I eth0"

-Q 107指定 VLAN ID。注意字符串的最后一个词会被当成发现主机所属的接口名,所以接口一定放最后。想把 Docker 网桥 docker0 也扫进来,逗号后再接一条:

ARP_STRS_JOINED: "-gNx 172.17.0.1/24 -I docker0,-gNx 10.0.107.0/24 -Q 107 -I eth0"

⚠️ 多条扫描串用逗号分隔,逗号前后不能有空格,否则会被解析错。

ARP_STRS也可以在 GUI 的 Arp Strings 输入框逐条添加,或写进config_v2.yaml;走环境变量(比如 docker-compose)时用ARP_STRS_JOINED。arp-scan VLAN 扫描的完整细节见 docs/VLAN_ARP_SCAN.md。

新主机一出现就收到提醒,还能画进 Grafana

这一步解决"被动等发现":陌生设备出现时主动推给你,历史数据再进图表。

Shoutrrr:新主机出现即通知

WatchYourLAN 内置了Shoutrrr通知,你只需要填一个SHOUTRRR_URL,支持 Discord、Email、Telegram、Slack、Ntfy 等渠道,格式跟着所选渠道走。以 Gotify 为例,在配置文件里写:

shoutrrr_url: "gotify://192.168.0.1:8083/token/?title=Unknown host detected"

之后每发现一台新主机,都会收到一条Unknown host found. Name: ... IP: ... MAC: ...的消息。渠道没配好也没关系,点 Config 页的测试按钮(对应/api/notify_test)先发一条 test notification 验证链路。

历史不用额外配置:每次扫描比对后,状态变化都会写进数据库的 history 表,History 页能看到每台设备的在线时间线,超过TRIM_HIST(默认 48 小时)的记录自动清理。

数据进 Grafana:InfluxDB2 或 Prometheus 二选一

想画面板,两条路挑一条。走InfluxDB2:打开INFLUX_ENABLE,再填服务器地址、bucket、org、token,这四个值与 Grafana 里 InfluxDB 数据源的配置一一对应,连不上会打错误日志。走Prometheus更省事:只开PROMETHEUS_ENABLE,/metrics端点就暴露出一个watch_your_lan_up指标,1 代表在线、0 代表离线,Grafana 加个数据源直接画面板 📊

数据库这块默认SQLite,想换PostgreSQL时设USE_DB=postgres加连接串即可,连接失败会自动回退到 SQLite。

变量作用默认值
TIMEOUT两次扫描间隔(秒)120
TRIM_HIST历史记录保留时长(小时)48
SHOUTRRR_URL新主机通知渠道地址空
INFLUX_ENABLE启用 InfluxDB2 导出false
PROMETHEUS_ENABLE启用 Prometheus/metrics端点false

其余变量在 Web GUI 的 Config 页都能改,键名就是环境变量的小写形式。

上生产前必做的三件事

这一步解决"长期挂着不出事":认证、离线资源、API 集成,三件都做好才算上生产。

加认证:Authelia 或 ForAuth

WatchYourLAN 本身没有内置登录,推荐在前面挂 Authelia 这类 SSO,或作者写的轻量认证应用 ForAuth,仓库里带了配套的docker-compose-auth.yml示例。

⚠️ WYL 必须以 host 网络模式运行,Web 端口会直接暴露在宿主网络上。务必用防火墙或路由器 ACL 限制对 8840 端口的访问,否则任何人都能打开你的管理界面。

离线资源模式:-n 参数接入本地资源节点

默认 Web 界面会从互联网拉主题、图标和字体。纯内网环境先跑一个内置全部资源的小镜像:

docker run --name node-bootstrap -p 8850:8850 aceberg/node-bootstrap

再给 WYL 加-n参数指向它,界面就完全不再依赖外网:

docker run --name wyl \ -e "IFACES=eth0" -e "TZ=Asia/Shanghai" \ --network="host" \ -v ~/wyl:/data/WatchYourLAN \ aceberg/watchyourlan -n "http://192.168.0.10:8850"

HTTP API 与社区集成

想把自己的脚本接进主机清单,HTTP API 覆盖得挺全:/api/all拿全部主机 JSON,/api/status拿在线/离线统计,/api/port/地址/端口探测端口,/api/wol/MAC发 Wake-on-LAN 魔法包,/api/rescan触发立即重扫。完整清单见 docs/API.md,启动后访问/swagger/还能在线调试。社区也已有 AUR 包、Python 客户端等基于同一套 API 的集成,可以直接参考。

部署跑通只是开始:想理解扫描协程和主机比对逻辑,可以从 backend/internal/ 下的 arp、routines、notify 模块读起;文档目录里还有 API 与 VLAN 扫描的完整说明,够你再折腾一阵子。

【免费下载链接】WatchYourLANLightweight network IP scanner written in Go. With notifications, history, export to Grafana项目地址: https://gitcode.com/GitHub_Trending/wa/WatchYourLAN

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 6:06:20

Atlas 300V 24G部署YOLO:从ONNX转换到NPU推理的完整指南

最近后台被同一个问题刷屏过好几轮:“Atlas 300V 24G是运算加速卡吗?能不能拿来部署YOLO?” 还有人直接说“我买了一块atlas,求一份部署yolo的教程”。我估计不少朋友是把Atlas当成普通显卡买回来了,结果发现驱动装不上…

作者头像 李华
网站建设 2026/9/25 6:02:26

从零构建内部CRM系统:客户沟通记录与团队协作实战

DeskcommCRM这个项目,名字听起来有点长,其实就是Desk Communication CRM,翻译过来是“桌面沟通型客户关系管理系统”。说白了,这就是我们销售和客服团队自己用的那套客户沟通管理工具。做这个系统的初衷特别朴素:我们每…

作者头像 李华
网站建设 2026/9/25 6:01:29

中兴B860AV3.2-M线刷全攻略:S905L3刷机与EmotnUI桌面实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华