Zum Inhalt

Geräte im Heimnetz mit NetAlertX erkennen

Veröffentlicht am 7. August 2026 · Geschätzte Lesezeit: 4 Minuten

NetAlertX durchsucht dein lokales Netzwerk, führt eine Geräteliste und erkennt neu hinzugekommene oder verschwundene Geräte. Der Container nutzt dafür unter anderem ARP-Scans direkt im Heimnetz. Für Installation und ersten Scan solltest du etwa 20 Minuten einplanen.

Voraussetzungen

  • Ein Linux-Server mit Docker und Docker Compose
  • Eine feste private IP-Adresse für den Server
  • Name der Netzwerkschnittstelle und Subnetz des Heimnetzes
  • SSH-Zugriff und ein Benutzer mit sudo-Rechten

1. Netzwerkdaten ermitteln

Zeige auf dem Server die Netzwerkschnittstellen und IP-Adressen an:

ip -br address

Notiere die aktive Schnittstelle, zum Beispiel eth0 oder enp3s0, und die private IP des Servers. Ermittle anschließend die Route des Heimnetzes:

ip route

Eine typische Zeile lautet 192.168.1.0/24 dev eth0. In diesem Beispiel ist 192.168.1.0/24 das Subnetz und eth0 die Schnittstelle.

2. Datenordner vorbereiten

Erstelle auf dem Server einen persistenten Ordner für Konfiguration und Datenbank:

sudo mkdir -p /opt/netalertx/data
sudo chown -R 20211:20211 /opt/netalertx/data
sudo chmod -R u+rwX,go-rwx /opt/netalertx/data
cd /opt/netalertx

20211:20211 ist die von der offiziellen Container-Dokumentation genannte Standard-ID des NetAlertX-Dienstbenutzers.

3. Compose-Datei erstellen

Erstelle /opt/netalertx/compose.yaml. Ersetze <server-ip> durch die private IP des Servers. Durch das Host-Netzwerk kann NetAlertX Geräte auf Ebene 2 des lokalen Netzes erkennen.

services:
  netalertx:
    image: ghcr.io/netalertx/netalertx:latest
    container_name: netalertx
    restart: unless-stopped
    network_mode: host
    read_only: true
    cap_drop:
      - ALL
    cap_add:
      - NET_ADMIN
      - NET_RAW
      - NET_BIND_SERVICE
      - CHOWN
      - SETUID
      - SETGID
    sysctls:
      net.ipv4.conf.all.arp_ignore: 1
      net.ipv4.conf.all.arp_announce: 2
    environment:
      LISTEN_ADDR: "<server-ip>"
      PORT: "20211"
      GRAPHQL_PORT: "20212"
    volumes:
      - ./data:/data
      - /etc/localtime:/etc/localtime:ro
    tmpfs:
      - "/tmp:uid=20211,gid=20211,mode=1700,rw,noexec,nosuid,nodev,async,noatime,nodiratime"
    logging:
      options:
        max-size: "10m"
        max-file: "3"

Nur im vertrauenswürdigen Netz betreiben

Leite Port 20211 nicht im Router ins Internet weiter. Die Geräteliste enthält sensible Informationen wie IP- und MAC-Adressen. Nutze für Fernzugriff ein VPN oder einen Reverse Proxy mit zusätzlicher Anmeldung.

4. Container starten

Starte NetAlertX im Arbeitsordner:

cd /opt/netalertx
docker compose up -d

Prüfe den Zustand und die letzten Startmeldungen:

docker compose ps
docker compose logs --tail=80 netalertx

Öffne danach http://<server-ip>:20211 im Browser. Ersetze <server-ip> durch die private IP aus Schritt 1.

5. Scanbereich festlegen

Öffne in NetAlertX Settings und suche nach SCAN_SUBNETS. Trage dein Subnetz und die Netzwerkschnittstelle in diesem Format ein:

['<lan-subnet> --interface=<interface>']

Ersetze <lan-subnet> zum Beispiel durch 192.168.1.0/24 und <interface> zum Beispiel durch eth0. Speichere die Einstellung. Die standardmäßig aktivierten Scanner ARPSCAN und INTRNT können damit das lokale Netz prüfen.

Nur eigene Netze scannen

Trage ausschließlich Subnetze ein, die dir gehören oder für deren Prüfung du eine Erlaubnis hast. Ein unnötig großer Bereich verlängert den Scan und kann fremde Systeme erfassen.

6. Ersten Scan prüfen

Der erste vollständige Durchlauf kann laut Projektdokumentation fünf bis zehn Minuten dauern. Öffne danach Devices und vergleiche einige Einträge mit der Geräteliste deines Routers.

Markiere bekannte Geräte mit verständlichen Namen und prüfe neue oder unbekannte MAC-Adressen zuerst im Router. Ein unbekannter Eintrag ist nicht automatisch ein Angriff; Smartphones verwenden zum Beispiel häufig private, wechselnde MAC-Adressen.

Benachrichtigungen langsam aufbauen

Richte zuerst nur eine Meldung für neue Geräte ein. Beobachte einige Tage, welche Geräte wegen Energiesparmodus oder privater MAC-Adressen wechseln, bevor du weitere Warnungen aktivierst.

7. Backup und Rückweg

Stoppe NetAlertX, damit Konfiguration und SQLite-Datenbank konsistent gesichert werden:

cd /opt/netalertx
docker compose stop netalertx

Lege den Backup-Ordner an:

sudo mkdir -p /var/backups

Sichere den gesamten Datenordner und die Compose-Datei:

sudo tar -czf "/var/backups/netalertx-$(date +%F).tar.gz" -C /opt netalertx

Starte den Dienst wieder:

cd /opt/netalertx
docker compose start netalertx

Für den Rückweg stoppst du den Container, benennst /opt/netalertx um und entpackst das gewünschte Archiv wieder unter /opt. Besonders wichtig sind data/db/app.db, data/config/app.conf und data/config/workflows.json.

8. Aktualisieren und Fehler finden

Erstelle vor einem Update ein Backup. Aktualisiere danach das stabile Image:

cd /opt/netalertx
docker compose pull
docker compose up -d

Prüfe bei Fehlern die Protokolle:

docker compose logs --tail=150 netalertx
  • Keine Geräte gefunden: Subnetz, Schreibweise und Schnittstellenname in SCAN_SUBNETS prüfen.
  • Weboberfläche nicht erreichbar: LISTEN_ADDR muss exakt der privaten Server-IP entsprechen; außerdem Port 20211 in der lokalen Firewall prüfen.
  • Berechtigungsfehler unter /data: Eigentümer des Ordners mit sudo chown -R 20211:20211 /opt/netalertx/data korrigieren.
  • Container startet wegen sysctls nicht: Die Laufzeit erlaubt die beiden Einstellungen möglicherweise nicht. Entferne den sysctls-Block und setze die Werte nach offizieller Anleitung auf dem Linux-Host.

9. Quellen und Video

Fertig

NetAlertX führt nun eine dauerhaft gespeicherte Geräteliste für dein Heimnetz. Vergleiche zur Funktionsprüfung die gefundenen Geräte mit deinem Router und verbinde anschließend testweise ein eigenes WLAN-Gerät neu. Nach dem nächsten Scan sollte es als online oder neu erkannt erscheinen.