WatchYourLANでローカルネットワークのデバイスを簡単に管理する方法
誰もが経験するよくある場面です。新しいシングルボードコンピュータを設定したり、スマートプラグを接続したりした後、ルーターのWebインターフェースを開いて、どのIPアドレスがそのデバイスに割り当てられたのかを推測しようとします。多くの家庭用路由器の管理画面は、接続リストを更新する頻度が低く、通常は履歴すらありません。
シンプルな解決策を探していたところ、WatchYourLANを見つけました。Goで書かれた小型のネットワークスキャナーで、Webインターフェースを備えています。バックグラウンドで動作し、ARPを使用してローカルネットワークをスキャンし、不明なホストが検出されるとすぐにアラート通知を行います。

このユーティリティできること
WatchYourLANは基本的だが面倒な問題を解決します:ローカルネットワークの最新マップを常に見える状態に保ちます。
主な機能は以下の通りです:
- Shoutrrrによる通知。Telegram、Discord、Gotify、Slack、Matrix、メール、一般的なWebhookをサポートしています。
- アクティビティ履歴。スキャナーは、デバイスがネットワークに接続した時刻と切断された時刻を記録します。
- メトリクスのエクスポート。データはPrometheusvia
/metricsで送信したり、InfluxDB2に直接ストリーミングしてGrafanaでダッシュボードを構築できます。 - データベースの選択。デフォルトではSQLiteが使用されますが、必要に応じてPostgreSQLにデータを移行できます。
Goで書かれているためプロジェクトは高速に動作し、コンテナイメージ也是非常軽量です。
起動と設定の注意点
サービスは1つのDockerコマンドでデプロイできます。主な要件は、コンテナをnetwork mode hostで実行することであり、そうしないと arp-scanがホストシステムのインターフェースを認識できません。
docker run --name wyl \
-e "IFACES=eth0" \
-e "TZ=Europe/Moscow" \
--network="host" \
-v /var/lib/wyl:/data/WatchYourLAN \
aceberg/watchyourlan
起動後、Webインターフェースは http://localhost:8840でアクセスできます。
設定時に注意すべき点が2つあります。まず、WatchYourLANには組み込みのログインフォームがありません。ダッシュボードを外部に公開する場合は、AutheliaやNginxなどのリバースプロキシで認証を設定して保護する必要があります。次に、アプリケーションはデフォルトでCDNからテーマやフォントを取得します。完全に隔離されたネットワークの場合、著者はインターネット接続なしでインターフェースが動作する別のコンテナ node-bootstrapを用意しています。
誰が役立つのか
このツールはホームラボや小規模オフィスネットワークに最適です。新しいハードウェアを頻繁に接続したり、マイクロコントローラーのデバッグしたり、家庭用デバイスがWi-Fiに接続したタイミングを知りたい場合、WatchYourLANは不要な複雑さなしにこうしたニーズに応えます。
関連プロジェクト