志在指尖
用双手敲打未来

tcpdump(tcpdump指定ip抓包命令)

tcpdump

用简略的话来界说tcpdump,就是:dumpthetrafficonanetwork,根据运用者的界说对网络上的数据包进行截获的包剖析东西。
tcpdump能够将网络中传送的数据包的“头”完全截获下来供给剖析。它支持针对网络层、协议、主机、网络或端口的过滤,并供给and、or、not等逻辑语句来协助你去掉无用的信息。
tcpdump根据底层libpcap库开发,运行需求root权限。
一、tcpdump安装
环境虚拟机:vmware15.5.2os:ubuntu12.04
安装tcpdump
sudoapt-getinstalltcpdump
3.版别查看
tcpdump--h
tcpdumpversion4.0。
libpcapversion1.1.1表明libpcap的版别。
二、tcpdump参数
常用参数选项阐明:
参数含义-a将网络地址和播送地址转变成名字-c在收到指定的包的数目后,tcpdump就会中止;-d将匹配信息包的代码以人们能够了解的汇编格局给出;以可阅览的格局输出。-dd将匹配信息包的代码以c语言程序段的格局给出;-ddd将匹配信息包的代码以十进制的方式给出;-e在输出行打印出数据链路层的头部信息;-f将外部的Internet地址以数字的方式打印出来;-l使规范输出变为缓冲行方式;-n直接显现IP地址,不显现称号;-nn端口称号显现为数字方式,不显现称号;-t在输出的每一行不打印时刻戳;-v输出一个略微具体的信息,例如在ip包中能够包括ttl和服务类型的信息;-vv输出具体的报文信息;-F从指定的文件中读取表达式,疏忽其它的表达式;-i指定监听的网络接口;-r从指定的文件中读取包(这些包一般经过-w选项产生);-w直接将包写入文件中,并不剖析和打印出来;-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc(长途过程调用)和snmp(简略网络办理协议;)
三、指令选项运用举例
1.截获主机收到和宣布的一切数据包。
指令:
tcpdump
阐明:
tcpdump截取包默许显现数据包的头部。
一般情况下,直接发动tcpdump将监督第一个网络接口上一切流过的数据包。
基础格局:时刻数据包类型源IP端口/协议>方针IP端口/协议协议具体信息
按下Ctrl+C会终止tcpdump指令。且会在结尾处生成计算信息。
终止tcpdump2.指定抓包数量-c
指定抓取2个数据包。
指令:
tcpdump-c2
阐明:
最后会自动生成计算信息。
【注意,已经切换到办理员了,虚拟机中要产生数据包,能够别的开一个窗口pingbaidu.com后边不再提示】
pingbaidu.com3.将抓包信息写入文件-w
运用-w选项指定记载文件。
指令:
tcpdump-c10-wtcpdump_test.log
阐明:
保存的文件不是文本格局,不能直接查看。tcpdump保存的文件的格局是几乎一切主流的抓包东西软件都能够读取。所以能够运用更易读的图形界面东西来查看记载文件。
4.读取记载文件-r
运用-r选项读取文件。
指令:
tcpdump-rtcpdump_test.log
![读取记载文件
5.打印出一切可工作的接口-D
指令:
tcpdump-D
其中网卡为eth0。
6.指定监控的网卡-i
指令:
tcpdump-ieth0
假如不指定网卡,默许tcpdump只会监督第一个网络接口,一般是eth0。
7.显现更具体的数据包信息-v-vv
选项-v,-vv能够显现更具体的抓包信息。
tcpdump-v
tcpdump-vv8.不运用域名反解-n
运用-n后,tcpdump会直接显现IP地址,不会显现域名(与netstat指令相似)。
9.增加抓包时刻戳-tttt选项
tcpdump的一切输出打印行中都会默许包括时刻戳信息;时刻戳信息的显现格局如下
hh:mm:ss.frac(nt:小时:分钟:秒.)
此时刻戳的精度与内核时刻精度一致,反映的是内核第一次看到对应数据包的时刻;
而数据包从物理线路传递到内核的时刻,以及内核花费在此包上的中止处理时刻都没有算进来;
运用-tttt选项,抓包结果中将包括抓包日期:
指令:
tcpdump-tttt
增加抓包时刻戳
四、条件过滤
1.过滤:指定需求抓取的协议
tcpdump能够只抓某种协议的包,支持指定以下协议:「ip,ip6,arp,tcp,udp,wlan」等。
指令:
tcpdumpudp
tcpdumpicmp
tcpdumptcp
tcpdumparp
2.过滤:指定协议的端口号
运用port参数,用于指定端口号。
指令:tcpdumptcpport80
运用portrange参数,用于指定端口范围。
指令:tcpdumptcpportrange1-1024
3.过滤:指定源与方针
src表明源。
dst表明方针。
指令:
tcpdumpsrcport8080
tcpdumpdstport80
4.过滤:指定特定主机的消息包
运用host指定需求监听的主机。
指令:
tcpdumphost192.168.1.113
注意:若运用了host参数运用了计算机名或域名。例tcpdumphostshi-pc,则无法再运用-n选项。
5.过滤:指定数据包巨细
运用greater(大于)与less(小于)能够指定数据包巨细的范围。
「例:只抓取大于1000字节的数据包。」
指令:
tcpdumpgreater1000
「例:只抓取小于10字节的数据包。」
指令:
tcpdumpless10tcpdump
五、逻辑表达式
运用根本逻辑组合拼装出更精细的过滤条件。
1.逻辑与
逻辑与联系,运用and。
指令:
tcpdumptcpandhost192.168.1.112
tcpdumptcpandsrc192.168.1.112andport8080
2.逻辑或
逻辑或联系,运用or。
指令:
tcpdumphost192.168.1.112or192.168.1.113
3.逻辑非
逻辑非联系,运用not,也能够运用!。
若运用!有必要与其后边的字符隔开一个空格。
例:当经过ssh协议长途运用tcpdump时,为了防止ssh的数据包的输出,所以一般需求制止ssh数据包的输出。
指令:
tcpdumpnottcpport22
tcpdump!tcpport22
4.括号
括号需求运用在引号内,或转意运用。否则会报错。
例:抓取非22端口,且主机为192.168.1.112和192.168.1.113的TCP数据包。
指令:
tcpdumpnottcpport22andhost192.168.1.112or192.168.1.113
tcpdump"nottcpport22andhost(192.168.1.112or192.168.1.113)"
tcpdumpnottcpport22andhost"(192.168.1.112or192.168.1.113)"
六、其他实例
1.打印一切进入或离开sundown的数据包.tcpdumphostsundown
2.截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通讯tcpdumphost210.27.48.1and(210.27.48.2or210.27.48.3)
3.假如想要获取主机210.27.48.1除了和主机210.27.48.2之外一切主机通讯的ip包,运用指令:tcpdumpiphost210.27.48.1and!210.27.48.2
4.监督一切送到主机hostname的数据包tcpdump-ieth0dsthosthostname
5.获取主机210.27.48.1接收或宣布的telnet包
23为telnet的端口
tcpdumptcpport23andhost210.27.48.1
6.监督本机的udp123端口
123为ntp的服务端口
tcpdumpudpport123
7.运用tcpdump抓取HTTP包tcpdump-XvvennSs0-ieth0tcp[20:2]=0x4745ortcp[20:2]=0x4854
0x4745为"GET"前两个字母"GE",0x4854为"HTTP"前两个字母"HT"。
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是运用十六进制的方式直接打印输出的。
显然这不利于剖析网络故障,一般的解决办法是先运用带**-w参数的tcpdump截获数据并保存到文件中**,然后再运用其他程序(如Wireshark)进行解码剖析。当然也应该界说过滤规则,以防止捕获的数据包填满整个硬盘。
六、查看数据包完好内容
tcpdump默许不显现数据包的具体内容。
办法一:
运用-A参数能以ASCII码显现数据包。
例:只抓取1个数据包,并显现其内容。
指令:
tcpdump-c1-A
办法二:
运用-X参数能16进制数与ASCII码共同显现数据包。
例:只抓取1个数据包,并显现其内容。
指令:
tcpdump-c1-X
七、tcpdump与wireshark
Wireshark(曾经是ethereal)是Windows下非常简略易用的抓包东西,现在也有Linux版别。
经过Tcpdump抓取的数据包剖析比较麻烦,要想很便利的剖析数据包,咱们能够用Tcpdump+Wireshark的完美组合实现:在Linux里抓包,然后在Windows里剖析包。
保存数据包为wireshark能识别的文件:
tcpdumptcp-ieth1-t-s0-c100anddstport!22andsrcnet192.168.1.0/24-w./target.cap
参数含义tcpipicmparprarp和tcp、udp、icmp这些选项等都要放到第一个参数的方位,用来过滤数据报的类型-ieth1只抓经过接口eth1的包-t不显现时刻戳-s0抓取数据包时默许抓取长度为68字节。加上-S0后能够抓到完好的数据包-c100只抓取100个数据包dstport!22不抓取方针端口是22的数据包srcnet192.168.1.0/24数据包的源网络地址为192.168.1.0/24-w./target.cap保存成cap文件,便利用ethereal(即wireshark)剖析

tcpdump指定ip抓包命令

用简略的话来界说tcpdump,就是:dumpthetrafficonanetwork,根据运用者的界说对网络上的数据包进行截获的包剖析东西。
tcpdump能够将网络中传送的数据包的“头”完全截获下来供给剖析。它支撑针对网络层、协议、主机、网络或端口的过滤,并供给and、or、not等逻辑语句来协助你去掉无用的信息。
tcpdump基于底层libpcap库开发,运转需求root权限。
一、tcpdump装置
环境
虚拟机:vmware15.5.2
os:ubuntu12.04
装置tcpdump
sudoapt-getinstalltcpdump
装置tcpdump
3.版别检查
tcpdump–h
版别检查tcpdumpversion4.0。
libpcapversion1.1.1表明libpcap的版别。
二、tcpdump参数
常用参数选项阐明:
参数意义
-a将网络地址和播送地址转变成姓名
-c在收到指定的包的数目后,tcpdump就会中止;
-d将匹配信息包的代码以人们能够了解的汇编格局给出;以可阅览的格局输出。
-dd将匹配信息包的代码以c言语程序段的格局给出;
-ddd将匹配信息包的代码以十进制的办法给出;
-e在输出行打印出数据链路层的头部信息;
-f将外部的Internet地址以数字的办法打印出来;
-l使规范输出变为缓冲行办法;
-n直接显现IP地址,不现实称号;
-nn端口称号显现为数字办法,不现实称号;
-t在输出的每一行不打印时刻戳;
-v输出一个略微具体的信息,例如在ip包中能够包括ttl和服务类型的信息;
-vv输出具体的报文信息;
-F从指定的文件中读取表达式,疏忽其它的表达式;
-i指定监听的网络接口;
-r从指定的文件中读取包(这些包一般经过-w选项发生);
-w直接将包写入文件中,并不剖析和打印出来;
-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc(远程过程调用)和snmp(简略网络办理协议;)
高阶参数运用阐明:
-A以ASCII码办法显现每一个数据包(不会显现数据包中链路层头部信息).在抓取包括网页数据的数据包时,可便利检查数据(nt:即Handyforcapturingwebpages).
-ccount
tcpdump将在接受到count个数据包后退出.
-Cfile-size(nt:此选项用于配合-wfile选项运用)
该选项使得tcpdump在把原始数据包直接保存到文件中之前,检查此文件巨细是否超越file-size.假如超越了,将关闭此文件,另创一个文件继续用于原始数据包的记载.新创建的文件名与-w选项指定的文件名共同,但文件名后多了一个数字.该数字会从1开始随着新创建文件的增多而添加.file-size的单位是百万字节(nt:这儿指1,000,000个字节,并非1,048,576个字节,后者是以1024字节为1k,1024k字节为1M计算所得,即1M=1024*1024=1,048,576)
-d以容易阅览的办法,在规范输出上打印出编列过的包匹配码,随后tcpdump中止.(nt|rt:humanreadable,容易阅览的,一般是指以ascii码来打印一些信息.compiled,编列过的.packet-matchingcode,包匹配码,意义不知道,需弥补)
-dd以C言语的办法打印出包匹配码.
-ddd以十进制数的办法打印出包匹配码(会在包匹配码之前有一个附加的’count’前缀).
-D打印体系中一切tcpdump能够在其上进行抓包的网络接口.每一个接口会打印出数字编号,相应的接口姓名,以及或许的一个网络接口描绘.其间网络接口姓名和数字编号能够用在tcpdump的-iflag选项(nt:把姓名或数字代替flag),来指定要在其上抓包的网络接口.
此选项在不支撑接口列表指令的体系上很有用(nt:比方,Windows体系,或缺少ifconfig-a的UNIX体系);接口的数字编号在windows2000或这以后的体系中很有用,因为这些体系上的接口姓名比较复杂,而不易运用.
假如tcpdump编译时所依靠的libpcap库太老,-D选项不会被支撑,因为其间缺少pcap_findalldevs()函数.
-e每行的打印输出中将包括数据包的数据链路层头部信息
-Espi@ipaddralgo:secret,…
可经过spi@ipaddralgo:secret来解密IPsecESP包(nt|rt:IPsecEncapsulatingSecurityPayload,IPsec封装安全负载,IPsec可了解为,一整套对ip数据包的加密协议,ESP为整个IP数据包或其间上层协议部分被加密后的数据,前者的作业方式称为隧道方式;后者的作业方式称为传输方式.作业原理,另需弥补).
需求留意的是,在终端发动tcpdump时,能够为IPv4ESPpackets设置密钥(secret).
可用于加密的算法包括des-cbc,3des-cbc,blowfish-cbc,rc3-cbc,cast128-cbc,或许没有(none).默许的是des-cbc(nt:des,DataEncryptionStandard,数据加密规范,加密算法不知道,另需弥补).secret为用于ESP的密钥,运用ASCII字符串办法表达.假如以0x最初,该密钥将以16进制办法读入.
该选项中ESP的界说遵从RFC2406,而不是RFC1827.而且,此选项仅仅用来调试的,不引荐以真实密钥(secret)来运用该选项,因为这样不安全:在指令行中输入的secret能够被其他人经过ps等指令检查到.
除了以上的语法格局(nt:指spi@ipaddralgo:secret),还能够在后边添加一个语法输入文件姓名供tcpdump运用(nt:即把spi@ipaddralgo:secret,…中…换成一个语法文件名).此文件在接受到第一个ESP包时会打开此文件,所以最好此刻把赋予tcpdump的一些特权取消(nt:可了解为,这样防备之后,当该文件为恶意编写时,不至于造成过大危害).
-f显现外部的IPv4地址时(nt:foreignIPv4addresses,可了解为,非本机ip地址),选用数字办法而不是姓名.(此选项是用来抵挡Sun公司的NIS服务器的缺陷(nt:NIS,网络信息服务,tcpdump显现外部地址的姓名时会用到她供给的称号服务):此NIS服务器在查询非本地地址姓名时,常常会陷入无尽的查询循环).
因为对外部(foreign)IPv4地址的测试需求用到本地网络接口(nt:tcpdump抓包时用到的接口)及其IPv4地址和网络掩码.假如此地址或网络掩码不可用,或许此接口根本就没有设置相应网络地址和网络掩码(nt:linux下的’any’网络接口就不需求设置地址和掩码,不过此’any’接口能够收到体系中一切接口的数据包),该选项不能正常作业.
-Ffile
运用file文件作为过滤条件表达式的输入,此刻指令行上的输入将被疏忽.
-iinterface
指定tcpdump需求监听的接口.假如没有指定,tcpdump会从体系接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口).一但找到第一个符合条件的接口,搜寻立刻完毕.
在选用2.2版别或之后版别内核的Linux操作体系上,’any’这个虚拟网络接口可被用来接纳一切网络接口上的数据包(nt:这会包括意图是该网络接口的,也包括意图不是该网络接口的).需求留意的是假如真实网络接口不能作业在’稠浊’方式(promiscuous)下,则无法在’any’这个虚拟的网络接口上抓取其数据包.
假如-D标志被指定,tcpdump会打印体系中的接口编号,而该编号就可用于此处的interface参数.
-l对规范输出进行行缓冲(nt:使规范输出设备遇到一个换行符就立刻把这行的内容打印出来).在需求一起观察抓包打印以及保存抓包记载的时候很有用.比方,可经过以下指令组合来达到此意图:
“tcpdump-l|teedat”或许“tcpdump-l>dat&tail-fdat”.(nt:前者运用tee来把tcpdump的输出一起放到文件dat和规范输出中,而后者经过重定向操作’>’,把tcpdump的输出放到dat文件中,一起经过tail把dat文件中的内容放到规范输出中)
-L列出指定网络接口所支撑的数据链路层的类型后退出.(nt:指定接口经过-i来指定)
-mmodule
经过module指定的file装载SMIMIB模块(nt:SMI,StructureofManagementInformation,办理信息结构MIB,ManagementInformationBase,办理信息库.可了解为,这两者用于SNMP(SimpleNetworkManagementProtoco)协议数据包的抓取.具体SNMP的作业原理不知道,另需弥补).
此选项可屡次运用,然后为tcpdump装载不同的MIB模块.
-Msecret假如TCP数据包(TCPsegments)有TCP-MD5选项(在RFC2385有相关描绘),则为其摘要的验证指定一个公共的密钥secret.
-n不对地址(比方,主机地址,端口号)进行数字表明到姓名表明的转换.
-N不打印出host的域名部分.比方,假如设置了此选现,tcpdump将会打印’nic’而不是’nic.ddn.mil’.
-O不启用进行包匹配时所用的优化代码.当怀疑某些bug是由优化代码引起的,此选项将很有用.
-p一般状况下,把网络接口设置为非’稠浊’方式.但有必要留意,在特殊状况下此网络接口还是会以’稠浊’方式来作业;然后,’-p’的设与不设,不能作为以下选现的代名词:’etherhost{local-hw-add}’或’etherbroadcast'(nt:前者表明只匹配以太网地址为host的包,后者表明匹配以太网地址为播送地址的数据包).
-q快速(也许用’安静’更好?)打印输出.即打印很少的协议相关信息,然后输出行都比较简短.
-R设定tcpdump对ESP/AH数据包的解析按照RFC1825而不是RFC1829(nt:AH,认证头,ESP,安全负载封装,这两者会用在IP包的安全传输机制中).假如此选项被设置,tcpdump将不会打印出’制止中继’域(nt:relaypreventionfield).别的,因为ESP/AH规范中没有规定ESP/AH数据包有必要具有协议版别号域,所以tcpdump不能从收到的ESP/AH数据包中推导出协议版别号.
-rfile
从文件file中读取包数据.假如file字段为’-‘符号,则tcpdump会从规范输入中读取包数据.
-S打印TCP数据包的次序号时,运用绝对的次序号,而不是相对的次序号.(nt:相对次序号可了解为,相对第一个TCP包次序号的距离,比方,接受方收到第一个数据包的绝对次序号为232323,关于后来接纳到的第2个,第3个数据包,tcpdump会打印其序列号为1,2别离表明与第一个数据包的距离为1和2.而假如此刻-S选项被设置,关于后来接纳到的第2个,第3个数据包会打印出其绝对次序号:232324,232325).
-ssnaplen
设置tcpdump的数据包抓取长度为snaplen,假如不设置默许将会是68字节(而支撑网络接口分接头(nt:NIT,上文已有描绘,可查找’网络接口分接头’关键字找到那里)的SunOS系列操作体系中默许的也是最小值是96).68字节关于IP,ICMP(nt:InternetControlMessageProtocol,因特网控制报文协议),TCP以及UDP协议的报文已足够,但关于称号服务(nt:可了解为dns,nis等服务),NFS服务相关的数据包会发生包截短.假如发生包截短这种状况,tcpdump的相应打印输出行中会出现”[|proto]”的标志(proto实际会显现为被截短的数据包的相关协议层次).需求留意的是,选用长的抓取长度(nt:snaplen比较大),会添加包的处理时刻,而且会削减tcpdump可缓存的数据包的数量,然后会导致数据包的丢失.所以,在能抓取咱们想要的包的前提下,抓取长度越小越好.把snaplen设置为0意味着让tcpdump自动挑选合适的长度来抓取数据包.
-Ttype
强制tcpdump按type指定的协议所描绘的包结构来剖析收到的数据包.目前已知的type可取的协议为:
aodv(Ad-hocOn-demandDistanceVectorprotocol,按需距离向量路由协议,在Adhoc(点对点方式)网络中运用),
cnfp(CiscoNetFlowprotocol),rpc(RemoteProcedureCall),rtp(Real-TimeApplicationsprotocol),
rtcp(Real-TimeApplicationscon-trolprotocol),snmp(SimpleNetworkManagementProtocol),
tftp(TrivialFileTransferProtocol,碎文件协议),vat(VisualAudioTool,可用于在internet上进行电
视电话会议的应用层协议),以及wb(distributedWhiteBoard,可用于网络会议的应用层协议).
-t在每行输出中不打印时刻戳
-tt不对每行输出的时刻进行格局处理(nt:这种格局一眼或许看不出其意义,如时刻戳打印成1261798315)
-ttttcpdump输出时,每两行打印之间会延迟一个段时刻(以毫秒为单位)
-tttt在每行打印的时刻戳之前添加日期的打印
-u打印出未加密的NFS句柄(nt:handle可了解为NFS中运用的文件句柄,这将包括文件夹和文件夹中的文件)
-U使得当tcpdump在运用-w选项时,其文件写入与包的保存同步.(nt:即,当每个数据包被保存时,它将及时被写入文件中,而不是等文件的输出缓冲已满时才真正写入此文件)
-U标志在老版别的libcap库(nt:tcpdump所依靠的报文捕获库)上不起作用,因为其间缺少pcap_cump_flush()函数.
-v当剖析和打印的时候,发生具体的输出.比方,包的生存时刻,标识,总长度以及IP包的一些选项.这也会打开一些附加的包完好性检测,比方对IP或ICMP包头部的校验和.
-vv发生比-v更具体的输出.比方,NFS回应包中的附加域将会被打印,SMB数据包也会被完全解码.
-vvv发生比-vv更具体的输出.比方,telent时所运用的SB,SE选项将会被打印,假如telnet一起运用的是图形界面,
其相应的图形选项将会以16进制的办法打印出来(nt:telnet的SB,SE选项意义不知道,另需弥补).
-w把包数据直接写入文件而不进行剖析和打印输出.这些包数据可在随后经过-r选项来重新读入并进行剖析和打印.
-Wfilecount
此选项与-C选项配合运用,这将约束可打开的文件数目,而且当文件数据超越这儿设置的约束时,顺次循环代替之前的文件,这相当于一个具有filecount个文件的文件缓冲池.一起,该选项会使得每个文件名的最初会出现足够多并用来占位的0,这能够便利这些文件被正确的排序.
-x当剖析和打印时,tcpdump会打印每个包的头部数据,一起会以16进制打印出每个包的数据(但不包括连接层的头部).一共打印的数据巨细不会超越整个数据包的巨细与snaplen中的最小值.有必要要留意的是,假如高层协议数据没有snaplen这么长,而且数据链路层(比方,Ethernet层)有填充数据,则这些填充数据也会被打印.(nt:soforlinklayersthatpad,未能衔接了解和翻译,需弥补)
-xxtcpdump会打印每个包的头部数据,一起会以16进制打印出每个包的数据,其间包括数据链路层的头部.
-X当剖析和打印时,tcpdump会打印每个包的头部数据,一起会以16进制和ASCII码办法打印出每个包的数据(但不包括连接层的头部).这关于剖析一些新协议的数据包很便利.
-XX当剖析和打印时,tcpdump会打印每个包的头部数据,一起会以16进制和ASCII码办法打印出每个包的数据,其间包括数据链路层的头部.这关于剖析一些新协议的数据包很便利.
-ydatalinktype
设置tcpdump只捕获数据链路层协议类型是datalinktype的数据包
-Zuser
使tcpdump抛弃自己的超级权限(假如以root用户发动tcpdump,tcpdump将会有超级用户权限),并把当前tcpdump的用户ID设置为user,组ID设置为user首要所属组的ID(nt:tcpdump此处可了解为tcpdump运转之后对应的进程)
此选项也可在编译的时候被设置为默许打开.(nt:此刻user的取值不知道,需弥补)
三、指令选项运用举例
1.截获主机收到和宣布的一切数据包。
指令:
tcpdump
阐明:
tcpdump截取包默许显现数据包的头部。
普通状况下,直接发动tcpdump将监督第一个网络接口上一切流过的数据包。
基础格局:时刻数据包类型源IP端口/协议>方针IP端口/协议协议具体信息
tcpdump
按下Ctrl+C会停止tcpdump指令。且会在结尾处生成计算信息。
停止tcpdump
2.指定抓包数量-c
指定抓取2个数据包。
指令:
tcpdump-c2
阐明:
最后会自动生成计算信息。
指定抓包数量
【留意,现已切换到办理员了,虚拟机中要发生数据包,能够别的开一个窗口pingbaidu.com后边不再提示】
pingbaidu.com
3.将抓包信息写入文件-w
运用-w选项指定记载文件。
指令:
tcpdump-c10-wtcpdump_test.log
阐明:
保存的文件不是文本格局,不能直接检查。tcpdump保存的文件的格局是几乎一切干流的抓包东西软件都能够读取。所以能够运用更易读的图形界面东西来检查记载文件。
将抓包信息写入文件
4.读取记载文件-r
运用-r选项读取文件。
指令:
tcpdump-rtcpdump_test.log
![读取记载文件在这儿插入图片描绘
5.打印出一切可作业的接口-D
指令:
tcpdump-D
打印出一切可作业的接口
其间网卡为eth0。
6.指定监控的网卡-i
指令:
tcpdump-ieth0
假如不指定网卡,默许tcpdump只会监督第一个网络接口,一般是eth0。
7.显现更具体的数据包信息-v-vv
选项-v,-vv能够显现更具体的抓包信息。
tcpdump-v
tcpdump-vv
8.不运用域名反解-n
运用-n后,tcpdump会直接显现IP地址,不会显现域名(与netstat指令相似)。
9.添加抓包时刻戳-tttt选项
tcpdump的一切输出打印行中都会默许包括时刻戳信息;
时刻戳信息的显现格局如下
hh:mm:ss.frac(nt:小时:分钟:秒.)
此刻间戳的精度与内核时刻精度共同,反映的是内核第一次看到对应数据包的时刻;
而数据包从物理线路传递到内核的时刻,以及内核花费在此包上的中断处理时刻都没有算进来;
运用-tttt选项,抓包成果中将包括抓包日期:
指令:
tcpdump-tttt
添加抓包时刻戳
四、条件过滤
1.过滤:指定需求抓取的协议
tcpdump能够只抓某种协议的包,支撑指定以下协议:ip,ip6,arp,tcp,udp,wlan等。
指令:
tcpdumpudp
tcpdumpicmp
tcpdumptcp
tcpdumparp
2.过滤:指定协议的端口号
运用port参数,用于指定端口号。
指令:tcpdumptcpport80
运用portrange参数,用于指定端口规模。
指令:tcpdumptcpportrange1-1024
3.过滤:指定源与方针
src表明源。
dst表明方针。
指令:
tcpdumpsrcport8080
tcpdumpdstport80
4.过滤:指定特定主机的音讯包
运用host指定需求监听的主机。
指令:
tcpdumphost192.168.1.113
留意:若运用了host参数运用了计算机名或域名。例tcpdumphostshi-pc,则无法再运用-n选项。
5.过滤:指定数据包巨细
运用greater(大于)与less(小于)能够指定数据包巨细的规模。
例:只抓取大于1000字节的数据包。
指令:
tcpdumpgreater1000
例:只抓取小于10字节的数据包。
指令:
tcpdumpless10
五、逻辑表达式
运用基本逻辑组合拼装出更精密的过滤条件。
1.逻辑与
逻辑与联系,运用and。
指令:
tcpdumptcpandhost192.168.1.112tcpdumptcpandsrc192.168.1.112andport8080
2.逻辑或
逻辑或联系,运用or。
指令:
tcpdumphost192.168.1.112or192.168.1.113
3.逻辑非
逻辑非联系,运用not,也能够运用!。
若运用!有必要与这以后边的字符隔开一个空格。
例:当经过ssh协议远程运用tcpdump时,为了防止ssh的数据包的输出,所以一般需求制止ssh数据包的输出。
指令:
tcpdumpnottcpport22tcpdump!tcpport22
4.括号
括号需求运用在引号内,或转意运用。不然会报错。
例:抓取非22端口,且主机为192.168.1.112和192.168.1.113的TCP数据包。
指令:
tcpdumpnottcpport22andhost192.168.1.112or192.168.1.113tcpdump”nottcpport22andhost(192.168.1.112or192.168.1.113)”tcpdumpnottcpport22andhost”(192.168.1.112or192.168.1.113)”
六、其他实例
1.打印一切进入或脱离sundown的数据包.
tcpdumphostsundown
2.截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通讯
tcpdumphost210.27.48.1and\(210.27.48.2or210.27.48.3\)
3.假如想要获取主机210.27.48.1除了和主机210.27.48.2之外一切主机通讯的ip包,运用指令:
tcpdumpiphost210.27.48.1and!210.27.48.2
4.监督一切送到主机hostname的数据包
tcpdump-ieth0dsthosthostname
5.获取主机210.27.48.1接纳或宣布的telnet包
23为telnet的端口
tcpdumptcpport23andhost210.27.48.1
6.监督本机的udp123端口
123为ntp的服务端口
tcpdumpudpport123
7.运用tcpdump抓取HTTP包
tcpdump-XvvennSs0-ieth0tcp[20:2]=0x4745ortcp[20:2]=0x4854
0x4745为”GET”前两个字母”GE”,
0x4854为”HTTP”前两个字母”HT”。
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是运用十六进制的办法直接打印输出的。
显然这不利于剖析网络故障,一般的解决办法是先运用带-w参数的tcpdump截获数据并保存到文件中,然后再运用其他程序(如Wireshark)进行解码剖析。当然也应该界说过滤规则,以防止捕获的数据包填满整个硬盘。
六、检查数据包完好内容
tcpdump默许不显现数据包的具体内容。
办法一:
运用-A参数能以ASCII码显现数据包。
例:只抓取1个数据包,并显现其内容。
指令:
tcpdump-c1-A
办法二:
运用-X参数能16进制数与ASCII码共同显现数据包。
例:只抓取1个数据包,并显现其内容。
指令:
tcpdump-c1-X
七、tcpdump与wireshark
Wireshark(曾经是ethereal)是Windows下十分简略易用的抓包东西,现在也有Linux版别。
经过Tcpdump抓取的数据包剖析比较麻烦,要想很便利的剖析数据包,咱们能够用Tcpdump+Wireshark的完美组合完成:在Linux里抓包,然后在Windows里剖析包。
保存数据包为wireshark能辨认的文件:
tcpdumptcp-ieth1-t-s0-c100anddstport!22andsrcnet192.168.1.0/24-w./target.cap
参数意义
tcpipicmparprarp和tcp、udp、icmp这些选项等都要放到第一个参数的方位,用来过滤数据报的类型
-ieth1只抓经过接口eth1的包
-t不显现时刻戳
-s0抓取数据包时默许抓取长度为68字节。加上-S0后能够抓到完好的数据包
-c100只抓取100个数据包
dstport!22不抓取方针端口是22的数据包
srcnet192.168.1.0/24数据包的源网络地址为192.168.1.0/24
-w./target.cap保存成cap文件,便利用ethereal(即wireshark)剖析

未经允许不得转载:IT技术网站 » tcpdump(tcpdump指定ip抓包命令)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载