Linux中_网络抓包工具tcpdump_了解

Linux中_网络抓包工具tcpdump_了解

1、介绍:

tcpdump是一个在Unix和Linux系统中常用的命令行网络抓包工具,用于捕获网络流量并分析网络数据包。它可以捕获和显示网络数据包。它可以帮助我们查看网络传输情况,分析网络问题和调试网络应用程序。以下是tcpdump的使用介绍、常用参数和示例。

2、使用介绍:

  1. 在命令行中输入tcpdump命令,即可启动tcpdump进行抓包。

  2. tcpdump会默认抓取由所有网络接口进出的数据包,并将其显示在命令行窗口上。

  3. 按Ctrl+C可以中断抓包,并显示抓包结果的统计信息。

  4. 命令格式:
    表达式:

    可以使用表达式来过滤要捕获的数据包。表达式可以根据协议、源/目的IP地址、端口号等进行过滤。

    tcpdump [选项参数] [expression表达式]

3、常用参数:

  1. -i :指定要监听的网络接口。例如,监听eth0网卡:-i eth0。
    any作为接口参数,您可以捕获系统上所有的网络流量数据。

  2. -n:以IP地址而非主机名形式显示数据包,禁用DNS解析,只显示IP地址。

  3. -c :指定抓包的数据包数量,例如,表示只抓取10个数据包:-c 10。

  4. -s :设置抓包时的快照长度(以字节为单位),设置每个数据包要捕获的最大字节数。例如:-s 1500。

  5. -w :将抓取的数据包保存到文件中,例如:-w capture.pcap。

  6. -r :从指定文件中读取数据包进行分析。例如:-r packet.pcap

  7. -X:以16进制和ASCII格式显示数据包内容。例如:tcpdump -X

  8. -q:以更简洁的方式显示结果。例如:

  9. :按照指定的协议过滤数据包。例如:tcpdump http

  10. -v 在捕获数据包时显示更多的详细信息。例如:tcpdump -v

  11. src <source_ip>: 按照源IP地址过滤数据包。例如:src 192.168.1.10
    仅捕获指定源IP地址的数据包:tcpdump src host 192.168.0.1

  12. dst <destination_ip>: 按照目标IP地址过滤数据包。例如:dst 192.168.1.10
    捕获指定目的端口号的数据包:tcpdump dst port 80

  13. and :按照前后条件同时满足过滤数据包。例如:src 192.168.1.10 and dst port 80

  14. or :按照前后条件有一个满足就过滤数据包。例如:

  15. -B :设置数据包的缓冲区大小,单位为字节。示例:tcpdump -B 4096

  16. -C <file_size>:设置保存数据包的文件大小上限,单位为MB,达到上限后会自动创建新的文件进行保存。
    示例:tcpdump -C 100

  17. -E algo:secret:指定用于解密数据包的算法和密钥。

  示例:tcpdump -E aes256:secretkey
  1. -F :从指定的文件中读取过滤规则。
  示例:tcpdump -F filter.txt
  1. -G :设置保存数据包的文件的时间间隔,单位为秒,达到时间间隔后会自动创建新的文件进行保存。
  示例:tcpdump -G 60
  1. -j :设置时间戳类型。
  示例:tcpdump -j host
  1. -M :设置使用指定的密钥对数据包进行解密处理,设置密钥,将数据包标记为具有指定密钥的特定流。。
  示例:tcpdump -M secretkey
  1. –number:在输出结果中显示每个数据包的序号。
  示例:tcpdump --number
  1. -Q <in|out|inout>:设置过滤规则的方向,只匹配输入、输出或输入输出都匹配的数据包。
  示例:tcpdump -Q in
  1. –time-stamp-precision :设置时间戳的精度。
  示例:tcpdump --time-stamp-precision nano
  1. –immediate-mode:立即将数据包写入文件,而不进行缓冲。
  示例:tcpdump --immediate-mode
  1. -T :设置输出的格式类型。指定输出文件的类型,如ps、psml、psml+xml、text、csv等。
  示例:tcpdump -T json
  1. –version:显示tcpdump的版本信息。
  示例:tcpdump --version
  1. -V :从指定的文件中读取要解析的数据包。
  示例:tcpdump -V packets.pcap
  1. -W :设置保存数据包的文件的数量上限,达到上限后会自动删除最旧的文件。
  示例:tcpdump -W 10
  1. -y :设置数据链路层类型。
  示例:tcpdump -y ethernet
  1. -z :在每次文件切换时切换到下一个输出文件之前执行指定的命令。
  示例:tcpdump -z "gzip -9"
  1. -Z :以指定的用户身份运行tcpdump。
  示例:tcpdump -Z root

4、示例:

  1. 抓取特定网络接口上的数据包,并显示其详细信息:

    tcpdump -i eth0
    
  2. 仅捕获指定源IP地址的数据包:

    tcpdump src host 192.168.0.1
    
  3. 捕获指定目的端口号的数据包:

    tcpdump dst port 80
    
  4. 将抓取到的数据包保存到文件中:

    tcpdump -w capture.pcap
    
  5. 从文件中读取数据包并进行分析:

    tcpdump -r capture.pcap
    
  6. 监听eth0网卡,捕获前10个数据包的详细信息:

 ```
 tcpdump -i eth0 -c 10 -v
 ```
  1. 捕获源IP地址为192.168.1.10并且目标端口为80的HTTP数据包:
 ```
 tcpdump src 192.168.1.10 and dst port 80 and http
 ```

8、tcpdump怎么统计pcap文件中有多少个协议类型为17的数据包?

  tcpdump -r <pcap文件路径> 'ip[9] = 17' | wc -l

9、使用tcpdump命令将.cap文件转换为.pcap文件?

  tcpdump -r input.cap -w output.pcap

10、使用tcpdump批量将.cap文件转换为.pcap文件:

  for file in *.cap; do
     tcpdump -r "$file" -w "${file%.cap}.pcap"
  done

您可以查看tcpdump的官方文档或使用tcpdump --help命令获取更详细的信息。

请注意,在使用tcpdump时需要具有适当的权限,通常需要以root用户或具有特定权限的用户身份运行。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值