文章目录
- 1.tcpdump抓包
- 1.1安装 tcpdump
- 1.2常见使用
- 2.wireshark抓包
1.tcpdump抓包
TCPDump 是一款强大的网络分析工具, 主要用于捕获和分析网络上传输的数据包。
1.1安装 tcpdump
tcpdump 通常已经预装在大多数 Linux 发行版中。 如果没有安装, 可以使用包管理器进行安装。 例如 Ubuntu, 可以使用以下命令安装:
sudo apt-get update
sudo apt-get install tcpdump
在 Red Hat 或 CentOS 系统中, 可以使用以下命令:
sudo yum install tcpdump
1.2常见使用
(1)捕获所有网络接口上的 TCP 报文
使用以下命令可以捕获所有网络接口上传输的 TCP 报文:
sudo tcpdump -i any tcp
注意: -i any
指定捕获所有网络接口上的数据包, tcp 指定捕获 TCP 协议的数据包。 i 可以理解成为 interface(面向) 的意思
(2)捕获指定网络接口上的 TCP 报文
如果你只想捕获某个特定网络接口(如 eth0) 上的 TCP 报文, 可以使用以下命令:
sudo tcpdump -i eth0 tcp
(3)捕获特定源或目的 IP 地址的 TCP 报文
使用host
关键字可以指定源或目的 IP 地址。
例如, 要捕获源 IP 地址为192.168.1.100
的 TCP 报文, 可以使用以下命令:
sudo tcpdump src host 192.168.1.100 and tcp
要捕获目的 IP 地址为192.168.1.200
的 TCP 报文, 可以使用以下命令:
sudo tcpdump dst host 192.168.1.200 and tcp
同时指定源和目的 IP 地址, 可以使用 and
关键字连接两个条件:
sudo tcpdump src host 192.168.1.100 and dst host 192.168.1.200 and tcp
**(4)捕获特定端口的 TCP 报文 **
使用 port
关键字可以指定端口号。
例如,要捕获端口号为 80 的 TCP 报文(通常是HTTP 请求),可以使用以下命令:
sudo tcpdump port 80 and tcp
(5)保存捕获的数据包到文件
使用 -w
选项可以将捕获的数据包保存到文件中, 以便后续分析。 例如:
sudo tcpdump -i eth0 port 80 -w data.pcap
这将把捕获到的 HTTP 流量保存到名为 data.pcap 的文件中。
了解: pcap 后缀的文件通常与 PCAP(Packet Capture) 文件格式相关, 这是一种用于捕获网络数据包的文件格式。
(6)从文件中读取数据包进行分析
使用-r
选项可以从文件中读取数据包进行分析。 直接读取文件显示乱码,必须使用命令。
例如:
tcpdump -r data.pcap
注意事项
- 使用 tcpdump 时, 请确保你有足够的权限来捕获网络接口上的数据包。 通常需要以 root 用户身份运行 tcpdump。
- 使用 tcpdump 的时候,有些主机名会被云服务器解释成为随机的主机名, 如果要显示原本ip, 就用
-n
选项 - 观察三次握手的第三次握手, 不占序号。
2.wireshark抓包
wireshark 是 windows 下的一个网络抓包工具. 虽然 Linux 命令行中有 tcpdump 工具同样能完成抓包,但是 tcpdump 是纯命令行界面,使用起来不如 wireshark 方便。
下载 wireshark
https://1.na.dl.wireshark.org/win64/Wireshark-win64-2.6.3.exe
启用 telnet 客户端
参考https://jingyan.baidu.com/article/95c9d20d96ba4aec4f756154.html
启动 wireshark 并设置过滤器
由于机器上的网络数据报可能较多,我们只需要关注我们需要的。因此需要设置过滤器:
ip.addr == [服务器 ip]
则只抓取指定 ip 的数据包。
或者在过滤器中写入:
tcp.port == 9090
则只关注 9090 端口的数据。
更多过滤器的设置, 参考
https://blog.csdn.net/donot_worry_be_happy/article/details/80786241