netstat pour la simplicité
Utilisation de netstat
et grepping sur le PID ou le nom du processus :
# 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
Et vous pourriez utiliser watch
pour les mises à jour dynamiques :
watch 'netstat -np --inet | grep "thunderbird"'
Avec :
-n
:Afficher les adresses numériques au lieu d'essayer de déterminer les noms symboliques d'hôte, de port ou d'utilisateur-p
:Affiche le PID et le nom du programme auquel appartient chaque socket.--inet
:Afficher uniquement les sockets de protocole raw, udp et tcp.
tracer la verbosité
Vous avez dit avoir essayé le strace
outil, mais avez-vous essayé l'option trace=network
?Notez que la sortie peut être assez détaillée, vous aurez donc peut-être besoin de grappin. Vous pouvez commencer par grepper sur "sin_addr".
strace -f -e trace=network <your command> 2>&1 | grep sin_addr
Ou, pour un processus déjà en cours d'exécution, utilisez le PID :
strace -f -e trace=network -p <PID> 2>&1 | grep sin_addr
sysdig
vous permet de surveiller toute l'activité du noyau ou de plusieurs commandes exécutées sur votre système en une seule fois, y compris et sans s'y limiter, l'activité du réseau.
Comme la sortie peut être volumineuse, vous devez créer des filtres, la page par défaut pour les filtres les plus élémentaires est assez compréhensible.
Il a également l'avantage de ne pas être utilisé comme wrapper d'application comme dans strace
, et cela peut être assez puissant.
À partir d'exemples Sysdig
Réseautage
Voir les principaux processus en termes d'utilisation de la bande passante du réseau
sysdig -c topprocs_net
Afficher les données réseau échangées avec l'hôte192.168.0.1
En binaire :
sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1
Au format ASCII :
sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1
Voir les principaux ports de serveur local :
En termes de connexions établies :
sysdig -c fdcount_by fd.sport "evt.type=accept"
En termes de nombre total d'octets :
sysdig -c fdbytes_by fd.sport
Voir les meilleures IP clientes
En termes de connexions établies
sysdig -c fdcount_by fd.cip "evt.type=accept"
En termes de nombre total d'octets
sysdig -c fdbytes_by fd.cip
Liste toutes les connexions entrantes qui ne sont pas desservies par apache.
sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
Je créerais un nouvel espace de noms de réseau, le relierais au réseau réel, puis surveillerais le pont avec tcpdump
.