使用 nettop 通过命令行在 Mac OS X 中观察网络流量
nettop 用途广泛,但在尝试确定正在使用 Mac 的互联网连接和网络接口、什么正在与什么通信以及正在传输多少数据时,它尤其有用,而且它还只是一个伟大的网络故障排除实用程序。命令行工具并不适合所有人,对于想要以更传统的 OS X 应用程序格式查看类似网络信息的用户,免费的 Mac 应用程序 Private Eye 是一款出色的 GUI 工具,可提供类似的信息。
使用 nettop 监控网络流量和连接
开始使用 nettop 非常简单。从 /Applications/Utilities 打开终端,然后在命令提示符下键入“nettop”以立即查看活动的网络连接和流量:
上网本
使用向下箭头键向下滚动,您很快就会开始识别您会通过名称识别的进程,与当前正在使用的应用程序或进程一致。
例如,您可能会看到一个活动的 SSH 连接以及您所连接的 IP,当您遇到 Safari 或 Chrome 等网络浏览器时,情况会特别繁忙,尤其是当您在使用 AJAX、广告的网页上时或 cookie,因为 nettop 会向您显示浏览器和远程服务器之间进行的所有通信。
要查看最多的信息,您需要尽可能大地增加窗口的大小,点击绿色最大化按钮,如果看不到所有信息,请考虑减小终端窗口的字体大小你想要。点击“p”按钮将 nettop 显示的输出转换为人类可读的格式,这对我们大多数人也非常有帮助。
进入 nettop 后,您可以稍微调整输出以查看特定进程及其网络通信的更多或更少信息。基本的 nettop 命令是:
- p – 人类可读格式的变化(即:千字节和兆字节,而不是纯字节计数)
- d – 显示增量计数(即:数据包计数的主动变化而不是总数据包数
- 向上和向下箭头键 – 在列表中向上和向下导航
- 向右和向左箭头键 – 展开或折叠特定进程或路由组
- q – 退出 nettop
尽管粘贴的示例块如下所示,但格式很容易理解:
state packets in bytes in packets out
ssh.83411 5742633 5438 MiB 112280
tcp4 192.168.1.6:64547<->sample.ip.com:30 Established 5742633 5438 MiB 112280< br />Google Chrome.99481 26448 6934 KiB 18187
tcp4 192.168.1.6:60829<->181.82-static.reverse.ip 已建立 7 523 B 1
tcp4 192.168.1.6:54495<->ec2 -24-41.compute-1.am 建立 3253 555 KiB 3099
tcp4 192.168.1.6:51198<->ec2-44-11.compute-1.am 建立 3512 796 KiB 1366
tcp4 192.168 .1.6:55222<->n415s2-in-f1.jj.net:443 已建立 10819 3677 KiB 8917
tcp4 192.168.1.6:52260<->n02-in-f82.55n0.net:443 已建立 7981 1866 KIB 3870
TCP4 192.168.1.6:50832< -> Webaddress-sample.com:80建立了313 9177 B 310
TCP4 192.168.1.6:65035-
udp4 *:*<->*:*
如果你不想看到特定的套接字和进程,你也可以使用 nettop 只查看路由表信息
nettop -m 路由
路由信息会显示从硬件到目的IP的连接,比如你可能会看到en0(wi-fi)到本地网络IP到远程服务器,你还会看到环回信息。
使用 -m 标志,您还可以使用 nettop -m tcp 和 nettop -m udp 将 nettop 限制为仅显示 TCP 或 UDP 套接字
还有其他方法可以从命令行查看类似信息,包括 lsof,open_ports,然后,从命令行分支一点,您可以使用 带有 lsof 的 GeekTool 可以直接在 OS X 桌面墙纸上打印实时网络连接列表。
对于使用 iOS 的移动世界,您可以使用免费的网络扫描 Fing 应用找到一些类似的信息,它的局限性要大一些,但仍然足以在 iPhone 和 iPad 上使用。