Répertorier toutes les connexions Internet ouvertes sur un Mac à partir d'un terminal pour détecter 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 utilisait toute la bande passante supplémentaire. Je soupçonnais que le trafic P2P était à blâmer, mais je ne pouvais tout simplement rien voir d'évident sur la machine incriminée. Donc, la question bien sûr est de savoir comment voyez-vous quels processus se connectent à Internet ou au monde extérieur à partir de Mac OS X ?
À l'aide de l'outil de ligne de commande lsof, nous pouvons passer l'argument -i pour répertorier uniquement 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é) se passe et se connecte à une adresse extérieure, et cette commande vous montrera également quel est l'ID de processus de l'application ou de la tâche incriminée, afin que nous puissions la tuer et arrêter l'activité si vous le souhaitez.
Afficher une liste de toutes les connexions Internet ouvertes sous OS X à partir de la ligne de commande
Ceci doit être saisi depuis le terminal d'OS X, mais il peut être utilisé à distance avec SSH ou localement sur un Mac.
Je me suis connecté au Mac incriminé et j'ai tapé la commande suivante :
lsof -i
Vous ne devriez pas avoir besoin d'utiliser sudo, mais vous pouvez si vous le souhaitez ou si cela est nécessaire 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 COMMANDE PID UTILISATEUR FD TYPE APPAREIL TAILLE/NON NOM DU NŒUD 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 ( Établi) Synergys 129 MacUser 5U ipv4 0x05f2f6b0 0t0 TCP : 24800 (écouter) Safari 148 MacUser 10U IPv4 0x06db46e0 0t0 TCP 192.168.0.101:57557->Host29.prod.google :daap (ÉCOUTER)
Dans l'affichage de sortie lsof ci-dessus, il n'y a rien d'inhabituel, mais dans mon dépannage réseau susmentionné, j'ai découvert un client BitTorrent qui s'exécutait caché en arrière-plan de l'un de mes réseaux Mac, et il semait plusieurs fichiers volumineux ! Naturellement, j'ai tué le client BitTorrent, supprimé l'application, supprimé les fichiers et le réseau local Mac fonctionne à nouveau à pleine vitesse.
Répertorier uniquement les connexions Internet établies
Si vous souhaitez afficher uniquement les connexions établies (c'est-à-dire 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 celle susmentionnée lsof chaîne :
lsof -i | grep -E (ÉCOUTER|ÉTABLI)"
Vous pouvez combiner cela avec "regarder" pour obtenir également 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 également.
C'est un peu avancé, mais cela fonctionne assez bien pour les utilisateurs de Mac qui sont à l'aise avec le terminal et la ligne de commande en général. Les utilisateurs Mac plus novices peuvent utiliser Private Eye pour surveiller les connexions Internet et réseau sous OS X, qui est 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é avec le terminal.