Comment savoir quel processus consomme ma bande passante?

185

Je pense que je suis victime d'un bug ici. Parfois, pendant que je travaille (je ne sais toujours pas pourquoi), mon trafic réseau atteint 200 Ko / s et le reste, même si je ne fais rien d’internet.

Cela m'arrive parfois avec l'utilisation du processeur. Lorsque cela se produit, je lance simplement une topcommande pour déterminer quel processus est responsable, puis le processus kill. Le problème est le suivant: je n'ai aucun moyen de savoir quel processus est responsable de mon utilisation élevée du réseau. Le moniteur de ressources et la topcommande ne me disent que mon utilisation totale du réseau, aucun d'eux ne me dit de traiter des informations réseau spécifiques.

J'ai trouvé des questions ici sur la surveillance de l'utilisation totale de la bande passante, mais, comme je l'ai mentionné, ce n'est pas ce dont j'ai besoin. Existe-t-il une autre commande que je peux utiliser pour savoir quel processus est hors de contrôle?

La commande iftopdonne des résultats totalement en désaccord avec les informations rapportées par le Moniteur système. Alors que ce dernier affirme qu'il y a un trafic réseau élevé, le premier affirme qu'il y a à peine 1 Ko / s.

J'ai déjà essayé de supprimer tous les problèmes évidents (Firefox, gestionnaire de mise à jour, Pidgin, etc.) sans succès. Jusqu'à présent, le redémarrage de la machine est le seul moyen que j'ai trouvé pour résoudre ce problème.

Malabarba
la source

Réponses:

222

J'ai eu beaucoup de succès avec Nethogs . Il doit s’exécuter en tant qu’utilisateur root, mais il existe différentes manières de trier les statistiques (par exemple, Ko / s ou la bande passante totale surveillée depuis le démarrage de nethogs).

De plus, si vous utilisez la technologie sans fil, vous devez y transférer le périphérique.

Installez-le avec la commande: sudo apt-get install nethogs

Exemple: sudo nethogs wlan0

Ben
la source
À y regarder de plus près, il est vraiment ennuyeux de supposer que le terminal a toujours une largeur de 80 caractères et tronque la commande.
Li Lo
3
Cela fait un moment, mais cette réponse est considérablement plus simple.
Malabarba
2
nethogsest bien, mais il semble utiliser beaucoup plus de cpu sur mon ordinateur queiftop
aidan
4
Soyez averti d'un bug rendant certaines versions de nethoginutilisables: askubuntu.com/questions/726601/…
Rmano
3
Vous n'avez pas besoin de passer l'appareil si vous utilisez le sans fil. sudo nethogsfonctionne bien.
Ads20000
55

Utilisez iftoppour localiser le port TCP sur votre ordinateur qui reçoit le plus de trafic. Puis utilisez sudo netstat -tuppour localiser le processus "possédant" ce port.

C'est le processus que vous recherchez.

PS: devrait aussi fonctionner pour UDP.

Li Lo
la source
Merci, la commande semble fonctionner, mais j'obtiens des résultats étranges. Le moniteur système réclame au total environ 180 Ko / s, alors qu’il en iftopréclame à peine 1 kilo-octet par seconde.
Malabarba
1
J'accepte la réponse, car cela répond à la question initiale. Mais je serai bien si je peux comprendre ce qui se passe ici.
Malabarba
iptop affiche les statistiques pour une seule interface. Je ne suis pas sûr que System Monitor examine une seule interface ou toutes les interfaces. Si tel est le cas, il y aura un trafic indiqué par le Moniteur système, mais pas par iftop, ce qui est OK car vous ne voulez que regarder votre interface Internet de toute façon (et non pas bas). Je viens de tester iftop sur mon système et cela a montré ce à quoi je m'attendais. Sachez cependant que iftop affiche des moyennes supérieures à 2s, 10s, 40s respectivement. J'ai couru iftop comme 'sudo iftop -i eth0 -nPB', comment l'avez-vous exécuté?
Li Lo
Je l'ai exécuté en tant que sudo iftop -B -i eth0, cela signifie qu'il ne regardait que mon trafic Internet, non? Je ne me suis pas rendu compte que le moniteur du système vérifiait peut-être également d'autres interfaces. Ironiquement, le problème a disparu il y a 10 minutes (après de nombreuses heures), je ne peux donc plus vérifier iftoppour l'instant. Que signifie l'interface lo?
Malabarba
3
Comme il y a beaucoup de chiffres sur l'écran iftop, j'ai créé une capture d'écran dans laquelle j'ai souligné le nombre qui vous intéressait. Comparez cela au moniteur système. La capture d'écran est à imgur.com/2iuiI . "lo" signifie localhost, c'est une interface à travers laquelle les programmes locaux peuvent communiquer entre eux.
Li Lo
14

Vous voudrez peut-être rechercher ntop- qui devrait surveiller l'activité du réseau au niveau du processus. Vous pouvez trouver ntopdans le centre logiciel ou avecsudo apt-get install ntop

Pour les instructions d’installation, suivez leur page http://packages.ntop.org/

Marco Ceppi
la source
2
pas disponible avec ubuntu 17.04 (zesty)
shadi
voir packages.ntop.org/apt-stable pour les dépôts des versions ultérieures d'ubuntu. aussi c'estapt-get install ntopng
dw1
7

Une autre alternative est iptraf. Cela ne vous indiquera pas le PID du processus, mais vous indiquera quelle connexion utilise combien de bande passante.

Dennis Kaarsemaker
la source
6

Réponse tardive, mais j'ai eu le même problème. S'est avéré être Ubuntuone. J'ai trouvé ça en exécutant tcpdump. J'ai suivi la même courbe d'apprentissage sur l'identification des processus.

De mes notes :

Informations de connexion de la boîte Ubuntu

J'ai démarré mon bureau Ubuntu 10.04 ce matin en constatant qu'après quelques minutes, la connexion Internet était en train d'explorer. J'ai déjà vu cela sur des machines Windows et 99% du temps, ce sont des logiciels espions. Donc, je devais enquêter sur ... le style de ligne de commande.

tcpdump. Montre Ubuntuone devenir fou.

Système> Préférences> Ubuntu One. Désactivez toute la synchronisation. Cela l'a fait.

Donc, je pense que j'aimerais voir toutes les connexions réseau et ce qu'elles font. je peux

netstat -cW (liste les connexions réseau en continu au format large afin que les adresses étrangères ne soient pas tronquées)

lsof -i |grep -v 'localhost' (liste les fichiers ouverts correspondant à l'adresse Internet de n'importe lequel, grep pour supprimer tous les fichiers ouverts associés à localhost - je pensais ici que je ne voulais pas voir les services locaux car ils n'affecteraient probablement pas l'utilisation du réseau).

Quelques choses à emporter:

  1. Besoin de se renseigner sur les journaux Ubuntu pour le dépannage.
  2. Besoin d'en savoir plus sur tcpdump, je vais donc commencer par ce tutoriel de Daniel Miessler .

Note de l'éditeur: cette réponse faisait référence à l'article de blogspot de tinker qui est destiné aux utilisateurs invités uniquement. Puisque cette réponse a des votes positifs appréciables, elle est donc précieuse. J'ai trouvé une copie de l'article sur Wayback Machine . Et inclus cela ici.

bricoler
la source