
una forma más elegante de inspeccionar conexiones de red
un ss / netstat más amigable para humanos. inspecciona conexiones de red con una TUI limpia o tablas estilizadas.

brew install snitch
gracias a @bevanjkay por añadir snitch a homebrew-core
go install github.com/karol-broda/snitch@latest
nix-env -iA nixpkgs.snitch
gracias a @DieracDelta por añadir snitch a nixpkgs
# try it
nix run github:karol-broda/snitch
# install to profile
nix profile install github:karol-broda/snitch
# or add to flake inputs
{
inputs.snitch.url = "github:karol-broda/snitch";
}
# then use: inputs.snitch.packages.${system}.default
add snitch to your flake inputs and import the home-manager module:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
snitch.url = "github:karol-broda/snitch";
};
outputs = { nixpkgs, home-manager, snitch, ... }: {
homeConfigurations."user" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [
snitch.homeManagerModules.default
{
programs.snitch = {
enable = true;
# optional: use the flake's package instead of nixpkgs
# package = snitch.packages.x86_64-linux.default;
settings = {
defaults = {
theme = "catppuccin-mocha";
interval = "2s";
resolve = true;
};
};
};
}
];
};
};
}
temas disponibles: ansi, catppuccin-mocha, catppuccin-macchiato, catppuccin-frappe, catppuccin-latte, gruvbox-dark, gruvbox-light, dracula, nord, tokyo-night, tokyo-night-storm, tokyo-night-light, solarized-dark, solarized-light, one-dark, mono
# with yay
yay -S snitch-bin
# with paru
paru -S snitch-bin
curl -sSL https://raw.githubusercontent.com/karol-broda/snitch/master/install.sh | sh
se instala en ~/.local/bin si está disponible, de lo contrario en /usr/local/bin. sobrescribe con:
curl -sSL https://raw.githubusercontent.com/karol-broda/snitch/master/install.sh | INSTALL_DIR=~/bin sh
macos: el script de instalación elimina automáticamente el atributo de cuarentena (
com.apple.quarantine) del binario para permitir su ejecución sin advertencias de gatekeeper. para deshabilitar esto, estableceKEEP_QUARANTINE=1.
imágenes oci preconstruidas disponibles desde github container registry:
# pull from ghcr.io
docker pull ghcr.io/karol-broda/snitch:latest # alpine (default)
docker pull ghcr.io/karol-broda/snitch:latest-alpine # alpine (~17MB)
docker pull ghcr.io/karol-broda/snitch:latest-scratch # minimal, binary only (~9MB)
docker pull ghcr.io/karol-broda/snitch:latest-debian # debian trixie
docker pull ghcr.io/karol-broda/snitch:latest-ubuntu # ubuntu 24.04
# or use a specific version
docker pull ghcr.io/karol-broda/snitch:0.2.0-alpine
alternativamente, compila localmente mediante nix flake:
nix build github:karol-broda/snitch#snitch-alpine
docker load < result
ejecutando el contenedor:
# basic usage - sees host sockets but not process names
docker run --rm --net=host snitch:latest ls
# full info - includes PID, process name, user
docker run --rm --net=host --pid=host --cap-add=SYS_PTRACE snitch:latest ls
| bandera | propósito |
|---|---|
--net=host | compartir el espacio de nombres de red del host (necesario para ver conexiones del host) |
--pid=host | compartir el espacio de nombres de pid del host (necesario para información de procesos) |
--cap-add=SYS_PTRACE | leer detalles del proceso desde /proc/<pid> |
nota:
CAP_NET_ADMINyCAP_NET_RAWno son necesarios. snitch lee de/proc/net/*, lo que no necesita capacidades de red especiales.
descargar desde lanzamientos:
snitch_<version>_linux_<arch>.tar.gz o .deb/.rpm/.apksnitch_<version>_darwin_<arch>.tar.gztar xzf snitch_*.tar.gz
sudo mv snitch /usr/local/bin/
macos: si es bloqueado con "cannot be opened because the developer cannot be verified", ejecuta:
xattr -d com.apple.quarantine /usr/local/bin/snitch
snitch # launch interactive tui
snitch -l # tui showing only listening sockets
snitch ls # print styled table and exit
snitch ls -l # listening sockets only
snitch ls -t -e # tcp established connections
snitch ls -p # plain output (parsable)
snitch / snitch topTUI interactiva con lista de conexiones actualizada en vivo.
snitch # all connections
snitch -l # listening only
snitch -t # tcp only
snitch -e # established only
snitch -i 2s # 2 second refresh interval
teclas:
j/k, ↑/↓ navegar
g/G arriba/abajo
t/u alternar tcp/udp
l/e/o alternar escucha/establecido/otro
s/S alternar orden / reverso
w vigilar/monitorear proceso (resaltar)
W limpiar todos los vigilados
K matar proceso (con confirmación)
/ buscar
enter detalles de conexión
? ayuda
q salir
snitch lssalida de tabla única. usa un paginador automáticamente si la salida supera la altura del terminal.
snitch ls # styled table (default)
snitch ls -l # listening only
snitch ls -t -l # tcp listeners
snitch ls -e # established only
snitch ls -p # plain/parsable output
snitch ls -o json # json output
snitch ls -o csv # csv output
snitch ls -n # numeric (no dns resolution)
snitch ls --no-headers # omit headers
snitch jsonsalida JSON para scripts.
snitch json
snitch json -l
snitch watchtransmitir tramas JSON a intervalos.
snitch watch -i 1s | jq '.count'
snitch watch -l -i 500ms
snitch upgradeverificar actualizaciones y actualizar en el lugar.
snitch upgrade # check for updates
snitch upgrade --yes # upgrade automatically
snitch upgrade -v 0.1.7 # install specific version
las banderas de acceso directo funcionan en todos los comandos:
-t, --tcp tcp only
-u, --udp udp only
-l, --listen listening sockets
-e, --established established connections
-4, --ipv4 ipv4 only
-6, --ipv6 ipv6 only
opciones de resolución de DNS y nombres de servicio:
--resolve-addrs resolver direcciones IP a nombres de host (predeterminado: true)
--resolve-ports resolver números de puerto a nombres de servicio
--no-cache deshabilitar caché DNS (forzar consultas frescas)
Las consultas DNS se realizan en paralelo y se almacenan en caché por rendimiento. usa --no-cache para omitir la caché para depuración o cuando las direcciones cambian frecuentemente.
para filtrado más específico, usa sintaxis key=value con ls:
snitch ls proto=tcp state=listen
snitch ls pid=1234
snitch ls proc=nginx
snitch ls lport=443
snitch ls contains=google
tabla estilizada (predeterminada):