使用 nettop 通过命令行在 Mac OS X 中观察网络流量
Mac OS X 包含一个出色的命令行网络实用程序,称为“nettop”,它允许用户通过本地 (LAN) 和广域 (WAN) 连接监视所有网络活动、流量和从 Mac 到外部世界的路由。如果您不熟悉这样的网络工具,您可以将 nettop 视为一个以网络为中心的任务管理器,显示活动的网络连接、套接字和路由、它们各自的名称和进程 ID、连接状态以及连接是否建立、等待或收听,以及有关个别进程数据传输的信息。它有点像显示进程和资源信息的标准“top”和“htop”命令,但它不显示 CPU 和 RAM 使用情况,而是显示实时网络传输信息,如发送和接收的数据包、数据包大小和传输的总数据. ettop 具有广泛的用途,但它在尝试确定什么正在使用 Mac 的互联网连接和网络接口、什么正在与什么通信以及正在传输多少数据时特别有用,它也是一个很好的实用程序网络故障排除。命令行工具并不适合所有人,对于希望以更传统的 OS X 应用程序格式查看类似网络信息的用户来说,免费的 Mac 应用程序 Private Eye 是提供类似信息的优秀 GUI 工具。
使用nettop监控网络流量和连接
nettop 入门非常简单。从 /Applications/Utilities 打开终端,然后在命令提示符下键入“nettop”以立即查看活动的网络连接和流量:
nettop
使用向下箭头键向下滚动,您很快就会开始识别您将通过名称识别的进程,与当前正在使用的应用程序或进程一致。
例如,您可能会看到一个活动的 SSH 连接以及您所连接的 IP,当您遇到 Safari 或 Chrome 等网络浏览器时,情况会特别繁忙,尤其是当您使用网络浏览器时带有 AJAX、广告或 cookie 的网页,因为 nettop 会向您显示浏览器和远程服务器之间进行的所有通信。
要查看最多的信息,您需要尽可能大地增加窗口的大小,点击绿色最大化按钮并考虑减小终端窗口的字体大小(如果可以) '看到你想要的一切。点击“p”按钮将 nettop 显示的输出转换为人类可读的格式,这对我们大多数人也很有帮助。
一旦进入nettop,您可以稍微调整输出以查看特定进程及其网络通信的更多或更少信息。基本的nettop命令是:
- p – 人类可读格式的变化(即:千字节和兆字节,而不是纯字节计数)
- d – 显示增量计数(即:数据包计数的主动变化而不是总数据包
- 向上和向下箭头键——在列表中向上和向下导航
- Right & Left arrow keys – expand or collapse specific process or routing groups
- q – 退出网络
格式很容易理解,尽管粘贴的示例块如下所示:
以字节为单位说明ssh 数据包中的数据包。83411 5742633 5438 MiB 112280 tcp4 192.168.1.6:64547sample.ip.com:30 Established 5742633 5438 MiB 112280 Google Chrome.99481 26448 6934 KiB 18187 tcp4 192.168.1.6:60829181.82-static.reverse.ip Established 7 523 B 1 tcp4 192.168. 1.6:54495ec2-24-41.compute-1.am 建立 3253 555 KiB 3099 tcp4 192.168.1.6:51198ec2-44-11.compute-1.am 建立 3512 796 KiB 1366 tcp4 192.168.1.6:55222-in4151s JJ.NET:443建立了10819 3677 KIB 8917 TCP4 192.168.1.6:52260N02-IN-F82.55N0.NET:443建立了7981 1866 KIB 3870 TCP4 TCP4 TCP4 192.168.1.1.1.68.1.6:50832 WEESMEMPEMPMPLE BBDDRESS SMEMPLESMEME BBADDRESSSMEMPER TREMEN CPEMPLEDSMEMPEB.BBADDDRESS CPEMPER TR .1.6:65035dfdssdfsd.com:80 已建立 521 14 KiB 514 udp4 ::
如果不想看到特定的套接字和进程,也可以使用nettop只查看路由表信息
nettop -m route
路由信息会显示从硬件到目的IP的连接,比如你可能会看到en0(wi-fi)到本地网络IP到远程服务器,你还会看到环回信息.
Using the -m flag you can also limit nettop to only show TCP or UDP sockets, with nettop -m tcp and nettop -m udp
还有其他方法可以从命令行查看类似信息,包括lsof、open_ports,然后,从命令行分支一点,你可以使用带有lsof的GeekTool来获得实时网络列表连接直接打印在 OS X 桌面墙纸上。
对于iOS 的移动世界,您可以使用免费的网络扫描Fing 应用程序找到一些类似的信息,它的功能比较有限,但仍然足以在iPhone 和iPad 上使用。