linux tcp 抓包

时间:2024-03-26 18:59:50

1.工具

yum install nc tcpdump -y
安装nc和tcpdump工具

2.开启服务(先不运行命令)

  • 开启监听端口

  1. 开启一个服务器监听端口,-l 代表listen监听的意思
  2. nc -l localhost 8088
  3. linux tcp 抓包
  • 开启客户端

  1. nc localhost 8088   (客户端不需要监听,不需要 -l 参数)
  2. linux tcp 抓包
  • tcpdump开启监听

  1. tcpdump -nn -i lo port 8088  
  2. linux tcp 抓包
  3. -nn:指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示

  4. -i :指定监听的网络接口,参数值lo:抓取回环网口的包

3.运行

1.执行抓包命令,发现没有监听到数据 (抓包程序没有抓到数据阻塞中)

linux tcp 抓包

2.执行监听8088端口命令,发现也阻塞了、、、、这个时候在监听着8088端口

linux tcp 抓包

3.运行客户端命令,发送数据给8088端口

linux tcp 抓包

运行后发现xshell这里变了,多了个感叹号

linux tcp 抓包

打开发现有数据

linux tcp 抓包

ACK确认协议建立。

三次握手的过程,说明了tcp的两个特性 面向连接,具有可靠性(ack)

4.断开链接

  • 四次挥手

linux tcp 抓包

  • 第一个客户端发起的[F]代表结束finish
  • 服务器回复[.]代表服务器收到ack确认
  • 服务器发起[F.]服务器告诉客户端断开
  • 客户端告诉服务器[.]断开确认ack