在 Mac OS X 上,我如何监控正在使用我的互联网连接的内容?

Jon*_*ins 20 internet performance broadband macos

我的宽带连接相对有限(我住在离最近的交换机几英里处),并且有时网络访问(但没有其他任何东西)会减慢到几乎爬行。

我从一些监控软件中知道该连接被大量使用,这可以解释它,但我不知道它在使用什么。肯定有很多事情可能(现在有几十个应用程序会定期或不经常检查数据或下载更新)但我怎么知道呢?

如果需要,我很乐意支付(少量)钱,但在这种情况下,我宁愿建议我只是在谷歌上搜索一些东西。

小智 17

Little Snitch可让您有选择地授予程序 Internet 访问权限,因此您可以决定允许应用程序通信的端口号和主机名。

这是一个非常方便的个人防火墙,也是我在新 Mac 上安装的第一件事。防止应用打电话回家或在互联网上做任何事情对于注重隐私的人来说至关重要。


Tim*_*Tim 8

您可以使用从终端内部运行的以下命令获得部分方式:

sudo lsof |grep TCP | grep ESTAB
Run Code Online (Sandbox Code Playgroud)

这将列出所有打开的 TCP 连接。第一列将列出正在建立连接的应用程序,因此您可能能够找出哪个是可能的罪魁祸首。几行输出示例可能如下所示:

ssh       10099            tim   21u     IPv4 0x1164766c        0t0       TCP 10.0.52.158:61830->home:ssh (ESTABLISHED)
Mail      13216            tim   23u     IPv4 0x11660270        0t0       TCP 10.0.52.158:57696->##.##.##.##:imaps (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)

所以我可以看到 Mail 和 ssh 都在使用连接。如果解决方案不明显,您可以使用 dtrace 获取更多详细信息。具体来说,请查看DTrace Tools,其中一些已经安装在您的 Mac 上的 /usr/bin 下:

bitesize.d cpuwalk.d creatbyproc.d dappprof dapptrace diskhits dispqlen.d dtruss errinfo execsnoop fddist filebyproc.d hotspot.d httpdstat.d iodbctest iodbctestw iofile.d iofileb.d iopattern iopending iosnoop iotop kill.d lastwords loads.d newproc.d opensnoop otool pathopens.d pidpersec.d plockstat priclass.d pridist.d procsystime runocc.d rwbypid.d rwbytype.d rwsnoop sampleproc seeksize.d setuids.d sigdist.d syscallbypid.d syscallbyproc.d syscallbysysc.d topsyscall topsysproc weblatency.d
Run Code Online (Sandbox Code Playgroud)

我认为你想要的可能是tcpsnooptcptop,默认情况下在 Mac 上似乎不可用,这让我想知道是否存在一些移植问题。


rus*_*spy 7

iftop 用法

第 0 步:通过MacPortsHomebrew安装 iftop (这也会自动安装任何依赖项)

sudo port install iftop
brew install iftop
Run Code Online (Sandbox Code Playgroud)

第 1 步:查看系统上的网络“接口”列表(默认情况下 iftop 使用 en0,在 Cricket 宽带上会显示空白屏幕)

ifconfig -l    # shows: lo0 gif0 stf0 en0 en1 wlt1 fw3 vnic0 vnic1 vboxnet0 ppp0
Run Code Online (Sandbox Code Playgroud)

第 2 步:使用不同的网络“接口”运行 iftop,直到 iftop 工作(在我的系统上为 ppp0)

sudo iftop -i ppp0    # have to use sudo to avoid "pcap_open_live(ppp0): (no devices found) /dev/bpf0: Permission denied"
Run Code Online (Sandbox Code Playgroud)

第 3 步:按“q”退出 iftop