数据包linux之tcpdump和netstat命令

netstat命令  时间:2021-02-15  阅读:()

一、 TCPDUMP

1定义用简单的话来定义tcpdump就是 dump the traffic on a network根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析,

2 Tcpdump的参数选项tcp d ump采用命令行方式它的命令格式为tcpdump[ -ade flnNOpqStvx] [ -c数量] [ -F文件名]

[ -i网络接口] [ -r文件名] [ -s snaplen]

[ -T类型] [ -w文件名] [表达式]

-a 将广播地址和网络地址转换为名字

-A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息) .在抓取包含网页数据的数据包时,可方便查看数据

-d 将匹配信息包的代码以人们能够理解的汇编格式给出

-dd 将匹配信息包的代码以c语言程序段的格式给出

-ddd 将匹配信息包的代码以十进制的形式给出

-c count tcpdump将在接受到count个数据包后退出

-C file-size (nt:此选项用于配合-w file选项使用)

该选项使得tcpdump在把原始数据包直接保存到文件中之前,检查此文件大小是否超过file-size.如果超过了,将关闭此文件,另创一个文件继续用于原始数据包的记录.新创建的文件名与-w选项指定的文件名一致,但文件名后多了一个数字.该数字会从1开始随着新创建文件的增多而增加. file-size的单位是百万字节。

-w 把包数据直接写入文件而不进行分析和打印输出.这些包数据可在随后通过-r选项来重新读入并进行分析和打印.

-W filecount

此选项与-C选项配合使用,这将限制可打开的文件数目,并且当文件数据超过这里设置的限制时,依次循环替代之前的文件,这相当于一个拥有filecount个文件的文件缓冲池. 同时,该选项会使得每个文件名的开头会出现足够多并用来占位的0,这可以方便这些文件被正确的排序.

-F file使用file文件作为过滤条件表达式的输入,此时命令行上的输入将被忽略.

-i interface指定tcpdump需要监听的接口. 如果没有指定, tcpdump会从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口)-M secret 如果TCP数据包(TCP segments)有TCP-MD5选项(在RFC 2385有相关描述) , 则为其摘要的验证指定一个公共的密钥secret.

-r file从文件file中读取包数据.如果file字段为'-'符号, 则tcpdump会从标准输入中读取包数据.

-s snaplen

设置tcpdump的数据包抓取长度为snaplen,如果不设置默认将会是68字

节(而支持网络接口分接头.68字节对于IP, ICMP(nt: Internet ControlMessage Protocol,因特网控制报文协议) , TCP以及UDP协议的报文已足够,但对于名称服务(nt:可理解为dns, nis等服务) , NFS服务相关的数据包会产生包截短.如果产生包截短这种情况, tcpdump的相应打印输出行中会出现' ' [ |proto] ' '的标志proto实际会显示为被截短的数据包的相关协议层次) .需要注意的是,采用长的抓取长度(nt: snaplen比较大) ,会增加包的处理时间,并且会减少tcpdump可缓存的数据包的数量 从而会导致数据包的丢失.所以,在能抓取我们想要的包的前提下,抓取长度越小越好.把snaplen设置为0意味着让tcpdump自动选择合适的长度来抓取数据包.

-T type

强制tcpdump按typ e指定的协议所描述的包结构来分析收到的数据包. 目前已知的type可取的协议为:aodv (Ad-hoc On-demand Distance Vector protocol,按需距离向量路由协议,在Ad hoc(点对点模式)网络中使用) ,cnfp (Cisco NetFlow protocol) , rpc(Remote Procedure Call) , rtp(Real-Time Applications protocol) ,rtcp (Real-Time Applications con-trol protocol) , snmp (SimpleNetwork Management Protocol) ,tftp (Trivial File Transfer Protocol,碎文件协议) , vat (Visual AudioTool,可用于在internet上进行电

视电话会议的应用层协议) , 以及wb (distributed White Board,可用于网络会议的应用层协议) .

-y datalinktype

设置tcpdump只捕获数据链路层协议类型是datalinktype的数据包-Z user

使tcpdump放弃自己的超级权限(如果以root用户启动tcpdump,tcpdump将会有超级用户权限) ,并把当前tcpdump的用户ID设置为user,组ID设置为user首要所属组的ID(nt: tcpdump此处可理解为tcpdump运行之后对应的进程)

-v 输出一个稍微详细的信息

-vv 输出详细的报文信息

-n不把网络地址转换成名字tcpdump的表达式介绍

表达式是一个正则表达式 tcpdump利用它作为过滤报文的条件如果一个报文满足表达式的条件则这个报文将会被捕获。如果没有给出任何条件则网络上所有的信息包将会被截获。

第一种是关于类型的关键字主要包括host net port,例如host

210.27.48.2指明210.27.48.2是一台主机 net 202.0.0.0指明202.0.0.0是一个网络地址 port 23指明端口号是23。如果没有指定类型缺省的类型是host.

第二种是确定传输方向的关键字主要包括src, dst ,dstor src, dstand

src ,这些关键字指明了传输的方向。举例说明 src 210.27.48.2 ,指明ip包中源地址是210.27.48.2, dstnet 202.0.0.0指明目的网络地址是202.0.0.0 。如果没有指明方向关键字则缺省是src or dst关键字

第三种是协议的关键字主要包括fddi, ip ,arp,rarp, tcp,udp等类型其他重要的关键字如下 gateway, broadcast, less,greater,还有三种逻辑运算取非运算是'not ' ' ! ' , 与运算是'and' , '&&' ;或运算是'or' , ' | | '

3监视指定网络接口的数据包

Tcpdump -i eth0

如果不指定网卡默认tcpdump只会监视第一个网络接口一般是eth0

4监视指定主机的数据包

打印所有进入或离开sundown的数据包.tcpdump host sundown

也可以指定ip,例如截获所有210.27.48. 1的主机收到的和发出的所有的数据包tcpdump host 210.27.48. 1

打印helios与hot或者与ace之间通信的数据包tcpdump host helios and \( hot or ace \)

截获主机210.27.48. 1和主机210.27.48.2或210.27.48.3的通信tcpdump host 210.27.48. 1 and \ (210.27.48.2 or 210.27.48.3 \)

打印ace与任何其他主机之间通信的IP数据包,但不包括与helios之间的数据包.tcpdump ip host ace and not helios

如果想要获取主机210.27.48. 1除了和主机210.27.48. 2之外所有主机通信的ip包使用命令tcpdump ip host 210.27.48. 1 and ! 210.27.48.2

截获主机hostname发送的所有数据tcpdump -i eth0 src host hostname

监视所有送到主机hostname的数据包tcpdump -i eth0 dst host hostname

4)监视指定主机和端口的数据包

如果想要获取主机210.27.48. 1接收或发出的telnet包使用如下命令tcpdump tcp port 23 host 210.27.48. 1

对本机的udp 123端口进行监视123为ntp的服务端口tcpdump udp port 123

5)监视指定网络的数据包

打印本地主机与Berkeley网络上的主机之间的所有通信数据包(nt: ucb-ether,此处可理解为'Berkeley网络'的网络地址,此表达式最原始的含义可表达为:打印网络地址为ucb-ether的所有数据包)tcpdump net ucb-ether

打印所有通过网关snup的ftp数据包(注意,表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析)

tcpdump 'gateway snup and (port ftp or ftp-data) '

打印所有源地址或目标地址是本地主机的IP数据包

(如果本地网络通过网关连到了另一网络, 则另一网络并不能算作本地网络. (nt:此句翻译曲折,需补充) . localnet实际使用时要真正替换成本地网络的名字)tcpdump ip and not net localnet

6)监视指定协议的数据包

打印TCP会话中的的开始和结束数据包,并且数据包的源或目的不是本地网络上的主机. (nt: localnet, 实际使用时要真正替换成本地网络的名字) )tcpdump ' tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst netlocalnet'

打印所有源或目的端口是80, 网络层协议为IPv4, 并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包. (ipv6的版本的表达式可做练习)tcpdump ' tcp port 80 and ( ( (ip[2:2] - ( (ip[0]&0xf)<<2) ) -

( (tcp[12]&0xf0)>>2) ) != 0) '

(nt:可理解为, ip[2:2]表示整个ip数据包的长度, (ip[0]&0xf)<<2)表示ip数据包包头的长度(ip[0]&0xf代表包中的IHL域,而此域的单位为32bit,要换算成字节数需要乘以4, 即左移2. (tcp[12]&0xf0)>>4表示tcp头的长度,此域的单位也是32bit, 换算成比特数为( (tcp[12]&0xf0) >> 4) << ,( (tcp[12]&0xf0)>>2) . ( (ip[2:2]-( (ip[0]&0xf)<<2) )-( (tcp[12]&0xf0)>>2) )!= 0 表示:整个ip数据包的长度减去ip头的长度,再减去tcp头的长度不为0,这就意味着, ip数据包中确实是有数据.对于ipv6版本只需考虑ipv6头中的'Payload Length' 与' tcp头的长度'的差值,并且其中表达方式' ip[] '需换成' ip6[] ' . )

打印长度超过576字节,并且网关地址是snup的IP数据包tcpdump 'gateway snup and ip[2:2] > 576'

7)输入信息含义

输出格式

统时间来源主机.端口 > 目标主机.端口数据包参数tcpdump的输出格式与协议有关tcp d ump的输出结果介绍

下面我们介绍几种典型的tcp d ump命令的输出信息

A数据链路层头信息

使用命令

#tcpdump host eic

21:50:12.847509 eth0<8:0:20:79:5b:460:90:27:58:af:1a ip 60:h219.33357>ice.telnet 0:0(0)ack 22535 win 8760(DF)

分析2150 12是显示的时间 847509是ID号eth0<表示从网络接口eth0接受该数据包eth0>表示从网络接口设备发送数据包,8:0:20:79:5 b:46是主机H219的MAC地址,它表明是从源地址H219发来的数据包.0:90:27:58:a f:1 a是主机IC E的MAC地址,表示该数据包的目的地址是IC E. ip是表明该数据包是IP数据包,60是数据包的长度,h219.33357>ice.te lnet表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口.ack 22535表明对序列号是222535的包进行响应.win 8760表明发送窗口的大小是8760.

BARP包的TCPDUMP输出信息

使用命令

#tcpdump arp

得到的输出结果是

22:32:42.802509 eth0>arp who-has route tell ice (0:90:27:58:af:1 a)

22:32:42.802902 eth0<arp rep ly route is-at 0:90:27:12:10:66(0:90:27:58:af:1 a)分析:22:32:42是时间戳,802509是ID号,eth0>表明从主机发出该数据包,arp表明是ARP请求包,who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:58:a f:1 a是主机IC E的MAC地址。

C TCP包的输出信息

用TC P DU MP捕获的TC P包的一般输出信息是src>dst: flags data-seqno ack window urgent optionssrc>dst:表明从源地址到目的地址, fla gs是TC P包中的标志信息,S是S YN标志,F(FIN),P(PUS H) ,R(RS T) "." (没有标记);data-seqno是数据包中的数据的顺序号,ack是下次期望的顺序号,windo w是接收缓存的窗口大小,urgent表明数据包中是否有紧急指针.Options是选项.

DUDP包的输出信息

用TC P DUMP捕获的UDP包的一般输出信息是route.port1>ice.port2:udp lenth

UDP十分简单上面的输出行表明从主机RO UTE的port1端口发出的一个UDP数据包到主机ICE的port2端口类型是UDP 包的长度是lenth

二Netstat

Netstat用于显示与IP、 TCP、 UDP和ICMP协议相关的统计数据一般用于检验本机各端口的网络连接情况。

参数列表

-a (al l)显示所有选项默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n拒绝显示别名能显示数字的全部转化成数字。

-l仅列出有在Listen (监听)的服務状态

-p显示建立相关链接的程序名

-r显示路由信息路由表

-e显示扩展信息例如uid等

-s按各个协议进行统计

-c每隔一个固定时间执行该netst at命令。

-v 显示系统不支持的地址族

提示 LISTEN和LISTENING的状态只有用-a或者-l才能看到

1.列出所有端口 (包括监听和未监听的)

列出所有端口 netstat-a

列出所有tcp端口 netstat-at

列出所有udp端口 netstat-au

2.列出所有处于监听状态的Sockets

只显示监听端口 netstat-l

只列出所有监听tcp端口 netstat-lt

只列出所有监听udp端口 netstat-lu

只列出所有监听UNIX端口 netstat-lx

3.显示每个协议的统计信息

显示所有端口的统计信息netstat-s

显示TC P或UDP端口的统计信息netstat-st或-su

4.在netstat输出中显示PID和进程名称netstat-p

5.在netstat输出中不显示主机端口和用户名(host,port or user)

当你不想让主机端口和用户名显示使用netst at -n

6.持续输出netstat信息netstat -c将每隔一秒输出网络信息。

7找出程序运行的端口

并不是所有的进程都能找到没有权限的会不显示使用ro ot权限查看所有的信息。netstat -ap | grep sshnetstat -an | grep ' : 80'

8显示网络接口列表

显示详细信息像是ifc o nf ig使用net stat -ie

RAKsmart便宜美国/日本/中国香港VPS主机 低至月$1.99 可安装Windows

RAKsmart 商家这几年还是在做事情的,虽然他们家顺带做的VPS主机并不是主营业务,毕竟当下的基础云服务器竞争过于激烈,他们家主营业务的独立服务器。包括在去年开始有新增多个数据中心独立服务器,包括有10G带宽的不限流量的独立服务器。当然,如果有需要便宜VPS主机的他们家也是有的,比如有最低月付1.99美元的美国VPS主机,而且可选安装Windows系统。这里商家有提供下面六款六月份的活动便宜V...

Hostodo商家提供两年大流量美国VPS主机 可选拉斯维加斯和迈阿密

Hostodo商家算是一个比较小众且运营比较久的服务商,而且还是率先硬盘更换成NVMe阵列的,目前有提供拉斯维加斯和迈阿密两个机房。看到商家这两年的促销套餐方案变化还是比较大的,每个月一般有这么两次的促销方案推送,可见商家也在想着提高一些客户量。毕竟即便再老的服务商,你不走出来让大家知道,迟早会落寞。目前,Hostodo有提供两款大流量的VPS主机促销,机房可选拉斯维加斯和迈阿密两个数据中心,且都...

华纳云CN2高防1810M带宽独享,三网直cn218元/月,2M带宽;独服/高防6折购

华纳云怎么样?华纳云是香港老牌的IDC服务商,成立于2015年,主要提供中国香港/美国节点的服务器及网络安全产品、比如,香港服务器、香港云服务器、香港高防服务器、香港高防IP、美国云服务器、机柜出租以及云虚拟主机等。以极速 BGP 冗余网络、CN2 GIA 回国专线以及多年技能经验,帮助全球数十万家企业实现业务转型攀升。华纳云针对618返场活动,华纳云推出一系列热销产品活动,香港云服务器低至3折,...

netstat命令为你推荐
weipin唯品会的唯品币是干什么用的?windows优化大师怎么用如何用Windows优化大师??拂晓雅阁?英特尔和AMD有什么区别啊?ps抠图技巧ps的抠图技巧是什么iphone越狱后怎么恢复苹果手机越狱之后能恢复原来吗?网易公开课怎么下载怎么下载网易公开课里的视频 .......人人逛街为什么女人都喜欢逛街?谢谢了,大神帮忙啊宕机宕机是什么意思系统分析员考系统分析员有什么好处?小米3大概要多少钱小米3修屏幕大概多少钱
域名注册公司 com域名空间 安徽双线服务器租用 域名交易网 3322动态域名 优key 远程登陆工具 国内加速器 长沙服务器 免费个人网站申请 cpanel空间 可外链相册 世界测速 域名和空间 免费测手机号 免费智能解析 东莞服务器 厦门电信 空间租赁 lamp的音标 更多