从终端列出 Mac 上所有打开的 Internet 连接以跟踪带宽问题
最近我办公室的 LAN 运行速度比平时慢,我无法确定是什么用完了所有额外的带宽。我怀疑 P2P 流量是罪魁祸首,但我在有问题的机器上看不到任何明显的东西。那么问题当然是,您如何从 Mac OS X 查看哪些进程正在连接到 Internet 或外部世界?
使用 lsof 命令行工具,我们可以传递 -i 参数以仅列出我们 Mac 上活动和打开的互联网连接,我们可以找出是否有任何异常(或者在我的情况下,一些隐藏的东西)继续并连接到外部地址,并且,此命令还将向您显示有问题的应用程序或任务的进程 ID 是什么,以便我们可以在需要时将其杀死并停止活动。
从命令行显示OS X中所有打开的互联网连接列表
这必须从OS X的终端输入,但它可以通过SSH远程使用,也可以在Mac本地使用。
我登录到有问题的Mac并输入以下命令:
lsof -i
您不需要使用 sudo,但如果需要或需要您的特定用例,您可以使用。
lsof 的输出有点乱,但如果你熟悉命令行,它应该不会看起来太疯狂。
这是此lsof -i 命令字符串显示的输出示例:
MacMini:~ macuser$ lsof -i 命令 PID 用户 FD 类型设备大小/关闭节点名称 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(听)
在上面的 lsof 输出显示中没有任何异常,但是在我前面提到的网络故障排除中,我发现一个 BitTorrent 客户端隐藏在我的一台网络 Mac 的后台运行,它正在播种几个大文件!很自然地我杀了 BitTorrent 客户端,删除了应用程序,删除了文件,Mac LAN 又全速运行了。
仅列出已建立的互联网连接
如果您碰巧只想显示已建立的连接(意味着它们正在积极通信并且本地机器和外部IP之间已建立链接),您可以使用上述命令的变体lsof 字符串:
lsof -i | grep -E (LISTEN|ESTABLISHED)"
您也可以将其与“watch”结合使用,以获得已建立连接的自动更新列表。
如果您碰巧知道进程名称,您也可以随时使用 grep 获取该特定或模糊的名称。
这有点高级,但对于一般熟悉终端和命令行的Mac 用户来说效果很好。更多新手 Mac 用户可以使用 Private Eye 来监控 OS X 中的互联网和网络连接,这是一个免费但优秀的第三方应用程序,在图形用户界面中运行并且更容易解析,特别是如果你没有经验终点站。