57 tcpdump

一般情况下,非HTTP协议的网络分析,在服务器端用tcpdump
比较多,在客户端用wireshark比较多,两个抓包软件的语法是一样的。

一、基本语法

1.1、过滤主机

  • 抓取所有经过eth1,目的或源地址是192.168.1.1的网络数据。
tcpdump -i eth1 host 192.168.1.1
  • 指定源地址
tcpdump -i eth1 src host 192.168.1.1
  • 指定目的地址
tcpdump -i eth1 dst host 192.168.1.1

1.2、过滤端口

  • 抓取所有经过eth1,目的或源端口是25的网络数据
tcpdump -i eth1 port 25
  • 指定源端口
tcpdump -i eth1 src port 25
  • 指定目的端口
tcpdump -i eth1 dst port 25

1.3、网络过滤

tcpdump -i eth1 net 192.168
tcpdump -i eth1 src net 192.168
tcpdump -i eth1 dst net 192.168

1.4、协议过滤

tcpdump -i eth1 arp
tcpdump -i eth1 ip
tcpdump -i eth1 tcp
tcpdump -i eth1 udp
tcpdump -i eth1 icmp

1.5、常用表达式

非 : ! or "not" (去掉双引号)
且 : && or "and"
或 : || or "or"
  • 抓取所有经过eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数据
tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'
  • 抓取所有经过eth1,目标MAC地址是00:01:02:03:04:05的ICMP数据
tcpdump -i eth1 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'
  • 抓取所有经过eth1,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据
tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'

如果是为了查看数据内容,建议用tcpdump -s 0 -w filename把数据包都保存下来,然后用wireshark的Follow TCP Stream/Follow UDP Stream来查看整个会话的内容。

-s 0是抓取完整数据包,否则默认只抓68字节。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,993评论 1 13
  • 本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lso...
    老夫刘某阅读 3,641评论 0 7
  • 杨叶收割白日梦 放任失眠 高于视线的窗 跳到高蹈的叶子上 嘶——啦——嘶——啦—— 燕子侧身横穿其中 不伤一丝燕羽...
    收割白日梦阅读 338评论 5 4
  • 同源策略 浏览器出于安全考虑,只允许相同域之间的接口相互传输数据,不同源客户端脚本在没有授权允许的情况下不能访问对...
    别让我一个人醉_1fa7阅读 344评论 0 0
  • 失去了一个人,我的生活忽然之间褪去了颜色,打破了原有的宁静,或许我只是不习惯没有他的生活,你知道吗?我早就感受到了...
    6的哒哒哒阅读 165评论 0 0