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

简介: 在Linux中,如何追踪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
  1. 捕获特定端口(如80、443)的TCP数据包
sudo tcpdump -i any 'tcp and (port 80 or port 443)'
  1. 捕获特定主机间(如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)'
  1. 仅捕获TCP SYN和SYN-ACK包(追踪TCP连接建立过程):
sudo tcpdump -i any 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'
  1. 将捕获的数据包保存到文件以供Wireshark分析
sudo tcpdump -i any -w capture_file.pcap tcp
2. 使用 Wireshark

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

1. 基本步骤
  1. 启动 Wireshark
  • 打开Wireshark应用程序。
  • 选择要监听的网络接口。
  1. 开始捕获
  • 点击“开始”按钮(或键盘快捷键Ctrl+E)开始捕获网络流量。
  1. 设置过滤器
  • 在捕获过程中或捕获完成后,在主界面上方的“捕获过滤器”栏输入类似tcp的过滤条件来只显示TCP数据包。
  • 或者在捕获结束后,在下方的“显示过滤器”栏输入更详细的过滤条件(如端口、主机等)来筛选已捕获数据包。
  1. 分析数据包
  • 浏览数据包列表,双击某个数据包以查看其详细分层结构和协议字段。
  • 使用“Follow TCP Stream”功能(右键点击数据包,选择“Follow” → “TCP Stream”)来重组特定TCP连接的完整数据流。
  1. 导出或保存捕获结果
  • 若需保存分析结果,可选择“文件” → “保存”或“另存为”,保存为.pcap.pcapng格式。
2. 示例
  1. 追踪特定TCP连接
  • 捕获数据包后,使用“显示过滤器”(如 tcp.stream eq X,其中X是TCP流编号)筛选特定连接。
  • 或者直接在捕获过程中设置捕获过滤器,如 host 192.168.1.100 and port 80,仅捕获特定主机和端口的流量。
  1. 分析TCP序列号、窗口大小等细节
  • 双击一个TCP数据包,展开“TCP”协议层,查看序列号、确认号、窗口大小等字段,理解TCP连接的状态和数据传输过程。
  1. 检测网络异常
  • 使用Wireshark的内置分析功能(如“专家信息”面板)或手动检查数据包,识别重传、乱序、超时等TCP连接问题。

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

相关文章
|
10月前
|
网络协议 Unix iOS开发
Wireshark 4.6.0 发布 - 网络协议分析器
Wireshark 4.6.0 发布 - 网络协议分析器
1143 0
Wireshark 4.6.0 发布 - 网络协议分析器
|
11月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
283 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
450 19
|
Windows
电脑显示有问题,电脑连接不上网络,电脑没声音,电脑链接不上打印机?驱动人生就能解决所有问题
电脑显示有问题,电脑连接不上网络,电脑没声音,电脑链接不上打印机?驱动人生就能解决所有问题
237 0
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
1202 12
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
2451 20
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
687 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
614 12
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
10836 2
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
919 0