我正在使用 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/://'