从终端列出 Mac 上所有打开的互联网连接以追踪带宽问题

OS X 中的终端

使用 lsof 命令行工具,我们可以传递 -i 参数以仅列出我们 Mac 上活动和打开的互联网连接,并且我们可以找出是否有任何异常(或者在我的情况下,隐藏的东西)正在发生并连接到外部地址,并且,此命令还将向您显示有问题的应用程序或任务的进程 ID,以便我们可以在需要时将其杀死并停止活动。

从命令行显示 OS X 中所有打开的 Internet 连接的列表

这必须从 OS X 的终端输入,但它可以通过 SSH 远程使用或在 Mac 本地使用。

我登录到有问题的 Mac 并输入了以下命令:

lsof -i

您不需要使用 sudo,但如果您的特定用例需要或需要,您可以使用。

lsof 的输出有点乱,但如果您熟悉命令行,它看起来应该不会太疯狂。

这是此 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)
synergies 129 macuser 5u IPv4 0x05f2f6b0 0t0 TCP *:24800 (LISTEN)
Safari 148 macuser 10u IPv4 0x06db46e0 0t0 TCP 192.168.0.1 01:57557- >host29.prod.google.com:http (CLOSE_WAIT)
iTunes 644 macuser 21u IPv4 0x05f2f2a4 0t0 TCP *:daap (LISTEN)

terminal-icon-512x5122

仅列出已建立的 Internet 连接

如果您碰巧只想显示已建立的连接(意味着它们正在积极通信并且已在本地计算机和外部 IP 之间建立链接),您可以使用上述 lsof 字符串的此命令变体:

<代码>lsof -i | grep -E “(LISTEN|ESTABLISHED)”

您也可以将其与“watch”结合使用,以获得自动更新的已建立连接列表。

如果您碰巧知道进程名称,您也可以随时使用 grep 获取该特定或模糊的名称。

这有点高级,但对于熟悉终端和命令行的 Mac 用户来说效果很好。更多新手 Mac 用户可以使用 Private Eye 来监控 OS X 中的互联网和网络连接,这是一个免费但优秀的第三方应用程序,在图形用户界面中运行并且更容易解析,特别是如果您没有使用终端的经验。