Eine visuelle Karte Ihres lokalen Netzwerks und Ihrer Container ohne Aufwand
Wenn ein Home-Server oder eine Workstation einige Dutzend Container, VMs und Testdienste angesammelt hat, wird es schwierig, den Überblick zu behalten. Irgendwann fragt man sich: Welche IP hat die Datenbank gerade, welche Ports sind offen und mit welchem Docker-Netzwerk ist dieser alte Worker verbunden? Normalerweise muss man ein Terminal öffnen, docker inspect-Ausgabe durchsuchen, nmap ausführen und die Informationen manuell im Kopf zusammensetzen.
Ich bin kürzlich auf Atlas gestoßen, ein Open-Source-Projekt des Entwicklers Karam Ajaj. Dieses Tool übernimmt die Routine: Es scannt lokale Subnetze, ruft Container-Details über den Docker-Socket ab und rendert eine interaktive Netzwerkkarte direkt im Browser.
Was steckt dahinter und wie es funktioniert
Die Architektur von Atlas kombiniert mehrere vertraute Komponenten, verpackt in einen einzelnen Container:
- Der Scanner ist in Go 1.22 geschrieben. Die Binärdatei führt niedrigstufige Netzwerkanfragen via ARP und Ping durch, fragt den Docker-Socket ab und führt tiefgehende Port-Scans durch. Alle Ergebnisse werden in einer lokalen SQLite-Datenbank gespeichert.
- Das Backend läuft auf FastAPI. Es stellt erkannte Hosts über eine REST-API bereit, verwaltet Sitzungen und akzeptiert Befehle zum Starten von Scans.
- Die Weboberfläche ist mit React gebaut, serviert von NGINX, das auch API-Anfragen weiterleitet.
Dieser Stack arbeitet autonom. Innerhalb des Containers ist keine Cron-Einrichtung nötig: Periodisches Subnetz-Polling wird von Go-Timern erledigt.
Hauptfunktionen
Tiefgehende Docker-Inspektion
Viele ähnliche Tools scheitern, wenn ein Container mehrere Netzwerkschnittstellen hat. Atlas verfolgt jede Schnittstelle separat. Wenn ein Container mehrere interne IPs und MAC-Adressen hat, erscheinen alle auf dem Graphen, verknüpft mit den entsprechenden Netzwerknamen. Das Tool parst auch Image-Metadaten und versucht, den Betriebssystemtyp zu bestimmen.
Benachbarte Hosts erkennen
Atlas beschränkt sich nicht nur auf den lokalen Host. Die Variable SCAN_SUBNETS ermöglicht es, eine kommagetrennte Liste von Subnetzen anzugeben, zum Beispiel 192.168.1.0/24,10.0.0.0/24. Der Scanner erkennt verfügbare Geräte, erstellt einen OS-Fingerprint und prüft erreichbare Ports. Derselbe Host, der von verschiedenen Netzwerkadaptern sichtbar ist, wird mit den entsprechenden Schnittstellen-Labels gekennzeichnet.
Interaktive Visualisierung
Der Netzwerkgraph kann zwischen kreisförmigem und hierarchischem Layout umgeschaltet werden. Wenn die grafische Ansicht gerade nicht passt, ist eine Standard-Host-Tabelle mit allen Parametern, Filtern und Suche verfügbar. Die Oberfläche ist mobilfreundlich, sodass Sie den Netzwerkstatus vom Telefon aus prüfen können.




Flexible Planung via API
Scan-Intervalle werden beim Start gesetzt, können aber im laufenden Betrieb geändert werden, ohne den Container neu zu starten. Dedizierte API-Endpunkte übernehmen dies:
# Проверить текущие интервалы
curl http://localhost:8888/api/scheduler/intervals
# Изменить частоту быстрого сканирования на 30 минут
curl -X PUT http://localhost:8888/api/scheduler/intervals/fastscan \
-H "Content-Type: application/json" \
-d '{"interval": 1800}'
So deployen Sie es selbst
Der schnellste Weg zum Ausprobieren ist das fertige Docker-Image. Das Tool benötigt Zugriff auf das Host-Netzwerk und den Daemon-Socket:
docker run -d \
--name atlas \
--network=host \
--cap-add=NET_RAW \
--cap-add=NET_ADMIN \
-v /var/run/docker.sock:/var/run/docker.sock \
-e ATLAS_UI_PORT='8888' \
-e ATLAS_API_PORT='8889' \
-e ATLAS_ADMIN_USER='admin' \
-e ATLAS_ADMIN_PASSWORD='change-me' \
-e SCAN_SUBNETS="192.168.1.0/24" \
keinstien/atlas:latest
Die Flags NET_RAW und NET_ADMIN sind erforderlich, um während des Scans niedrigstufige Pakete zu senden. Wenn kein Admin-Passwort gesetzt ist, ist die UI-Authentifizierung standardmäßig deaktiviert. Wenn Sicherheit kritisch ist, setzen Sie ATLAS_ADMIN_PASSWORD, woraufhin die Weboberfläche durch einen Anmeldebildschirm geschützt wird und API-Endpunkte ein Bearer-Token erfordern.
Nach dem Start ist die Weboberfläche unter http://localhost:8888 verfügbar, und die interaktive Swagger-Dokumentation unter http://localhost:8888/api/docs.
Für wen ist es gedacht
Atlas passt perfekt in Home Labs, kleine Büroinfrastrukturen oder dedizierte Staging-Server, wo Testumgebungen häufig hoch- und runtergefahren werden. Das Projekt eliminiert die Notwendigkeit, eine mentale Karte lokaler Adressen zu pflegen, und hilft Ihnen, einen vergessenen offenen Port rechtzeitig zu entdecken.
Wenn Sie zuerst einen Eindruck von der Oberfläche bekommen möchten, pflegt der Autor eine öffentliche Demo unter https://atlasdemo.vnerd.nl/ mit dem Benutzernamen admin und dem Passwort change-me. Der Quellcode ist unter der MIT-Lizenz veröffentlicht, sodass Sie das Projekt bedenkenlos für Ihre eigenen Automatisierungsskripte anpassen können.
Ähnliche Projekte