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_netMostra i dati di rete scambiati con l'host192.168.0.1
Come binario:
sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1Come ASCII:
sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1Guarda 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.sportVisualizza 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.cipElenca 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 .