GNU/Linux >> Linux Esercitazione >  >> Linux

Come tracciare l'attività di rete di un comando?

netstat per semplicità

Utilizzando netstat e grepping sul PID o sul nome del processo:

# 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

E potresti usare watch per gli aggiornamenti dinamici:

watch 'netstat -np --inet | grep "thunderbird"'

Con:

  • -n :Mostra indirizzi numerici invece di cercare di determinare nomi simbolici di host, porte o utenti
  • -p :Mostra il PID e il nome del programma a cui appartiene ciascun socket.
  • --inet :mostra solo socket di protocollo raw, udp e tcp.

strace per verbosità

Hai detto di aver provato il strace tool, ma hai provato l'opzione trace=network ?Nota che l'output può essere abbastanza prolisso, quindi potresti aver bisogno di un po' di grepping. Potresti iniziare con il grep su "sin_addr".

 strace -f -e trace=network <your command> 2>&1 | grep sin_addr

Oppure, per un processo già in esecuzione, usa il PID:

 strace -f -e trace=network -p <PID> 2>&1 | grep sin_addr

sysdig ti consente di monitorare tutta l'attività del kernel o di diversi comandi in esecuzione nel tuo sistema in un colpo solo, inclusa e non limitata all'attività di rete.

Poiché l'output può essere grande, devi creare filtri, la pagina predefinita per i filtri più basilari è abbastanza comprensibile.

Ha anche il vantaggio di non essere usato come wrapper dell'applicazione come in strace e può essere molto potente.

Da Sysdig Esempi

Rete

Scopri i principali processi in termini di utilizzo della larghezza di banda della rete

sysdig -c topprocs_net 

Mostra i dati di rete scambiati con l'host192.168.0.1

Come binario:

sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1   

Come ASCII:

sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1 

Guarda le principali porte del server locale:

In termini di connessioni stabilite:

sysdig -c fdcount_by fd.sport "evt.type=accept"   

In termini di byte totali:

sysdig -c fdbytes_by fd.sport 

Visualizza i principali IP client

In termini di connessioni stabilite

sysdig -c fdcount_by fd.cip "evt.type=accept"   

In termini di byte totali

sysdig -c fdbytes_by fd.cip 

Elenca tutte le connessioni in entrata che non sono servite da apache.

sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"

Creerei un nuovo spazio dei nomi di rete, lo collegherei alla rete reale e quindi monitorerei il bridge con tcpdump .


Linux
  1. Come rinominare i file in Linux

  2. Come usare il comando Su in Linux

  3. Come utilizzare lo strumento da riga di comando sipcalc Linux

  4. Come pianificare un comando Rsync?

  5. Come uscire se un comando fallisce?

Come usare du Command in Linux

Come configurare la rete in Vagrant

Come usare il comando PS

Come usare il comando TOP

Come installare Sysdig per monitorare il tuo sistema Linux

Come rintracciare un programma Java?