linux tcpdump 使用小结(二)
转载请注明出处:
TCPDump是一个功能强大的网络抓包工具,它能够在命令行界面捕获、分析和解析网络数据包。下面是TCPDump命令的使用总结,包括使用语法、常用参数说明等:
使用语法:tcpdump [options] [expression]
-
-i <interface>
:指定要监听的网络接口。 -
-n
:禁用主机名解析,只显示IP地址。 -
-l
:使输出行立即被缓冲并且刷新到标准输出,而不是按照缓冲区大小进行缓冲。 -
-c <count>
:设置捕获数据包的数量限制。 -
-s <snaplen>
:设置每个数据包的最大捕获长度。 -
-w <filename>
:将捕获的数据包写入文件。 -
expression
:可以是过滤器表达式,用于选择要捕获的数据包。
常见用法示例:
-
tcpdump -i eth0
:捕获并显示来自eth0接口的所有网络数据包。 -
tcpdump -n -l -c 10
:捕获并输出前10个数据包的IP地址(禁用主机名解析)。 -
tcpdump -i any tcp port 80
:捕获并显示所有通过任意接口的源或目的端口为80的TCP数据包。
一些常用过滤器表达式:
-
host <ip>
:捕获指定主机的数据包。 -
net <network>
:捕获指定网络的数据包。 -
port <port>
:捕获指定端口的数据包。 -
src <ip>
:捕获源IP地址为指定IP的数据包。 -
dst <ip>
:捕获目的IP地址为指定IP的数据包。
高级选项:
-
-A
:以ASCII形式显示捕获到的数据包内容。 -
-X
:以十六进制和ASCII组合形式显示捕获到的数据包内容。 -
-vvv
:显示更详细的输出信息,如协议解析和标志位。
使用示例1:
tcpdump -n -l -i any tcp port 24009
响应示例:
这段抓包响应显示了网络流量捕获结果。下面是对每个捕获数据包的分析:
第一个数据包:
-
时间戳:13:30:46.092550
-
源IP地址和端口:192.168.118.11.62964
-
目标IP地址和端口:192.168.118.32.24009
-
标志(Flags):[S],表示这是一个建立连接的请求数据包
-
序列号(seq):507702909
-
窗口大小(win):64512
-
选项:mss 1460, nop, wscale 3, sackOK, TS val 775689058 ecr 0
-
长度:0
第二个数据包:
-
时间戳:13:30:46.092594
-
源IP地址和端口:192.168.118.32.24009
-
目标IP地址和端口:192.168.118.11.62964
-
标志(Flags):[R.],表示连接被重置(reset)
-
序列号(seq):0
-
确认序列号(ack):507702910
-
窗口大小(win):0
-
长度:0
使用示例2:
tcpdump -n -l -i any tcp port 24009 and src 50.1.1.2 -A -s0 |strings
参数介绍:
tcpdump
是用于捕获网络数据包的命令。-n
禁用主机名解析,显示IP地址而不是域名。-l
设置行缓冲模式,改善实时输出效果。-i any
指定在任意网络接口上进行捕获。tcp
过滤出只显示TCP流量的数据包。port 24009
捕获源或目标端口为24009的流量。and src 50.1.1.2
过滤出源IP地址为50.1.1.2的数据包。
-A
以ASCII格式显示数据包内容,使其可读。-s0
设置快照长度为0,捕获完整的数据包。| strings
将输出结果通过管道发送给"strings"命令,该命令过滤非打印字符。
TCP协议中的标志(Flags)字段用于在数据包中传递特定的控制信息。
下面是常见的TCP标志及其说明:
-
SYN (Synchronize):用于建立连接的请求标志。当一个主机尝试与另一个主机建立连接时,它会发送一个带有SYN标志的数据包。
-
ACK (Acknowledgment):确认标志。表示收到了对方发送的数据包,并发送了确认响应。
-
RST (Reset):重置标志。用于终止连接或表示连接出现错误。当一方收到无效的、不可接受的数据包时,可以发送RST标志来告知对方重置连接。
-
FIN (Finish):结束标志。用于终止连接的请求。当发送方发送了所有数据后,会发送一个带有FIN标志的数据包,请求关闭连接。
-
PSH (Push):推送标志。指示接收方应该立即将数据交给应用层,而不是等待缓冲区填满或者等待其他条件。
-
URG (Urgent):紧急标志。表示数据包中有紧急数据需要优先处理。
这些标志可以单独使用或组合在一起,以便传递更多的控制信息。例如,一个数据包可以同时设置SYN和ACK标志,表示建立连接并进行确认。
linux tcpdump 使用小结(一)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2021-09-06 linux 对子用户配置java 环境变量
2019-09-06 vue中axios使用二:axios以post,get,jsonp的方式请求后台数据
2019-09-06 vue中axios使用一:axios做拦截器