linux抓包命令tcpdump

如题所述

tcpdump是一个功能强大的命令行数据包分析器,它通过监听服务器的网卡获取数据包,可用于分析所有网络访问的数据。此工具还具有过滤功能,可以获取特定网络、端口或协议的数据包。

程序员在日常问题排查中,常利用过滤功能获取特定端口的数据包,以分析服务器是否收到请求,请求数据是否完整。

tcpdump命令的参数丰富,本文仅介绍常用参数:

参数 -c count 表示指定数量的数据包,达到count后结束命令;若不使用此参数,程序将持续抓取数据包,直到手动停止。

参数 -C file_size 在抓取数据包保存到文件时,通过此命令设定文件大小。文件达到指定大小后,将创建以原文件名加序号的新文件,例如 dump.txt, dump.txt1。单位为字节(b)。

参数 -D 列出服务器的所有网卡,tcpdump默认监听编号最小的网卡(一般为eth0)。在执行抓包时,可通过参数 -i interface 指定监听的网卡,any 表示监听所有网卡。

参数 -n 输出结果时,不将IP转换为主机名(默认显示主机名)。

参数 -q 快速输出,仅显示简要的数据包信息。

参数 -r file 从文件读取数据包,不再从网络获取数据包。

参数 -t 不输出时间戳。

参数 -w file 将抓取的数据包保存到指定文件,与参数 -r 结合使用时,从文件中读取数据包。

参数 -W filecount 指定文件数量,文件滚动到指定数量后,从第一个文件开始覆盖。

除了上述参数,还存在用于条件过滤的关键字,如:

参数 -host 过滤主机,例如 tcpdump host 192.168.1.110 只抓取经过此IP的数据包。

参数 -src 用于过滤请求来源方,如 tcpdump src host 192.168.1.110 只抓取从此IP过来的数据包。

参数 -dst 用于过滤请求接收方,例如 tcpdump dst host 192.168.1.110 只抓取发送到此IP的数据包。

参数 -port 过滤端口,如 tcpdump port 8080 只抓取经过8080端口的数据包。

参数 -net 过滤网络,如 tcpdump net 192.168 只抓取经过此网段的数据包。

逻辑操作符如 -and、not、or 用于条件组合,例如 tcpdump net 192.168 and port 8080 抓取特定网络和端口的数据包。

数据包分析结果如下:

时间戳:时:分:秒.微秒

IP协议名称

请求发送方IP和端口 > 请求接收方IP和端口。端口可能显示为协议名,如HTTP、SSH、MySQL等。

Flags [R]

标识和状态,可选状态包括 [S.] [.] [P.] [F.][R]

seq、ack、fin

表示TCP协议的握手和挥手过程。seq表示请求序列号,ack是回答序列号,fin表示完成。序列号显示为相对值,使用参数 -S 可显示绝对值。

win

当前窗口大小

length

报文体长度,此长度可用于简单分析是否正确接收请求。

利用以上信息可进行基本分析,通过参数 -w 将数据包写入文件,文件中包含更详细信息,借助分析工具如Wireshark进行进一步分析。

常用命令示例:

抓取8080端口的数据包

抓取从192.168.1.110发送到192.168.1.111的数据包

抓取192.168网段除了192.168.1.110的请求数据包

抓取8080端口的数据包并写入dump.log文件

注意事项:

1. 运行tcpdump需要管理员权限,可通过sudo命令或使用root用户。

2. 通过length字段只能进行简单判断,欲进行详细分析,需借助数据包分析工具,如Wireshark。
温馨提示:内容为网友见解,仅供参考
无其他回答

linux 抓包命令
linux系统下抓包命令是:tcpdump。1、tcpdump命令简介是一个运行在命令行下的抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP\/IP和其他数据包。tcpdump 适用于大多数的类Unix系统操作系统(如linux,BSD等)。类Unix系统的 tcpdump 需要使用libpcap这个捕捉数据的库就像 windows下的WinP...

linux抓包命令tcpdump
参数 -C file_size 在抓取数据包保存到文件时,通过此命令设定文件大小。文件达到指定大小后,将创建以原文件名加序号的新文件,例如 dump.txt, dump.txt1。单位为字节(b)。参数 -D 列出服务器的所有网卡,tcpdump默认监听编号最小的网卡(一般为eth0)。在执行抓包时,可通过参数 -i interface ...

网络抓包--tcpdump
网络抓包工具tcpdump是Linux系统中不可或缺的网络包分析命令,其主要功能是对网络数据包进行截获和分析,帮助用户筛选出所需的信息。简单来说,tcpdump就像一个网络数据的“探测器”,能根据用户的配置,过滤并显示特定网络接口、主机、协议或端口的数据包。启动tcpdump时,如果不指定网卡,默认会监视第一...

运维必备——Linux 服务器抓包工具 tcpdump 示例详解
在 Linux 上捕获网络数据包的 Tcpdump 示例 现在您已经在 Linux 机器上成功安装了 tcpdump,是时候监控一些数据包了。由于 tcpdump 需要超级用户权限执行大多数操作,因此您必须将 sudo 添加到您的命令中。1.列出所有网络接口 要检查哪些网络接口可用于捕获,请在 tcpdump 命令中使用 -D 标志。将 --...

linux下安装tcpdump并用其抓包
在使用tcpdump时,常用命令包括实时查看抓包信息,将捕获的数据保存为pcap文件以便后续分析,以及通过过滤指定端口号并保存至文件。这样,即使在Linux上完成抓包,也可以方便地将文件传输到Windows系统,利用Wireshark进行深入分析。总的来说,Wireshark提供了强大的抓包和分析功能,但在Linux环境中不便安装时,...

Linux服务器抓包工具tcpdump示例详解
tcpdump是一个强大的网络监控命令行工具,它能过滤并提供关于TCP\/IP网络数据包的详细信息。作为服务器管理员,你可以利用它进行故障排查和安全监控,甚至将其与cron任务结合以自动化任务执行。安装tcpdump的方法相对简单。通常,它已预装在大多数Linux发行版中,如Ubuntu。在没有的情况下,可以通过包管理器...

Linux命令行下抓包工具tcpdump的使用
一般我们的服务器里边只有一个网卡,使用tcpdump可以直接抓取数据包,但是这样查看太麻烦了,所以都会添加参数来进行获取的。 例如我截取本机(192.168.31.147)和主机114.114.114.114之间的数据 tcpdump -n -i eth0 host 192.168.31.147 and 114.114.114.114 还有截取全部进入服务器的数据可以...

linux下tcpdump怎么捕获本地的包
linux下有命令可直接执行抓包的,命令如下:1、tcpdump -vv -i ethN -s 10240 -w \/root\/abc.cap host ip 2、上述命令中,ethN,是你要抓的本机网卡,一般是eth0,可使用ifconfig查看使用的哪个网卡 -s 指定的是抓包数量 -w指定的是抓到的包写到哪个位置 host ip即为抓取哪个ip 的包 ...

tcpdump快速的如何抓包?
首先,了解TCPDump的基本用法。它在Unix和Linux系统上普遍适用,通过命令行,你可以开始抓包。例如,使用`tcpdump -i eth0`可以在eth0接口上抓取所有数据包。要保存捕获的数据到文件,可以添加参数`-w capture.pcap`。读取保存的文件则使用`-r capture.pcap`。过滤数据包也很关键,如`tcpdump host ...

Linux网络分析必备技能:tcpdump实战详解
工作原理:tcpdump运行在用户态,通过libpcap库实现数据包抓取。数据包过滤器(BPF)筛选数据包,减少性能损耗。面试题解答:Linux中iptables封禁的数据包,tcpdump依然可以抓到。基础用法:默认抓取所有数据包、指定网卡、不解析主机端口、抓特定主机、端口范围、网段、IPv6、十六进制输出。高级用法:客户端...

相似回答
大家正在搜