如何使 tcpdump 显示 IP 和端口号但不显示主机名和协议

如何使 tcpdump 显示 IP 和端口号但不显示主机名和协议

我正在使用 tcpdump 进行一些测试,我想查看 IP 和端口号,但 tcpdump 的输出如下

IP pl1snu.koren.kr.http > kitch.pl.sophia.inria.fr.dnp: Flags [P.], seq 54:72, ack 1, win 5792, length 18

它只显示主机名和 http 协议,很容易知道它是 80,但对于 dnp,我必须搜索

那么,如何让 tcpdump 显示 IP 和端口号,但不显示主机名和协议呢?如果可以,该怎么做?谢谢

答案1

添加-n到您的tcpdump命令行。

来自tcpdump 手册页

-n Don't convert addresses (i.e., host addresses, port numbers, etc.) to names.

还应该注意的是,在 Fedora(也许还有其他衍生产品:RHEL、CentOS 等)上,他们有已修补原始 tcpdump 版本包含一个单独的选项-nn来删除端口号。从手册页

-n     Don't convert host addresses to names.   This  can  be  used  to
              avoid DNS lookups.

-nn    Don't convert protocol and port numbers etc. to names either.

答案2

我使用-nn参数。

-nn:不解析主机名或端口名。

运行如下:

tcpdump -nn 

答案3

-n仅适用于主机名,但不适用于端口号。-nn对两者都有效。这是在 Fedora 20 gnu/linux 上运行 tcpdump 版本 4.5.1。@ATMc 的反对答案是唯一正确的。遗憾的是,由于 karma 值低,我既不能赞成它,也不能在下面发表评论。

答案4

tcpdump -i eth0 -p -nn | grep "IP" | awk '{print$3 ,$4 ,$5}' | sed 's/://'

相关内容