linux 端口complain,Linux命令--tcpdump详解

tcpdump是工作中必用的一道指令,如果熟悉掌握,将会很快的帮你解决问题!文章写的有点多,但是我认为都很有用!

先看看

tcpdump

的具体参数及意义:

-i

:指定

tcpdump

监听的网络接口

-s

:指定要监听数据包的长度

-c

:指定要监听的数据包数量,达到指定数量后自动停止抓包

-w

:指定将监听到的数据包写入文件中保存

-A

:指定将每个监听到的数据包以

ACSII

可见字符打印

-n

:指定将每个监听到数据包中的域名转换成

IP

地址后显示

-nn

:指定将每个监听到的数据包中的域名转换成

IP

、端口从应用名称转换成端口号后显示

-e

:指定将监听到的数据包链路层的信息打印出来,包括源

mac

和目的

mac

,以及网络层的协议

-p

:将网卡设置为非混杂模式,不能与

host

broadcast

一起使用

-r

:指定从某个文件中读取数据包

-S

:指定打印每个监听到的数据包的

TCP

绝对序列号而非相对序列号

OK,参数介绍先到这里,下面看几个具体例子

先来看一个比较基本的用法:

#tcpdump -i eth0

@eth0为参数值,表示需要抓包的网口,这是个必需参数哦。

tcpdump

支持很多的关键字,下面先看几个例子:

#tcpdump -i eth0 host 192.168.0.250

@在网口eth0上抓取主机地址为192.168.0.250的所有数据包。

#tcpdump -i eth0 net 192.168.0.0/24

@在网口eth0上抓取网络地址为192.168.0.0/24的所有数据包

​#tcpdump -i eth0 port 80

@在网口eth0上抓取端口为80的所有数据包(注意,这里不区分是源端口还是目的端口)

当然,我们也可以指定源端口或目的端口

#tcpdump -i eth0 src port 80 and dst port 6100

@在网口eth0上抓取源端口为80且目的端口为6100的数据包,这里用到了and逻辑运算符,后面再介绍

#tcpdump -i eth0 icmp

@在网口eth0上抓取所有icmp协议的数据包

以上几个例子,可以大致体现出tcpdump的基本用法。

实际上,

tcpdump

主要包括三种类型的关键字,第一种是关于类型的关键字,主要包括

host

net

port

,如上面的例(

1

)(

2

)(

3

),第二种

是确定传输方向的关键字,主要包括

src

dst

src or dst

src and dst

,这些关键字指明了传输的方向,如上面的例(

4

)。第三种是协议关键字,包括

fddi

ip

arp

rarp

tcp

udp

imcp

等,如上面的例(

5

)。

除了这三种类型的关键字外,还有其他重要的关键字,如:

gateway

broadcast

less

greater

,还有三种逻辑运算,取非运算是

'not'

'!'

,与运算符是

'and'

'&&'

或运算符是

'or'

'||'

,这些关键字可以组合起来构成强大的组合条件来满足我们的需求。

#tcpdump -i eth0 -s 1400 -nn host 192.168.0.250 and ! 192.168.0.74 and icmp -e

@抓取网口eth0上192.168.0.250与除192.168.0.74外的其他主机之间的icmp报文

#tcpdump -i eth0 -s 1400 -nn tcp and \(host 192.168.0.250 and ! 192.168.0.74\)

@抓取网口eth0上192.168.0.250与除192.168.0.74外的所有tcp数据包,

这里用到了括号,注意,在tcpdump中使用括号时必须用转义

#tcpdump -i eth0 ether src or dst 00:21:85:6C:D9:A3

@抓取网口eth0上源mac地址或目的mac地址为00:21:85:6C:D9:A3的所有数据包,

注意,这里的mac地址格式必须以':'分隔。

2017-06-20更新

#tcpdump -nn -c 100

-c:指定抓包数量为100

#tcpdump -nn -i eth1

-i:指定网卡为eth1

#tcpdump -nn port 80

port:指定端口为80

#tcpdump -nn tcp and port 80

:指定抓取类型为tcp且端口为80

#tcpdump -nn tcp and port 80 and host 221.212.212.24

:指定抓取类型为tcp且端口为80 且来源ip为221.212.212.24的包

#tcpdump -nn tcp and port 80 and host 221.212.212.24 -w 1.cap

:指定抓取类型为tcp且端口为80 且来源ip为221.212.212.24的包并保存在1.cap

#tcpdump -r 1.cap

:查看数据包的流向(但是不可以使用cat直接查看)

#tcpdump -nn tcp and port 80 and host 221.212.212.24 > 2.cap

:指定抓取类型为tcp且端口为80 且来源ip为221.212.212.24的包并重定向到2.cap

#cat 2.cap

:即可查看

#tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"​

@首先要启动80端口,nginx或者httpd都可以,然后你还要一边抓包一边在浏览器里访问它。

(如上命令,即可显示实时的网页浏览状况,)

a0db01b0e61867c1b35053f7d224992f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值