Liste toutes les connexions Internet ouvertes sur un Mac à partir du terminal pour dépister les problèmes de bande passante

Récemment, le réseau local de mon bureau fonctionnait plus lentement que d'habitude, et je ne pouvais pas identifier ce qui consommait toute la bande passante supplémentaire. J'avais un soupçon que le trafic P2P était à blâmer mais je ne pouvais tout simplement pas voir quelque chose d'évident sur la machine fautive. Donc, la question est bien sûr, comment voyez-vous quels processus se connectent à Internet ou au monde extérieur à partir de Mac OS X?

En utilisant l'outil de ligne de commande lsof, nous pouvons passer l'argument -i pour n'indiquer que les connexions internet actives et ouvertes sur nos Mac, et nous pouvons savoir s'il y a quelque chose de particulier (ou dans mon cas, quelque chose de caché) une adresse externe, et cette commande vous montrera également quel est l'ID du processus de l'application ou de la tâche en cause, afin que nous puissions le tuer et arrêter l'activité si vous le souhaitez.

Afficher une liste de toutes les connexions Internet ouvertes dans OS X à partir de la ligne de commande

Cela doit être entré à partir du terminal d'OS X, mais il peut être utilisé à distance avec SSH ou localement sur un Mac.

Je me suis connecté au Mac offensant et j'ai tapé la commande suivante:

lsof -i

Vous ne devriez pas avoir besoin d'utiliser sudo, mais vous pouvez le faire si vous le souhaitez ou si vous le souhaitez pour votre cas d'utilisation spécifique.

La sortie de lsof est un peu occupée mais si vous êtes familier avec la ligne de commande, cela ne devrait pas être trop fou.

Voici un exemple de la sortie affichée par cette chaîne de commande lsof -i:

MacMini:~ macuser$ lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
SystemUIS 93 macuser 6u IPv4 0x04db27bc 0t0 UDP *:*
SystemUIS 93 macuser 10u IPv4 0x04db26e0 0t0 UDP *:*
iChatAgen 111 macuser 6u IPv4 0x07084734 0t0 UDP localhost:49490->localhost:49490
iChatAgen 111 macuser 10u IPv4 0x05666f28 0t0 TCP 192.168.0.101:53762->bos-m012c-sdr6.blue.aol.com:aol (ESTABLISHED)
synergys 129 macuser 5u IPv4 0x05f2f6b0 0t0 TCP *:24800 (LISTEN)
Safari 148 macuser 10u IPv4 0x06db46e0 0t0 TCP 192.168.0.101:57557->host29.prod.google.com:http (CLOSE_WAIT)
iTunes 644 macuser 21u IPv4 0x05f2f2a4 0t0 TCP *:daap (LISTEN)

Dans l'affichage de sortie lsof ci-dessus, il n'y a rien d'inhabituel, mais dans mon dépannage de réseau mentionné ci-dessus, j'ai découvert un client BitTorrent fonctionnant caché dans l'arrière-plan d'un de mes réseaux Mac, et il semait plusieurs gros fichiers! Naturellement j'ai tué le client de BitTorrent, ai enlevé l'application, ai supprimé les dossiers, et le LAN de Mac fonctionne encore à plein régime.

Annonce seulement des connexions Internet établies

Si vous souhaitez afficher uniquement les connexions établies (ce qui signifie qu'elles communiquent activement et qu'un lien a été établi entre la machine locale et une adresse IP externe), vous pouvez utiliser cette variante de commande de la chaîne lsof mentionnée ci-dessus:

lsof -i | grep -E "(LISTEN|ESTABLISHED)"

Vous pouvez combiner cela avec 'watch' pour obtenir une liste automatiquement mise à jour des connexions établies.

Et si vous connaissez le nom du processus, vous pouvez toujours utiliser grep pour ce nom spécifique ou vague.

C'est un peu avancé, mais cela marche plutôt bien pour les utilisateurs de Mac qui sont à l'aise avec le terminal et la ligne de commande en général. Les utilisateurs novices de Mac peuvent utiliser Private Eye pour surveiller les connexions Internet et réseau sous OS X, une application tierce gratuite mais excellente qui s'exécute dans l'interface utilisateur graphique et est un peu plus facile à analyser, en particulier si vous n'êtes pas expérimenté. le terminal.