Linux下如何抓包tcpdump

小编给大家分享一下Linux下如何抓包tcpdump,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联公司主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、成都响应式网站建设公司、程序开发、网站优化、微网站、小程序定制开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的做网站、成都做网站、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。

公司Linux下socket对接时发现接口中总是报错,所以研究了一下Linux下的抓包

tcpdump host #IP地址#            //获取主机210.27.48.1接收或发出的telnet包

tcpdump参数的主要选项

-i :指定网卡 默认是 eth0  
-n :线上ip,而不是hostname
-c :指定抓到多个包后推出
-A:以ASCII方式线上包的内容,这个选项对文本格式的协议包很有用
-x:以16进制显示包的内容
-vvv:显示详细信息
-s :按包长截取数据;默认是60个字节;如果包大于60个字节,则抓包会出现丢数据;所以我们一般会设置 -s 0 ;这样会按照包的大小截取数据;抓到的是完整的包数据
-r:从文件中读取【与 -w 对应,/usr/sbin/tcpdump -r test.out  读取 tcpdump -w  test.out】
-w:到处指向文件【一定要用,-w t.out ,然后用 -r t.out 来看抓包信息,否则可读性很差】

2.  tcpmdump 抓包出来分析包的具体含义

包携带的标志:S:S=SYC  :发起连接标志P:P=PUSH:传送数据标志F:F=FIN:关闭连接标志ack:表示确认包RST=RESET:异常关闭连接. 表示没有任何标志

第一行: S:表示 clinet.hostname 的临时端口50741向 server.hostname 80 端口发起连接,client 的初始包序号是: 562843056  ;滑动窗口(win 14480)的大小是:14480 [14k]  滑动窗口即tcp 接收缓冲区的大小,用于tcp 拥塞控制;mss 1460:可以接收的最大包长度,通常是MTU - 40 byte;IP头和TCP头各20byte
第二行: S:表示SYN状态;是server.hostname 对第一行 clinet.hostname 发起连接的请求的回应;同时带上client 端 初始包序号 + 1:ack 562843057 ,即server.hostname 下次等待接收这个包序号的包,用于tcp 字节流的顺序控制(?). server.hostname 初始包序列号:2306923370
第三行:client.hostname 再次确认,tcp连接完成三次握手。
第四行:P:推送数据    client.hostname  通过 50741 端口向 server.hostname 发送数据包;数据包大小是 1005byte ;第五行是 server.hostname 响应这个数据包发送,接收这个数据包。----> 当完成后会出现一个 server.hostname     F   关闭连接的数据包,这里没有抓取
第6行   ---->10行是对 1-5行的重复;因为机器是web服务是并发的。

以上是Linux下如何抓包tcpdump的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享标题:Linux下如何抓包tcpdump
网页网址:http://myzitong.com/article/pgegjd.html