7 points par GN⁺ 2025-12-25 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Snitch est un outil d’inspection des connexions réseau plus lisible pour les humains que ss ou netstat, avec prise en charge d’une interface terminale (TUI) et de tableaux stylisés
  • Il affiche l’état des connexions dans un écran interactif en temps réel ou sous forme de tableau affiché en une seule fois, avec divers filtres comme TCP/UDP, écoute, connecté
  • Il inclut des fonctions de sortie JSON·CSV, résolution DNS/noms de services, surveillance et arrêt de processus, ainsi que mise à jour automatique
  • Il prend en charge plusieurs méthodes d’installation, notamment Homebrew, Go, Nix, Arch Linux, script shell et binaire, avec suppression automatique de l’avertissement Gatekeeper sur macOS
  • C’est un outil utile pour les développeurs et les administrateurs système afin de surveiller intuitivement les connexions réseau et de l’utiliser dans l’automatisation par script

Vue d’ensemble

  • Snitch est un outil conçu pour explorer visuellement les connexions réseau, pensé comme une alternative à ss ou netstat
  • Il affiche l’état des connexions via une interface TUI ou une sortie tabulaire stylisée
  • Il fonctionne sous Linux et macOS, et peut nécessiter des droits root ou la capacité CAP_NET_ADMIN

Installation

  • Homebrew : installation possible avec la commande brew install snitch
  • Go : go install github.com/karol-broda/snitch@latest
  • Nix/NixOS : nix-env -iA nixpkgs.snitch ou ajout possible comme entrée flake
  • Arch Linux (AUR) : yay -S snitch-bin ou paru -S snitch-bin
  • Script shell : installation avec la commande curl -sSL ... | sh, chemin par défaut ~/.local/bin ou /usr/local/bin
    • Sur macOS, le script d’installation supprime automatiquement l’attribut de quarantaine
  • Téléchargement du binaire : versions Linux (.tar.gz, .deb, .rpm, .apk) et macOS (.tar.gz) disponibles via GitHub Releases

Démarrage rapide

  • L’exécution de snitch lance le TUI interactif
  • snitch -l affiche uniquement les sockets en écoute, et snitch ls affiche un tableau puis quitte
  • snitch ls -t -e affiche uniquement les sessions TCP connectées, et snitch ls -p produit une sortie simple et analysable

Commandes principales

  • snitch / snitch top : affiche une liste de connexions mise à jour en temps réel
    • Options : -l (écoute), -t (TCP), -e (connecté), -i (intervalle de rafraîchissement)
    • Raccourcis clavier : déplacement j/k, bascule TCP·UDP avec t/u, arrêt d’un processus avec K, recherche avec /, quitter avec q, etc.
  • snitch ls : affiche un tableau en une seule fois, avec utilisation automatique d’un pager si la sortie dépasse la hauteur du terminal
    • Formats de sortie : tableau par défaut, -o json, -o csv, -p (simple), --no-headers (sans en-têtes)
  • snitch json : sortie au format JSON exploitable dans des scripts
  • snitch watch : diffuse des frames JSON à intervalles réguliers
  • snitch upgrade : vérifie la version et effectue une mise à jour automatique

Options de filtre et de résolution

  • Drapeaux communs : -t (TCP), -u (UDP), -l (écoute), -e (connecté), -4 (IPv4), -6 (IPv6)
  • Résolution DNS et noms de services :
    • Prise en charge des options --resolve-addrs, --resolve-ports, --no-cache
    • Effectue des requêtes DNS en parallèle avec mise en cache, désactivable via --no-cache
  • Filtrage détaillé : spécification du nom de processus, port, état, etc. au format key=value
    • Exemple : snitch ls proto=tcp state=listen, snitch ls proc=nginx

Formats de sortie

  • Sortie tabulaire par défaut : nom du processus, PID, protocole, état, adresse locale et port
  • Sortie simple (-p) : texte facile à parser
  • Sortie JSON/CSV : utile pour l’automatisation par script et l’analyse de journaux

Configuration et variables d’environnement

  • Fichier de configuration : ~/.config/snitch/snitch.toml
    • Réglages possibles : numeric, dns_cache, theme (auto/dark/light/mono)
  • Variables d’environnement :
    • Prise en charge de SNITCH_THEME, SNITCH_RESOLVE, SNITCH_DNS_CACHE, SNITCH_NO_COLOR, SNITCH_CONFIG, etc.

Exigences système

  • Nécessite un environnement Linux ou macOS
  • Linux : lecture des données depuis /proc/net/*, avec droits root ou CAP_NET_ADMIN requis pour les informations complètes sur les processus
  • macOS : utilisation des API système, avec sudo requis pour les informations complètes sur les processus

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.