是否有一个简单的命令行工具用于在 linux 上嗅探单个命令?

Ama*_*rus 11 networking linux command-line-interface packet-analyzer

如果有一个命令行工具可以在 Linux 中嗅探单个命令,我会很高兴。像sniff dumpfile command这样,你可以只在终端运行数据包嗅探你想要的命令,得到的分组别的地方的转储。

我只想转储/保存/查看我输入的单个命令的网络流量,而不是单个网络接口上的所有 TCP 流量。因此,如果我登录到我的计算机并在后台运行 IRC,并且我确实这样做了sniff somefile wget http://www.google.com,我想查看 wget 命令为下载http://www.google.com所做的所有网络流量。我不希望“somefile”让 IRC 网络流量混淆。

有很多 linux/unix 命令接受不同的命令并执行不同的操作。从sudo(以超级用户身份运行),nice更改好级别,trickle(限制命令的带宽)

Dav*_*ley 10

没有我所知道的,但理论上应该不难得到类似的东西。Strace 可用于拦截网络系统调用。

# strace -f -e trace=network -s 10000 /usr/bin/command arguments
Run Code Online (Sandbox Code Playgroud)

这将为您提供有关内核和进程之间发送的数据的信息。strace 的输出并不是你想要的。但是,strace 使用 ptrace 系统调用来拦截系统调用。也许可以编写一个程序来更有用地输出数据。

或者,您还可以拦截有用的套接字、绑定和侦听系统调用。或许可以编写一个小程序,在这些调用中使用 ptrace 并在每次打开新套接字时使用 libpcap 动态更改捕获过滤器。


小智 8

跟踪转储

Tracedump 是单个应用程序 IP 数据包嗅探器,它捕获单个 Linux 进程的所有 TCP 和 UDP 数据包。

在此处下载和说明:http : //mutrics.iitis.pl/tracedump