当前位置: 首页 > news >正文

[网络]抓包工具介绍 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

http://www.lryc.cn/news/451056.html

相关文章:

  • 基于STM32和FPGA的射频数据采集系统设计流程
  • 自动变速箱系统(A/T)详细解析
  • 【Kubernetes】常见面试题汇总(四十三)
  • OpenCL 学习(1)---- OpenCL 基本概念
  • 自定义注解加 AOP 实现服务接口鉴权以及内部认证
  • 《软件工程概论》作业一:新冠疫情下软件产品设计(小区电梯实体按钮的软件替代方案)
  • 基于Ernie-Bot打造语音对话功能
  • 动手学深度学习(李沐)PyTorch 第 3 章 线性神经网络
  • ROS理论与实践学习笔记——2 ROS通信机制之服务通信
  • 技术成神之路:设计模式(十八)适配器模式
  • 图神经网络:处理复杂关系结构与图分类任务的强大工具
  • LeetCode: 1971. 寻找图中是否存在路径
  • mysql 查询表所有数据,分页的语句
  • TI DSP TMS320F280025 Note13:CPUtimer定时器原理分析与使用
  • Australis 相機率定軟體說明
  • C++入门(有C语言基础)
  • 第四届高性能计算与通信工程国际学术会议(HPCCE 2024)
  • 负载均衡架构解说
  • 【异常数据检测】孤立森林算法异常数据检测算法(数据可视化 Matlab语言)
  • MKV转MP4丨FFmpeg的简单命令使用——视频格式转换
  • git使用“保姆级”教程4——版本回退及分支讲解
  • spring cache,Spring data redis
  • 10.数据结构与算法-线性表的应用(线性表与有序表的合并)
  • GAN|对抗| 生成器更新|判别器更新过程
  • day01——登录功能
  • Flutter中使用FFI的方式链接C/C++的so库(harmonyos)
  • 【C++】二义性
  • 高并发内存池(五):ThreadCache、CentralCache和PageCache的内存回收机制、阶段性代码展示和释放内存过程的调试
  • STL之stackqueue篇(上)探索C++ STL中的Queue与Stack——构建数据处理的基础框架
  • 代码随想录算法训练营Day13