netstat por simplicidad
Usando netstat
y grepping en el PID o nombre del proceso:
# netstat -np --inet | grep "thunderbird"
tcp 0 0 192.168.134.142:45348 192.168.138.30:143 ESTABLISHED 16875/thunderbird
tcp 0 0 192.168.134.142:58470 192.168.138.30:443 ESTABLISHED 16875/thunderbird
Y podrías usar watch
para actualizaciones dinámicas:
watch 'netstat -np --inet | grep "thunderbird"'
Con:
-n
:Muestre direcciones numéricas en lugar de intentar determinar nombres simbólicos de host, puerto o usuario-p
:Muestra el PID y el nombre del programa al que pertenece cada socket.--inet
:solo muestra sockets de protocolo sin formato, udp y tcp.
control de verbosidad
Dijiste que probaste el strace
herramienta, pero probaste la opción trace=network
?Tenga en cuenta que la salida puede ser bastante detallada, por lo que es posible que necesite un poco de grepping. Podrías empezar haciendo grepping en "sin_addr".
strace -f -e trace=network <your command> 2>&1 | grep sin_addr
O, para un proceso que ya se está ejecutando, use el PID:
strace -f -e trace=network -p <PID> 2>&1 | grep sin_addr
sysdig
le permite monitorear toda la actividad del kernel o de varios comandos que se ejecutan en su sistema de una sola vez, incluida y no restringida a la actividad de la red.
Como la salida puede ser grande, debe crear filtros, la página predeterminada para los filtros más básicos es bastante comprensible.
También tiene la ventaja de que no se usa como contenedor de aplicaciones como en strace
, y puede ser bastante poderoso.
De ejemplos de Sysdig
Redes
Vea los principales procesos en términos de uso de ancho de banda de red
sysdig -c topprocs_net
Muestra los datos de red intercambiados con el host192.168.0.1
Como binario:
sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1
Como ASCII:
sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1
Ver los principales puertos del servidor local:
En términos de conexiones establecidas:
sysdig -c fdcount_by fd.sport "evt.type=accept"
En términos de bytes totales:
sysdig -c fdbytes_by fd.sport
Ver las principales direcciones IP de los clientes
En términos de conexiones establecidas
sysdig -c fdcount_by fd.cip "evt.type=accept"
En términos de bytes totales
sysdig -c fdbytes_by fd.cip
Enumere todas las conexiones entrantes que no son atendidas por apache.
sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
Crearía un nuevo espacio de nombres de red, lo uniría a la red real y luego monitorearía el puente con tcpdump
.