![当使用 tcpdump 的 `-i any` 参数时,如何获取内联接口名称?](https://linux22.com/image/718370/%E5%BD%93%E4%BD%BF%E7%94%A8%20tcpdump%20%E7%9A%84%20%60-i%20any%60%20%E5%8F%82%E6%95%B0%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%86%85%E8%81%94%E6%8E%A5%E5%8F%A3%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
我正在诊断 Linux 服务器上过多网络接口造成的一些网络问题。
我需要按照转储所有接口流量tcpdump -i any
,但我找不到任何接口标识符的定义(eth0,eth10,br4等)
有没有办法指示tcpdump
每行每个数据包都包含接口信息?
答案1
事实证明,这实际上是一个我无法轻易找到的重复项,并且系统不推荐。我认为我应该在这里给出答案,因为从评论中的链接建议来看可能不是 100% 清楚。
第一的,这或多或少包含了答案,但你必须去他的德语网站以获取更新的脚本。此外,简单的复制和粘贴可能会带来困难,具体取决于您的浏览器等。
回答
你要做的是使用此脚本(版本 1.3):dump.sh
可以通过以下方式执行:dump.sh [-i interface] [tcpdump-parameters]
例如,我在一个相当大的 XenServer 安装中寻找由于操作系统的错误卸载尝试而导致的“错误”标志。我能够使用带有管道的命令,如下所示:
./dump.sh -v -nn | grep -i incorrect | egrep --line-buffered -v "Interface:lo:|eth3|vif21.4|xenbr4"