darkstat
Démon de statistiques de trafic réseau. Capture les paquets et génère des statistiques web : hôtes, ports, protocoles et utilisation de bande passante visualisés dans une interface navigateur. Network traffic statistics daemon. Captures packets and generates web-based traffic statistics — hosts, ports, protocols, and bandwidth usage visualized in a browser interface.
↗ https://unix4lyfe.org/darkstat/Overview
darkstat is a lightweight network traffic statistics collector. It runs as a daemon, captures traffic on an interface, and serves traffic statistics through a built-in web interface — showing per-host traffic, protocol breakdown, and bandwidth usage over time.
Basic Usage
Start darkstat on an interface
sudo darkstat -i eth0
Start on specific port (default: 667)
sudo darkstat -i eth0 -p 8080
Bind to specific address
sudo darkstat -i eth0 -b 127.0.0.1
Capture in promiscuous mode
sudo darkstat -i eth0 --promisc
# Access web interface:
# http://localhost:667/
Configuration Options
Specify network device
sudo darkstat -i wlan0
Custom port and address
sudo darkstat -i eth0 -b 0.0.0.0 -p 8888
Disable promiscuous mode
sudo darkstat -i eth0 --no-promisc
Capture filter (BPF)
sudo darkstat -i eth0 -f "not port 22"
Specify base URL
sudo darkstat -i eth0 -r /darkstat/
Web Interface Features
# Hosts view
# → List of all hosts with traffic stats
# → Click a host for per-port breakdown
# Graphs view
# → Bandwidth usage over time (1m, 5m, 1h, 1d)
# → Protocol distribution
# Statistics
# → Packet counts by protocol
# → Total bandwidth in/out
Running as a Service
# Create systemd service
cat > /etc/systemd/system/darkstat.service << EOF
[Unit]
Description=Darkstat Network Monitor
After=network.target
[Service]
ExecStart=/usr/sbin/darkstat -i eth0 -b 127.0.0.1 -p 667
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable darkstat
systemctl start darkstat
Forensic Use
Start before a pentest to capture all traffic
sudo darkstat -i eth0
# After pentest: review what hosts communicated
# http://localhost:667/#hosts
# Look for:
# - Unexpected external connections
# - High bandwidth transfers
# - Connections to uncommon ports
Tips
- Very lightweight — minimal performance impact on the monitored host
- The web interface is unauthenticated by default — bind to 127.0.0.1 in production
- Good for long-term monitoring on jump boxes or network taps
- Not suitable for full packet capture — use tcpdump/wireshark for that
- Complements full-featured tools like ntopng for network visibility
Help / Man page
darkstat [options]
-i IFACE Network interface to monitor
-b ADDR Bind web server to address (default: 0.0.0.0)
-p PORT Web server port (default: 667)
-f FILTER BPF capture filter
--promisc Enable promiscuous mode
--no-promisc Disable promiscuous mode
-r PATH Base URL path
--chroot DIR Chroot directory
--pidfile F PID file
Vue d’ensemble
darkstat est un collecteur léger de statistiques de trafic réseau. Il tourne comme un démon, capture le trafic d’une interface, et sert des statistiques via une interface web intégrée : trafic par hôte, répartition par protocole, et utilisation de bande passante dans le temps.
Utilisation de base
# Démarrer darkstat sur une interface
sudo darkstat -i eth0
# Démarrer sur un port précis (défaut : 667)
sudo darkstat -i eth0 -p 8080
# Se lier à une adresse précise
sudo darkstat -i eth0 -b 127.0.0.1
# Capturer en mode promiscuous
sudo darkstat -i eth0 --promisc
# Accéder à l'interface web :
# http://localhost:667/
Options de configuration
# Spécifier le périphérique réseau
sudo darkstat -i wlan0
# Port et adresse personnalisés
sudo darkstat -i eth0 -b 0.0.0.0 -p 8888
# Désactiver le mode promiscuous
sudo darkstat -i eth0 --no-promisc
# Filtre de capture (BPF)
sudo darkstat -i eth0 -f "not port 22"
# Spécifier l'URL de base
sudo darkstat -i eth0 -r /darkstat/
Fonctionnalités de l’interface web
# Vue Hosts
# → Liste de tous les hôtes avec leurs stats de trafic
# → Cliquer sur un hôte pour la répartition par port
# Vue Graphs
# → Utilisation de bande passante dans le temps (1m, 5m, 1h, 1d)
# → Distribution des protocoles
# Statistics
# → Compteurs de paquets par protocole
# → Bande passante totale entrante/sortante
Lancer comme service
# Créer un service systemd
cat > /etc/systemd/system/darkstat.service << EOF
[Unit]
Description=Darkstat Network Monitor
After=network.target
[Service]
ExecStart=/usr/sbin/darkstat -i eth0 -b 127.0.0.1 -p 667
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable darkstat
systemctl start darkstat
Usage forensique
# Démarrer avant un pentest pour capturer tout le trafic
sudo darkstat -i eth0
# Après le pentest : examiner quels hôtes ont communiqué
# http://localhost:667/#hosts
# Chercher :
# - Des connexions externes inattendues
# - Des transferts à haute bande passante
# - Des connexions vers des ports inhabituels
Conseils
- Très léger : impact minimal sur les performances de l’hôte surveillé
- L’interface web n’est pas authentifiée par défaut : liez-la à 127.0.0.1 en production
- Bon pour de la surveillance longue durée sur des jump boxes ou des taps réseau
- Pas adapté à la capture complète de paquets : utilisez tcpdump/wireshark pour ça
- Complète des outils plus complets comme ntopng pour la visibilité réseau
Aide / Page de manuel
darkstat [options]
-i IFACE Network interface to monitor
-b ADDR Bind web server to address (default: 0.0.0.0)
-p PORT Web server port (default: 667)
-f FILTER BPF capture filter
--promisc Enable promiscuous mode
--no-promisc Disable promiscuous mode
-r PATH Base URL path
--chroot DIR Chroot directory
--pidfile F PID file