首页 > 系统相关 >在Linux中,如何追踪TCP连接和网络数据包,如使用tcpdump或Wireshark?

在Linux中,如何追踪TCP连接和网络数据包,如使用tcpdump或Wireshark?

时间:2024-03-29 09:01:11浏览次数:29  
标签:数据包 捕获 tcp TCP tcpdump Wireshark

在Linux环境中,追踪TCP连接和网络数据包主要通过使用命令行工具tcpdump和图形化网络分析软件Wireshark来实现。以下是详细的操作步骤:

1. 使用 tcpdump

tcpdump 是一个强大的命令行网络抓包工具,用于实时捕获和分析网络流量。以下是如何使用 tcpdump 追踪TCP连接和数据包:

1. 基本用法
tcpdump [options] [expression]
  • 选项

    • -i interface:指定监听的网络接口(如 eth0enp0s3any)。
    • -n:禁止DNS反向解析,显示IP地址和端口号而非主机名和服务名。
    • -nn:同时禁止IP和端口的反向解析。
    • -v-vv:增加详细输出级别。
    • -w file:将捕获的数据包保存到指定的文件(.pcap 格式),以便用 Wireshark 等工具后续分析。
    • -c count:捕获指定数量的数据包后停止。
    • -B buffer_size:设置内核缓冲区大小,以适应高流量环境。
  • 表达式(filter expression):

    • tcp:仅捕获TCP协议的数据包。
    • port numberport number1,number2:筛选特定端口的流量。
    • host hostsrc hostdst host:按源或目的主机IP地址过滤。
    • net networksrc netdst net:按源或目的网络地址过滤。
    • tcp flags [flaglist]:筛选特定TCP标志位(如SYN、ACK、FIN等)的数据包。
    • 更多复杂的过滤规则请参阅 man tcpdump
2. 示例
  1. 监听所有TCP流量

    sudo tcpdump -i any tcp
    
  2. 捕获特定端口(如80、443)的TCP数据包

    sudo tcpdump -i any 'tcp and (port 80 or port 443)'
    
  3. 捕获特定主机间(如192.168.1.1与10.0.0.1)的TCP流量

    sudo tcpdump -i any 'tcp and (host 192.168.1.1 and host 10.0.0.1)'
    
  4. 仅捕获TCP SYN和SYN-ACK包(追踪TCP连接建立过程):

    sudo tcpdump -i any 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'
    
  5. 将捕获的数据包保存到文件以供Wireshark分析

    sudo tcpdump -i any -w capture_file.pcap tcp
    
2. 使用 Wireshark

Wireshark 是一款流行的跨平台图形化网络封包分析工具,提供了丰富的过滤、解析和数据显示功能。以下是如何使用 Wireshark 追踪TCP连接和数据包:

1. 基本步骤
  1. 启动 Wireshark

    • 打开Wireshark应用程序。
    • 选择要监听的网络接口。
  2. 开始捕获

    • 点击“开始”按钮(或键盘快捷键Ctrl+E)开始捕获网络流量。
  3. 设置过滤器

    • 在捕获过程中或捕获完成后,在主界面上方的“捕获过滤器”栏输入类似tcp的过滤条件来只显示TCP数据包。
    • 或者在捕获结束后,在下方的“显示过滤器”栏输入更详细的过滤条件(如端口、主机等)来筛选已捕获数据包。
  4. 分析数据包

    • 浏览数据包列表,双击某个数据包以查看其详细分层结构和协议字段。
    • 使用“Follow TCP Stream”功能(右键点击数据包,选择“Follow” → “TCP Stream”)来重组特定TCP连接的完整数据流。
  5. 导出或保存捕获结果

    • 若需保存分析结果,可选择“文件” → “保存”或“另存为”,保存为.pcap.pcapng格式。
2. 示例
  1. 追踪特定TCP连接

    • 捕获数据包后,使用“显示过滤器”(如 tcp.stream eq X,其中X是TCP流编号)筛选特定连接。
    • 或者直接在捕获过程中设置捕获过滤器,如 host 192.168.1.100 and port 80,仅捕获特定主机和端口的流量。
  2. 分析TCP序列号、窗口大小等细节

    • 双击一个TCP数据包,展开“TCP”协议层,查看序列号、确认号、窗口大小等字段,理解TCP连接的状态和数据传输过程。
  3. 检测网络异常

    • 使用Wireshark的内置分析功能(如“专家信息”面板)或手动检查数据包,识别重传、乱序、超时等TCP连接问题。

综上所述,tcpdump 和 Wireshark 相结合,能够有效地追踪TCP连接和网络数据包,帮助诊断网络问题、分析协议行为或安全审计。tcpdump 适用于快速抓包和初步过滤,而 Wireshark 提供了更直观、详尽的分析界面和高级功能,适用于深度分析和问题排查。

标签:数据包,捕获,tcp,TCP,tcpdump,Wireshark
From: https://www.cnblogs.com/huangjiabobk/p/18103007

相关文章

  • STM32收发HEX数据包
            在实际应用中,STM32的串口通信都是以数据包格式进行收发,这个数据包一般都包含包头和包尾,表示一个数据包。源代码在文末给出数据包格式:固定长度,含包头包尾可变包长,含包头包尾问题1:当数据包传输时,里面有数据与包头包尾重复怎么办?1:设置限幅,包头包尾设置为数......
  • 面试必问-TCP三次握手
    三次握手过程1.客户端处于close状态,向服务器发送建立连接的请求SYN和初始序列号2.服务器处于LISTEN状态,收到客户端发来的请求后回复SYN,服务器的初始序列号,ACK和确认应答序号为客户端初始序列号+1,服务器变为SYN_REVD状态3.客户端收到服务器后,恢复ACK和确认应答号为服务器初......
  • 基于STM32的ModBus实现(二)移植FreeMODBUS TCP
    一、ModBusTCPModbusTCP是一种基于TCP/IP协议的Modbus通信协议的变种。它允许Modbus协议在以太网上进行通信,提供了一种简单而有效的方式来连接不同类型的设备,如传感器、执行器、PLC等。ModbusTCP使用标准的TCP/IP协议栈,因此可以在现有的以太网基础设施上运行,而无需额外的硬......
  • HCIA——三、TCP四次挥手及其wireshark抓包
    ZYHCIA所有内容:TCPTCP四次挥手全过程第一次挥手第二次挥手第三次挥手第四次挥手补充wireshark抓包工具1、搭建拓扑图2、手配ip地址与子网掩码3、服务器启动HTTP服务4、客户端访问HTTP服务器全过程5、TCP数据包数据包信息第一行以及它所包含的信息:数据包信息第二行以及它......
  • TCP与UDP:传输层协议对比
    ......
  • Profinet转ModbusTCP:从站设备转换与集成案例
    本案例旨在探讨如何将ModbusTCP设备数据成功地接入到西门子PROFINET网络中。为了实现这一目标,我们将使用西门子S7-1200型PLC以及Profinet转ModbusTCP网关作为关键设备。为了模拟Modbus从站,我们将使用电脑安装modbuspoll软件。首先需要了解Profinet和ModbusTCP这两种协议的基本概......
  • Windows Packet Divert(WinDivert)是一个适用于Windows 10、Windows 11和Windows Server
    WindowsPacketDivert(WinDivert)是一个适用于Windows10、Windows11和WindowsServer的用户模式数据包捕获和重定向工具。WinDivert允许用户模式应用程序捕获/修改/丢弃发送到/从Windows网络堆栈的网络数据包。总之,WinDivert可以:捕获网络数据包过滤/丢弃网络数据包嗅探......
  • Qt QTcpSocket 对连接服务器中断的不同情况进行判定
    简述对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态。而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结。分为下面六种不同情况   客户端网线断开   客户端网络断开   客户端通过HTTP代理连接服务器,代理机器断开代......
  • Linux命令:tcpdump - 网络分析
    tcpdump是一个功能强大的命令行网络协议分析器。主要功能:数据包捕获(抓包)数据包过滤数据分析网络故障排除和诊断常用选项-i:指定要监听的网络接口-D:列出可用于抓包的接口-s:设置抓取的数据包长度,超过这个长度的部分会被截断-c:指定要抓取的数据包的数量-w:将抓包数据保存......
  • 谈tcp,http,socket,rpc,grpc
    谈tcp,http,socket,rpc,grpc简介:计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。tcp:是传输层协议,主要解决数据如何在网络中传输。http:是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。tcp协议是以二进制数据流的形......