经常使用tcpdump进行抓包的同学可以忽略了,这篇偏于使用扫盲;首先,tcpdump抓包目的IP显示为hostname,如果端口是知名端口,显示为协议名而不是端口号。这种默认其实略有问题的:
如果我们使用默认的hostname:localhost.localdomain,那么很容易误认为是本地回环地址请求:一个远程IP访问了本地回环地址,这就很怪;还是显示IP地址爽利:IPv4还是IPv6也是一目了然。那么怎么明确显示IP地址和端口号呢?使用-n和-nn参数,使用举例如下:
# 抓包21端口的包(不限制源和目的)
tcpdump –i ens192 port 21
15:40:49.542333 IP 192.168.1.190.46108 > xxxx-229.ftp: Flags [S]
15:40:49.542395 IP xxxx-229.ftp > 192.168.1.190.46108: Flags [S.]
# –n :显示ip地址,而不是hostname
tcpdump –i ens192 –n port 21
15:23:56.952026 IP 192.168.1.190.36944 > 192.168.1.229.ftp: Flags [S]
15:23:56.952133 IP 192.168.1.229.ftp > 192.168.1.190.36944: Flags [S.]
# –nn :显示端口号而不是协议名
tcpdump –i ens192 –n –nn port 21
15:23:45.333967 IP 192.168.1.190.36840 > 192.168.1.229.21: Flags [S]
15:23:45.334036 IP 192.168.1.229.21 > 192.168.1.190.36840: Flags [S.]
扩展
-
过滤源IP地址:
bashCopy code sudo tcpdump -i eth0 src host 192.168.1.2
-
过滤目的IP地址:
bashCopy code sudo tcpdump -i eth0 dst host 192.168.1.2
-
过滤源和目的IP地址:
bashCopy code sudo tcpdump -i eth0 src host 192.168.1.2 and dst host 192.168.1.3
-
bashCopy code sudo tcpdump -i eth0 icmp
-
bashCopy code sudo tcpdump -i eth0 src host 192.168.1.2 and dst host 192.168.1.3 and icmp
这将捕获源IP地址为192.168.1.2、目的IP地址为192.168.1.3且协议为 ICMP 的流量。
-
bashCopy code sudo tcpdump -i eth0 src port 8080
-
bashCopy code sudo tcpdump -i eth0 dst port 80
-
过滤特定源和目的端口:
bashCopy code sudo tcpdump -i eth0 src port 8080 and dst port 80
这将捕获源端口为8080且目的端口为80的流量。
-
过滤除特定端口之外的流量:
bashCopy code sudo tcpdump -i eth0 not port 22
这将捕获除端口22之外的所有流量。
原文地址:https://blog.csdn.net/avatar_2009/article/details/134793535
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_39986.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!