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

相关推荐
IT界小黑的对象1 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器
SilentCodeY1 小时前
Ubuntu 系统通过防火墙管控 Docker 容器
linux·安全·ubuntu·系统防火墙
weixin_527550402 小时前
Linux 环境下高效视频切帧的实用指南
linux·运维·音视频
keson要进步2 小时前
CICD实战(二)-----gitlab的安装与配置
linux·运维·gitlab
藥瓿亭2 小时前
K8S认证|CKS题库+答案| 4. RBAC - RoleBinding
linux·运维·服务器·云原生·容器·kubernetes·cks
吐泡泡_2 小时前
Linux(线程控制)
linux
tasselyue3 小时前
Macbook M3 使用 VMware Fusion 安装 openEuler24.03LTS
linux
行止63 小时前
MySQL主从复制与读写分离
linux·数据库·mysql
HEX9CF4 小时前
【Linux】awk 命令详解及使用示例:结构化文本数据处理工具
linux·chrome·算法
labuladuo5204 小时前
Linux命令基础(2)
linux