GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo rastrear la actividad de red de un comando?

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 .


Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. Cómo usar el comando Su en Linux

  3. Cómo utilizar la herramienta de línea de comandos sipcalc Linux

  4. ¿Cómo programar un comando Rsync?

  5. ¿Cómo salir si falla un comando?

Cómo usar du Command en Linux

Cómo configurar redes en Vagrant

Cómo usar el comando PS

Cómo usar el comando SUPERIOR

Cómo instalar Sysdig para monitorear su sistema Linux

¿Cómo rastrear un programa java?