- Snitch ist ein besser lesbares Werkzeug zur Inspektion von Netzwerkverbindungen als
ss oder netstat und unterstützt eine Terminal-UI (TUI) sowie formatierte Tabellen
- Es zeigt Verbindungszustände entweder in einer interaktiven Echtzeitansicht oder als einmalig ausgegebene Tabelle an und bietet verschiedene Filter wie TCP/UDP, Listening und Established
- Enthalten sind JSON- und CSV-Ausgabe, Auflösung von DNS- und Dienstnamen, Prozessüberwachung und -beendigung sowie automatische Updates
- Unterstützt werden mehrere Installationsmethoden wie Homebrew, Go, Nix, Arch Linux, Shell-Script und Binarys, einschließlich der automatischen Entfernung von Gatekeeper-Warnungen unter macOS
- Ein nützliches Tool für Entwickler und Systemadministratoren, um Netzwerkverbindungen intuitiv zu überwachen und in Skript-Automatisierung einzubinden
Überblick
- Snitch ist ein Tool zum visuellen Erkunden von Netzwerkverbindungen, entwickelt als Alternative zu
ss oder netstat
- Es zeigt den Verbindungsstatus über eine TUI-Oberfläche oder eine formatierte Tabellenausgabe an
- Es läuft unter Linux und macOS; dabei können Root-Rechte oder die Berechtigung CAP_NET_ADMIN erforderlich sein
Installation
- Homebrew: Installation mit dem Befehl
brew install snitch
- Go:
go install github.com/karol-broda/snitch@latest
- Nix/NixOS:
nix-env -iA nixpkgs.snitch oder über einen Flake-Input hinzufügen
- Arch Linux (AUR):
yay -S snitch-bin oder paru -S snitch-bin
- Shell-Script: Installation mit
curl -sSL ... | sh, Standardpfad ist ~/.local/bin oder /usr/local/bin
- Unter macOS entfernt das Installationsskript automatisch das Quarantine-Attribut
- Binary-Download: Auf GitHub Releases sind Versionen für Linux (.tar.gz, .deb, .rpm, .apk) und macOS (.tar.gz) verfügbar
Schnellstart
- Beim Ausführen von
snitch startet die interaktive TUI
snitch -l zeigt nur Listening-Sockets, snitch ls gibt eine Tabelle aus und beendet sich dann
snitch ls -t -e zeigt nur aufgebaute TCP-Sitzungen, snitch ls -p erzeugt eine einfach parsebare Ausgabe
Wichtige Befehle
snitch / snitch top: Zeigt eine in Echtzeit aktualisierte Verbindungsliste
- Optionen:
-l (Listening), -t (TCP), -e (Established), -i (Aktualisierungsintervall)
- Tastenkürzel:
j/k bewegen, t/u TCP·UDP umschalten, K Prozess beenden, / suchen, q beenden usw.
snitch ls: Gibt eine Tabelle auf einmal aus; bei Überschreitung der Terminalhöhe wird automatisch ein Pager verwendet
- Ausgabeformate: Standardtabelle,
-o json, -o csv, -p (einfach), --no-headers (ohne Header)
snitch json: Gibt JSON aus und eignet sich für Skripte
snitch watch: Streamt JSON-Frames in festgelegten Intervallen
snitch upgrade: Prüft die Version und führt ein automatisches Update durch
Filter- und Auflösungsoptionen
- Gemeinsame Flags:
-t (TCP), -u (UDP), -l (Listening), -e (Established), -4 (IPv4), -6 (IPv6)
- DNS- und Dienstnamenauflösung:
- Unterstützt die Optionen
--resolve-addrs, --resolve-ports, --no-cache
- Führt parallele DNS-Abfragen mit Caching aus; mit
--no-cache lässt sich der Cache deaktivieren
- Detaillierte Filterung: Prozessname, Port, Status usw. können im Format
key=value angegeben werden
- Beispiele:
snitch ls proto=tcp state=listen, snitch ls proc=nginx
Ausgabeformate
- Standard-Tabellenausgabe: Zeigt Prozessname, PID, Protokoll, Status sowie lokale Adresse und Port
- Einfache Ausgabe (-p): Parsebares Textformat
- JSON/CSV-Ausgabe: Für Skript-Automatisierung und Log-Analyse geeignet
Konfiguration und Umgebungsvariablen
- Konfigurationsdatei:
~/.config/snitch/snitch.toml
- Einstellbar sind
numeric, dns_cache, theme (auto/dark/light/mono)
- Umgebungsvariablen:
- Unterstützt werden unter anderem
SNITCH_THEME, SNITCH_RESOLVE, SNITCH_DNS_CACHE, SNITCH_NO_COLOR, SNITCH_CONFIG
Systemanforderungen
- Erfordert Linux oder macOS
- Linux: Liest Daten aus
/proc/net/*; für vollständige Prozessinformationen sind Root-Rechte oder CAP_NET_ADMIN erforderlich
- macOS: Verwendet System-APIs; für vollständige Prozessinformationen ist
sudo erforderlich
Noch keine Kommentare.