我正在寻找一种方法来转储应用程序生成的网络数据的 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