在 Mac OS X 中通过命令行显示哪些应用程序和进程正在使用 Internet 连接

Mac OS X 中的终端

就像您可以监控 Mac OS X 文件系统使用情况通过命令行,您还可以发现哪些应用程序和个别进程当前正在使用您的 Mac 互联网连接。如果您知道您的带宽正被某些东西占用,或者如果您只是想追踪哪些应用程序或后台进程正在连接到外部世界,这将是一个非常方便的技巧。

要确定哪些 Mac 应用程序、守护程序、进程或其他任何东西正在使用互联网,我们将转向 Mac OS X 的命令行并使用优秀的 lsof 命令的更高级变体.是的,这适用于任何版本的 MacOS 或 Mac OS X,以及通过任何服务的互联网连接类型,无论是 wi-fi 和无线网络还是以太网,这也适用于 linux 机器,因为 lsof 是标准网络工具二进制文件。

我们将介绍两种方法来做到这一点,第一种提供易于阅读的输出,并将打印连接到外部世界的应用程序和进程的名称,第二种字符串将提供有关 PID 连接到什么的极其详细的信息哪个主机和使用什么协议。根据您的具体需要,您可以使用其中之一,也可以同时使用两者。

如何在 Mac OS X 中使用 Internet 显示应用程序和进程的名称

如果您还没有打开终端应用程序,请准确输入以下命令:

<代码>lsof -nPi |切-f 1 -d“”|独特 |尾巴-n +2

如果您不熟悉命令行,您可能想要复制/粘贴该字符串,只需确保整个字符串在一行语法上执行即可。

运行那个冗长的命令会给你的输出看起来像这样:

SystemUIS
Dropbox
iChatAgen
Finder
iTunes
Google
ssh

这些只是活跃使用互联网的应用程序和进程名称。现在,显然这里没有更多数据,但如果您只是想追踪流氓带宽占用应用程序,有时它就足够了。

当然,在很多情况下,扩展信息包括哪些进程和/或应用程序正在使用网络连接、如何使用以及连接到什么远程地址,这就是我们接下来要介绍的内容。

如何显示从 Mac OS X 连接到 Internet 的进程 ID 的详细信息

如果你想要比上面的命令字符串中显示的更详细的信息,我们可以修改上面的命令,以便我们通过删除到其他命令行实用程序的管道从 lsof 中获得更多原始数据,留下未完善的细节直接从lsof。您还会注意到我删除了 -n 标志,因为这次我想查看主机名:

lsof -Pi

这将提供更详细的数据,包括应用程序名称、PID、协议、IP 地址、主机名和连接的当前状态。所有非常有用的数据。

如果这是信息过载,请尝试通过“more”管道命令,以便更容易分块阅读,或者使用 grep 为特定应用程序或进程排序数据,如下所示:

$ lsof -Pi |grep iChatAgen
iChatAgen 228 David 10u IPv4 0x0bfe44ec 0t0 UDP 127.0.0.1:5191->bos-d25v-r2d2.blue.aol.com:5191
iChatAgen 228 大卫 13u IPv4 0x1e148b1e 0t0 TCP 192.168.1.29:50051->206.198.4.49:5190(已建立)

lsof 是一个功能强大的实用程序,用途广泛。我介绍了使用 lsof 追踪带宽问题 很久以前,但它只使用了 -i 标志,这大大简化了。您可以使用所涵盖的任何变体,并且每个变体都有自己的有用案例。

命令行工具面向高级用户,但 Mac OS X 的新手或不喜欢 Terminal 的用户可以使用 Private Eye 以类似的方式帮助查看正在使用 Mac 互联网连接的内容,尽管更加用户友好并且完全在传统的 Mac 应用程序中。