linux网络工具使用tcpdump和使用wireshark进行数据分析

前面讲到了性能优化,现在先到这,进入了一家新公司对性能测试暂时没有要求,需要熟悉网络知识,现在复习一下网络知识
tcpdump工具使用:
- 1 抓取指定ip的数据包
tcpdump host 192.168.1.107
- 2 抓取两个IP之间的通信包
tcpdump host 192.168.1.107 and 192.168.1.102
- 3 抓取指定网卡的数据包
tcpdump -i eth0
- 截获主机hostname发送的所有数据
tcpdump -i eth0 src host hostname
- 监视所有送到主机hostname的数据包
tcpdump -i eth0 dst host hostname
- 监视指定主机和端口的数据包
如果想要获取主机210.27.48.1接收或发出的telnet包,包括http请求,使用如下命令
tcpdump tcp port 23 host 210.27.48.1
对本机的udp 123 端口进行监视 123 为ntp的服务端口
tcpdump udp port 123
- 打印所有源或目的端口是80, 网络层协议为IPv4, 并且含有数据,而不是
SYN,FIN以及ACK-only等不含数据的数据包.(ipv6的版本的表达式可做练习)
tcpdump ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)’
- tcpdump+wireshark使用
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
- 使用tcpdump抓取HTTP包
tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

上面都是转载一篇很好的博文:
http://blog.sina.com.cn/s/blog_6335d36b0101mrfz.html

现在自我试验一下:

  • 启动抓包命令

    tcpdump ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)’ -s 0 -w target.cap
    抓取80端口的tcp协议的数据包,不包括不含数据的数据包

  • 浏览器访问服务器网络地址,我的是下面的地址:
    http://192.168.1.107/xampp/index.php
  • 停止抓包
[root@localhost ~]# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -s 0 -w target.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13 packets captured
13 packets received by filter
0 packets dropped by kernel
  • 导出到windows机器上,在Wireshark中打开
    这里写图片描述
    选择一条记录,右键–>追踪流–>tcp流查看结果,就显示了服务端和客户端进行数据传输的过程,和请求报文详情
    这里写图片描述

后记:
一般我们用到的是抓取两个ip之间的通信包进行分析
- 一个手机端,一个服务器
tcpdump host 192.168.1.107 and 192.168.1.102
本来想抓取指定端口,但是加上tcp port 80就提示syntax error。尚未找到原因
这样只能分开抓取了
抓取指定端口的所有的数据包,然后再导出到window是下的Wireshark进行筛选出自己想要的数据包就ok了
tcpdump tcp port 80 -s 0 -w target.cap

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值