转储单个应用程序的网络流量(类似 strace)

转储单个应用程序的网络流量(类似 strace)

我正在寻找一种方法来转储应用程序生成的网络数据的 pcap,以类似的方式strace转储系统调用等,例如:

net-strace somecommand -args

somecommand会通过网络执行某些操作,并net-strace保存该应用程序生成的所有流量(+ 回复和相关流量)的 pcap 转储。

这能实现吗?

答案1

使用 strace 本身怎么样?

strace -f -e trace=network -o output_file -s 10000 somecommand -args

答案2

您可以通过不同的方法转储应用程序生成的流量:

如果您知道应用程序正在使用的端口,您可以运行tcp转储或者线鲨对这些端口有特定的过滤规则。

如果这不是一个选项,您可以使用iptables规则,匹配进程的所有者。您可能需要创建一个新的用户帐户来完全隔离该过程。然后您就可以捕获仅匹配规则的流量。

您可能会找到有关此相关主题的更完整的信息:https://askubuntu.com/questions/11709/how-can-i-capture-network-traffic-of-a-single-process

您可能还会发现这个程序很有趣跟踪转储正如上一个主题所述。http://mutrics.iitis.pl/tracedump

相关内容