抓包工具的使用

本文介绍了Linux下强大的网络抓包工具tcpdump的使用教程,包括各种参数选项的含义及实战应用。同时,也提到了Wireshark这一Windows下的抓包工具,并给出了过滤包的规则示例。通过tcpdump和Wireshark,可以有效地进行网络分析和问题排查。
摘要由CSDN通过智能技术生成

    tcpdump是Linux下一个强大的抓包工具,支持针对网络层、协议、主机、网络或端口的过滤,凭借其强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。wireshark则是window下一个强大的抓包工具。

1. tcpdump使用教程

执行tcpdump --help命令后,tcpdump的使用语法如下:

tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
        [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
        [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
        [ -Q in|out|inout ]
        [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
        [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
        [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
        [ -Z user ] [ expression ]

下面我们依次介绍各个选项的作用:

1.1 抓包选项

  • -i interface:指定tcpdump需要监听的接口。默认会抓取第一个网络接口
  • -c:指定要抓取的包数量,抓完后tcpdump就会停止
  • -n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
  • -nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
  • -P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。

1.2 输出选项

  • -w:将抓包数据输出到文件中而不是标准输出,并不分析和打印出来。可以同时配合"-G
  • -e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
  • -q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
  • -A:以ASCII码的形式显示数据包,抓取web数据时比较有用
  • -X:输出包的头部数据,会以16进制和ASCII两种方式同时输出
  • -XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
  • -v:当分析和打印的时候,产生详细的输出。
  • -vv:产生比-v更详细的输出。
  • -vvv:产生比-vv更详细的输出。
  • -l:使标准输出变为缓冲行形式;
  • -t:在输出的每一行不打印时间戳;
  • -s snaplen :snaplen表示从一个包中截取的字节数。0表示包不截断,抓完整的数据包。默认的话 tcpdump 只显示部分数据包,默认68字节。

1.3 其它功能性选项

  • -F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。

1.4 expression表达式

(1)类型 type

  这里的type包括:host, net, port, portrange

  例如:host 192.168.201.128 , net 128.3, port 20, portrange 6000-6008'

(2)目标 dir

  例如:src, dst, src or dst, src and dst

(3)协议 proto

  这里的协议包括:tcp, udp , icmp

  多个表达式可以使用and和or组合,取反可以使用!号。

2. tcpdump实战演练

(1)抓取本机6379端口的tcp数据包,包括dst和src为6379的包

tcpdump -i lo -nn tcp port 6379

(2)抓取以本机6379为dst的tcp数据包:

tcpdump -i lo -nn tcp dst port 6379

(3)抓取以本机6379为dst和src的10个tcp数据包

tcpdump -i lo -c 10 -nn tcp port 6379

(4)把(3)中抓取的10个tcp数据包保存到文件中

tcpdump -i lo -c 10 -nn -w data tcp port 6379

    此时保存到data中的内容为二进制形式,需要使用wireshark等工具才能解析出内容。 

(5)只抓端口6379和6381的tcp数据包,其它端口不关心

tcpdump -i lo -c 10 -nn 'tcp port 6379 or tcp port 6381'

(6)对源IP和目的端口进行过滤 

tcpdump -i lo -c 10 -nn 'src host 127.0.0.1 and tcp dst port 6379'

(7)把抓到的包的内容重定向到文件中

tcpdump -i lo -c 10 -nn 'src host 127.0.0.1 and tcp dst port 6379' >> data

3. wireshark使用教程

安装wireshark之后,选择一个网卡就可以进行抓包了,过滤包的规则如下:

(1). 过滤IP

    过滤ip      :  ip.addr == ip

    过滤源 ip :   ip.src == ip

    过滤目的ip : ip.dst == ip

(2). 过滤端口

     过滤端口:tcp.port == port

     过滤源端口: tcp.srcport == port

     过滤目的端口: tcp.dstport == port

(3). 过滤协议

     tcp、  ip、  udp、 http

(4). 逻辑操作符

    and、 or、 not

(5). 比较操作符

     ==、  !=、  >、  >=、  <、  <=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值