tcpdump / Wireshark在受限制的虚拟服务器上

当我尝试在我的虚拟服务器的networking接口上转储一些stream量时,出现一个我不允许这样做的错误:

# tcpdump -p -i eth0 tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted) 

我想问题是我的服务器提供商似乎使用共享Linux内核的虚拟化解决scheme(uname返回“2.6.33.7-vs2.3.0.36.30.4-netcup”作为版本)。

任何方式,使我从一个进程转储出站stream量?

您可以尝试使用strace命令来跟踪您的应用程序正在进行的系统调用。 像这样的东西:

 strace -o trace -e trace=read,write -s 8192 /path/to/my/command 

这将在strace控制下启动/path/to/my/command 。 它将logging所有readwrite系统调用(所以不只是networkingstream量,而是任何其他I / O)到一个名为trace的文件。 每次读/写呼叫将logging最多8192个字符。

这对您目前的情况可能有帮助,也可能不会帮助您。