[网络]抓包工具介绍 tcpdump

一、tcpdump

tcpdump是一款基于命令行的网络抓包工具,可以捕获并分析传输到和从网络接口流入和流出的数据包。

1.1 安装

tcpdump 通常已经预装在大多数 Linux 发行版中。如果没有安装,可以使用包管理器 进行安装。例如 Ubuntu,可以使用以下命令安装:

复制代码
Bash
sudo apt-get update
sudo apt-get install tcpdump

在 Red Hat 或 CentOS 系统中,可以使用以下命令:

复制代码
Bash
sudo yum install tcpdump

1.2 常见使用

1. 捕获所有网络接口上的 TCP 报文

使用以下命令可以捕获所有网络接口上传输的 TCP 报文:

复制代码
Bash
$ sudo tcpdump -i any tcp

注意:-i any 指定捕获所有网络接口上的数据包,tcp 指定捕获 TCP 协议的数据包。i 可以理解成为 interface 的意思

2. 捕获指定网络接口上的 TCP 报文

如果你只想捕获某个特定网络接口(如 eth0)上的 TCP 报文,可以使用以下命令:

复制代码
Bash
$ sudo tcpdump -i eth0 tcp
3. 捕获特定源或目的 IP 地址的 TCP 报文

使用 host 关键字可以指定源或目的 IP 地址。

例如,要捕获源 IP地址为 192.168.1.100 的 TCP 报文,可以使用以下命令:

复制代码
Bash
$ sudo tcpdump src host 192.168.1.100 and tcp

要捕获目的 IP 地址为 192.168.1.200 的 TCP 报文,可以使用以下命令:

复制代码
Bash
$ sudo tcpdump dst host 192.168.1.200 and tcp

同时指定源和目的 IP 地址,可以使用 and 关键字连接两个条件:

复制代码
Bash
$ sudo tcpdump src host 192.168.1.100 and dst host 192.168.1.200
and tcp
4. 捕获特定端口的 TCP 报文

使用 port 关键字可以指定端口号。例如,要捕获端口号为 80 的 TCP 报文(通常是HTTP 请求),可以使用以下命令

复制代码
Bash
$ sudo tcpdump port 80 and tcp
5. 保存捕获的数据包到文件

使用 -w 选项可以将捕获的数据包保存到文件中,以便后续分析。例如:

复制代码
Bash
$ sudo tcpdump -i eth0 port 80 -w data.pcap

这将把捕获到的 HTTP 流量保存到名为 data.pcap 的文件中。

pcap 后缀的文件通常与 PCAP(Packet Capture)文件格式相关,这是一 种用于捕获网络数据包的文件格式

6. 从文件中读取数据包进行分析

使用 -r 选项可以从文件中读取数据包进行分析。例如:

复制代码
Bash
tcpdump -r data.pcap

注意事项

  • 使用 tcpdump 时,请确保你有足够的权限来捕获网络接口上的数据包。通常你需要以 root 用户身份运行 tcpdump。
  • 使用 tcpdump 的时候,有些主机名会被云服务器解释成为随机的主机名,如果不想要,就用-n 选项
  • 主机观察三次握手的第三次握手,不占序号

二、使用wireshark分析TCP通信流程(了解)

wireshark是windows下的一个网络抓包工具.虽然Linux命令行中有tcpdump工具同样能完成抓包,但是tcpdump是纯命令行界面,使用起来不如wireshark方便.

下载wireshark

https://1.na.dl.wireshark.org/win64/Wireshark-win64-2.6.3.exe

或者

链接:https://pan.baidu.com/s/159UUIoZ8b7guWDeuAHoF9A

提取码:k79r
启用telnet客户端

参考https://jingyan.baidu.com/article/95c9d20d96ba4aec4f756154.html
启动wireshark并设置过滤器

由于机器上的网络数据报可能较多,我们只需要关注我们需要的.因此需要设置过滤器在过滤器栏中写入

复制代码
ip.addr == [服务器 ip]

则只抓取指定ip的数据包.

或者在过滤器中写入,则只关注9090端口的数据

复制代码
tcp.port == 9090

更多过滤器的设置,参考

https://blog.csdn.net/donot_worry_be_happy/article/details/80786241

相关推荐
Johny_Zhao1 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行4 天前
Linux和window共享文件夹
linux
木心月转码ing4 天前
WSL+Cpp开发环境配置
linux
崔小汤呀5 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端