常用抓包工具使用-tcpdump使用(一)

常用抓包工具使用-tcpdump使用(一)



前言

tcpdump常用于服务器/linux系统进行数据包的补货,简单记录下tcpdump常用的参数及常用场景示例


提示:以下是本篇文章正文内容,下面案例可供参考

一、tcpdump简介

tcpdump是linux下的网络抓包工具,主要用于把流经网卡的数据包头截获下来进行分析。

过滤方式:针对网络层,协议,主机,网络或者端口过滤,辅以and,or,not等逻辑语句帮助你去掉无用的信息。

注意:此命令需要设置网卡为混杂模式,普通用户不能正常使用,需要root权限。网卡默认只接收目的硬件地址是自己的或者广播硬件地址的数据包。而混杂模式则会使网卡接收所有流经网卡的数据包。

不带任何参数直接启动tcpdump命令默认回去截获流经第一个网络设备的所有数据包。

➜  /tmp sudo tcpdump                                                   
Password:
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
# listening监听的网卡,capture size表示数据包大小
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes

15:57:00.176004 IP 127.0.0.1.53965 > 127.0.0.1.https: Flags [.], ack 3835298573, win 2052, length 0

二、tcpdump常用参数

网络中的数据流量很大,如果不加分辨就把所有的数据包都截留下来,则数据量太大,反而不容易找到需要的信息。tcpdump使用参数指定需要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件。如果一个数据报满足表达式条件,则这个数据报将会被捕获。下面是几种类型的关键字

1. 关于类型的关键字

host:指定主机

# 获取指定host发送或接收的数据包
sudo tcpdump host www.baidu.com

net:指定网络地址

# 获取指定网络地址的数据包
sudo tcpdump net 10.120.113.123

port: 指定端口

# 获取指定端口发出或接收的数据包
sudo tcpdump tcp port 443

2. 确定传输方向的关键字,

src: 数据传输的源地址

# src后面为源地址,筛选从10.172.11.11发出的数据包
sudo tcpdump src 10.172.11.11

dst: 数据传输的目的地址

# dst后数据的接收地址,筛选接收地址为10.172.11.11的数据包
sudo tcpdump dst 10.172.11.11

dst or src:

# 筛选地址10.172.11.11发出和接收的数据包
sudo tcpdump dst or src 10.172.11.11

3. 关于协议的关键字

主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。

tcp:

# 截取所有tcp数据包
sudo tcpdump tcp

udp

# 截取所有udp数据包
sudo tcpdump udp

4. 常用参数

-w:打印截取数据至指定文件中

sudo tcpdump tcp -w /tmp/tcpdump1.log

-v: 添加后更详细的输出截取数据包

sudo tcpdump tcp -v

-i: 指定捕获数据的网卡,若没有制定,则默认第一个

sudo tcpdump -i eth0

三、常用示例

  1. 截取百度的数据包
tcpdump host www.baidu.com
  1. 截取主机10.172.31.1 和主机10.172.31.2 或10.172.31.3的通信
tcpdump host 10.172.31.1 and \(10.172.31.2 or 10.172.31.3\)
  1. 截取百度和csdn之外的所有的数据包
tcpdump ip host www.baidu.com and not csdn.net
  1. 截取主机接收或发出的telnet包,使用如下命令
tcpdump tcp port 23 host 10.172.31.1
  1. 截取本机udp指定端口数据包
tcpdump udp port 5421
  1. 截取指定主机发出的所有数据
tcpdump -i eth0 src host hostname
  1. 截取指定主机接收的所有数据
tcpdump -i eth0 dst host hostname
  1. 截取通过指定网管的数据包
tcpdump -i eth0 gateway Gatewayname
  1. 截取指定host和端口的数据包
tcpdump -i eth0 host hostname and port 80

总结

简单记录tcpdump使用方法及常用参数,理解后对Wireshark的学习有一定的帮助,主要是用场景还是服务器,客户端抓包建议使用客户端工具更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灯塔-tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值