抓包工具

环境:VMware-Workstation-12-Pro,Windows-10,CentOS-6.9-x86_64,Xshell5

基本介绍

tcpdump是Linux自带的抓包工具,可以详细察看Computer通讯中详尽报文内容,借使读者熟练另一款
无敌的抓包工具wireshark,tcpdump相当于是wireshark的命令行版本。dump这么些单词有垃圾,
倒垃圾的情趣,在微机日文中的含义是转存。

tcpdump官网:
This is the official web site of tcpdump, a powerful command-line packet
analyzer;

查阅本机tcpdump的版本

[root@as4k html]# tcpdump --version  
tcpdump version 4.1-PRE-CVS_2017_03_21  

tcpdump的风行版本
Version: 4.9.2
Release Date: September 3, 2017

官方文书档案:
的课程,比非常多大腕的博客都有借鉴此文的从头到尾的经过。

那是哪些鬼

TCPDUMP(8)                                                          TCPDUMP(8)  

NAME  
       tcpdump - dump traffic on a network  

SYNOPSIS  
       tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]  
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]  
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]  
               [ -Q|-P in|out|inout ]  
               [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]  
               [ -W filecount ]  
               [ -E spi@ipaddr algo:secret,...  ]  
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]  
               [ expression ]  

上边是tcpdump,man page里面的从头到尾的经过,oh my
god!这么多参数,本文当然不容许逐个介绍上面的内容,
大家先直接通过有个别简短的案例看看效果,然后交由一些广大参数的用法。

基本功案例

观看DNS分析意况

我们清楚,Linux系统要想平常访问网络,要求科学配置DNS剖析,未来大家已经铺排了Ali云的DNS
223.6.6.6,大家想看一下DNS分析是不是正常,就能够应用tcpdump来抓取DNS包,谋算好几个xshell
窗口,依据如下形式操作

步骤1 tcpdump -n -i any port 53

图片 1

尽量在root客户下选择tcpdump命令,-n表示毫不把IP地址分析成域名,-i意味着抓取哪块网卡的通讯
数据包,any意味着任性一块,port是钦定要抓取数据包的端口,DNS服务办事在53端口上,实施达成之
后,大家切换成第三个窗口,实行步骤2

步骤2 ping -c3 baidu.com
-c3表示和ping次停下,那时候我们的计算机和百度发生的通讯,窗口1的tcpdump就能监听到我们的通讯
数码,也正是所谓的抓包,切换成窗口1,看见的数据大约如下

图片 2

在上图中大家可观望地方192.168.56.11,端口42711历程向Ali云DNS服务器223.6.6.6,伏乞告知
baidu.com的IP地址是什么样?Ali云的DNS服务器成功给了大家应对,由此能够作证,大家的DNS专门的学问
正常。

假使抓取的DNS数据包,看起来向上面那样:

图片 3

从上海教室能够看看,我们总共发起了二次DNS查询央浼,服务器才最终给大家再次回到了IP地址,那分明是不太健康的,
通过大家得以判明,此番互连网卡慢的缘由,应该出在DNS深入分析上。

以上正是利用tcpdump抓包来归纳推断互联网通信境况。

抓取叁个TCP包

第一我们清楚TCP叁次握手分别是:ACK,SYN-ACK,ACK。上面大家就在Linux中不难搭建nginx服务器,
下一场使用tcpdump抓取tcp包看下。

设置nginx服务并运维

yum install nginx -y  
/etc/init.d/nginx start  

下一场在windows浏览器中输入本身的IP地址,将会看出如下分界面

图片 4

在xshell中执行tcpdump -n -i eth0 port 80,eth0是自身目前网卡的称呼,然后在浏览器中刷新一下,
能够看看抓取到了如下内容

图片 5

能够看出,我们耳熟能详的ACK,SYN-ACK,ACK三遍握手的新闻都冒出了,表明大家TCP连接成功创立了。

不要太过郁结于抓包细节,事实上tcp合同包括比非常多的内容,无法在那开展

tcpdump中最常见的几个参数

-i 内定要抓取数据包的网卡名称

tcpdump -i eth0 # 抓取eth0网卡的数据包  

-c 钦命抓取包的个数

tcpdump -i eth0 -c 10 # 只抓取10个包  

-w 把抓取到的数据寄放到文件中供之后剖析

# tcpdump -i eth0 -c 10 -w my-packets.pcap  
# file my-packets.pcap   
my-packets.pcap: tcpdump capture file ....  

能够看出,大家保留的my-packets.pcap是一种十分文件,间接动用vim是无力回天查看的,能够把
该文件获得windows下,使用wireshark查看,效果如下

图片 6

-n 不剖析ip,暗许会将ip分析成域名
点名过滤端口(port)和主机名(host)

tcpdump -n -i eth0 port 80  
tcpdump -n -i eth0 host baidu.com  
tcpdump -n -i eth0 host baidu.com and port 80  

参谋资料

合法权威教程

漫画情势介绍tcpdump,特别风趣

发表评论

电子邮件地址不会被公开。 必填项已用*标注