数据包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

咖啡主机22元/月起,美国洛杉矶弹性轻量云主机仅13元/月起,高防云20G防御仅18元/月

咖啡主机怎么样?咖啡主机是一家国人主机销售商,成立于2016年8月,之前云服务器网已经多次分享过他家的云服务器产品了,商家主要销售香港、洛杉矶等地的VPS产品,Cera机房 三网直连去程 回程CUVIP优化 本产品并非原生地区本土IP,线路方面都有CN2直连国内,机器比较稳定。咖啡主机目前推出美国洛杉矶弹性轻量云主机仅13元/月起,高防云20G防御仅18元/月;香港弹性云服务器,香港HKBN CN...

特网云,美国独立物理服务器 Atom d525 4G 100M 40G防御 280元/月 香港站群 E3-1200V2 8G 10M 1500元/月

特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。公司名:珠海市特网科技有限公司官方网站:https://www.56dr.com特网云为您提供高速、稳定、安全、弹性的云计算服务 计算、存储、监控、安全,完善...

阿里云服务器绑定域名的几个流程整理

今天遇到一个网友,他之前一直在用阿里云虚拟主机,我们知道虚拟主机绑定域名是直接在面板上绑定的。这里由于他的网站项目流量比较大,虚拟主机是不够的,而且我看他虚拟主机已经有升级过。这里要说的是,用过阿里云虚拟主机的朋友可能会比较一下价格,实际上虚拟主机价格比云服务器还贵。所以,基于成本和性能的考虑,建议他选择云服务器。毕竟他的备案都接入在阿里云。这里在选择阿里云服务器后,他就蒙圈不知道如何绑定域名。这...

netstat命令为你推荐
回收站在哪vivo手机的回收站在哪刷网站权重适当的刷百度指数对网站权重有影响吗淘宝收费淘宝交易收取的费用是多少godaddygodaddy域名怎样使用硬盘人500G的硬盘容量是多少啊?qq怎么发邮件手机QQ怎么发邮件开机滚动条开机滚动条太多怎么办?怎么升级ios6苹果IOS5怎么升级IOS6版本bt封杀现在是全面封杀BT下载了吗?现在都找不到BT下载影片了商标注册查询官网如何在网上查询商标是否注册?
免费二级域名注册 成都主机租用 深圳域名空间 新通用顶级域名 idc评测 stablehost shopex空间 lighttpd 建站代码 大容量存储 国内php空间 ca4249 免费高速空间 台湾google 实惠 中国电信宽带测速 博客域名 googlevoice 脚本大全 512内存 更多