
aceberg/watchyourlanWatchYourLAN 是一款轻量级网络 IP 扫描器,提供 Web 图形界面(GUI),旨在帮助用户监控局域网内设备状态。其核心用途包括实时发现新设备、追踪主机在线/离线历史、维护网络设备清单,以及将数据导出至时序数据库(如 InfluxDB2、Prometheus),进而通过 Grafana 构建可视化监控仪表盘。
!主界面
!设备列表
!历史记录
!设置界面
!通知配置
WatchYourLAN 需使用 host 网络模式以确保扫描功能正常。部署前需准备:
$YOURTIMEZONE 为本地时区(如 Asia/Shanghai);$YOURIFACE 为需扫描的网络接口(如 eth0,可通过 ip addr 命令查看);$DOCKERDATAPATH 为数据持久化路径(如 /opt/docker/data)。shdocker run --name wyl \ -e "IFACES=$YOURIFACE" \ -e "TZ=$YOURTIMEZONE" \ --network="host" \ -v $DOCKERDATAPATH/wyl:/data/WatchYourLAN \ aceberg/watchyourlan
部署完成后,Web GUI 可通过 http://localhost:8840 访问。
配置可通过环境变量、配置文件或 GUI 完成,环境变量名称与配置文件参数一致(小写)。
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| TZ | 时区设置(用于时间显示) | - |
| HOST | Web 服务监听地址 | 0.0.0.0 |
| PORT | Web GUI 端口 | 8840 |
| THEME | Web 界面主题(支持 Bootswatch 主题名称,小写) | sand |
| COLOR | 背景颜色(light/dark) | dark |
| NODEPATH | 本地节点模块路径(用于无外部网络依赖场景) | - |
| SHOUTRRR_URL | 通知服务 URL(基于 Shoutrrr,支持 、 等) | - |
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| IFACES | 需扫描的网络接口(多个接口用空格分隔,详见 VLAN_ARP_SCAN.md) | - |
| TIMEOUT | 扫描间隔(秒) | 120 |
| ARP_ARGS | arp-scan 命令参数(如 -r 1 表示扫描次数,详见 VLAN_ARP_SCAN.md) | - |
| ARP_STRS / ARP_STRS_JOINED | 自定义 ARP 扫描字符串(详见 VLAN_ARP_SCAN.md) | - |
| LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
| TRIM_HIST | 历史数据保留时间(小时) | 48 |
| USE_DB | 数据库类型(sqlite/postgres) | sqlite |
| PG_CONNECT | PostgreSQL 连接地址(如 postgres://user:pass@host:port/db?sslmode=disable) | - |
用于将数据导出至 InfluxDB2,支持 Grafana 可视化。
| 环境变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
| INFLUX_ENABLE | 是否启用 InfluxDB2 导出 | false | true |
| INFLUX_SKIP_TLS | 是否跳过 TLS 验证 | false | true |
| INFLUX_ADDR | InfluxDB2 服务地址:端口 | - | [***] |
| INFLUX_BUCKET | InfluxDB2 存储桶名称 | - | test |
| INFLUX_ORG | InfluxDB2 组织名称 | - | home |
| INFLUX_TOKEN | InfluxDB2 访问令牌 | - | - |
用于启用 Prometheus metrics 端点,支持 Prometheus 采集数据。
| 环境变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
| PROMETHEUS_ENABLE | 是否启用 Prometheus 端点 | false | true |
配置文件名称为 config_v2.yaml,默认路径为 /data/WatchYourLAN/config_v2.yaml(通过 -d 参数可指定配置目录)。示例配置:
yamlarp_args: "" # arp-scan 参数 color: dark # 背景颜色 host: 0.0.0.0 # 监听地址 ifaces: enp4s0 # 扫描接口 influx_addr: "" # InfluxDB2 地址 influx_bucket: "" # InfluxDB2 存储桶 influx_enable: false # 是否启用 InfluxDB2 导出 influx_org: "" # InfluxDB2 组织 influx_skip_tls: false # 是否跳过 TLS 验证 influx_token: "" # InfluxDB2 令牌 log_level: info # 日志级别 nodepath: "" # 本地节点模块路径 pg_connect: "" # PostgreSQL 连接地址 port: "8840" # Web 端口 prometheus_enable: false # 是否启用 Prometheus 端点 shoutrrr_url: "gotify://192.168.0.1:8083/AwQqpAae.rrl5Ob/?title=Unknown host detected&DisableTLS=yes" # 通知 URL theme: sand # 主题 timeout: 60 # 扫描间隔(秒) trim_hist: 48 # 历史数据保留时间(小时) use_db: sqlite # 数据库类型
| 参数 | 描述 | 默认值 |
|---|---|---|
| -d | 配置文件目录路径 | /data/WatchYourLAN |
| -n | 本地节点模块路径(用于无外部网络依赖) | - |
WatchYourLAN 无内置身份验证功能,建议通过以下方式增强安全性:
示例配置:参考 docker-compose-auth.yml。
⚠️ 警告:WatchYourLAN 需使用
host网络模式,因此 Web 端口会直接暴露。请通过防火墙或其他措施限制访问。
默认情况下,Web 界面依赖外部网络获取主题、图标和字体。如需完全脱离外部网络,可部署独立节点模块镜像 aceberg/node-bootstrap 提供本地资源:
shdocker run --name node-bootstrap \ -p 8850:8850 \ aceberg/node-bootstrap
shdocker run --name wyl \ -e "IFACES=$YOURIFACE" \ -e "TZ=$YOURTIMEZONE" \ --network="host" \ -v $DOCKERDATAPATH/wyl:/data/WatchYourLAN \ aceberg/watchyourlan -n "[***]"
($YOUR_IP 为 node-bootstrap 容器所在主机的 IP 地址)
host 网络模式,否则无法正常扫描局域网设备。-v 参数挂载数据卷,确保配置文件、数据库和历史记录不丢失。host 模式下默认具备)。arp-scan 和 tzdata。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务