文章目录
需要npcap。
```java 需要配置Npcap,如果没有需要卸载重新安装 Npcap 是专为 Windows 开发的一款网络抓包 SDK,该 SDK 提供了被应用程序调用的库文件和系统驱动程序。通过 Npcap,我们可以得到原始(raw)网络数据,即未经过 TCP/IP 协议栈的数据,也就是网卡收到的数据。同时呢,我们也可以通过 Npcap 设置接收过滤器,这样收到的数据就是我们感兴趣的数据,比如某个端口的数据。而且,Npcap 还提供发送原始(raw)网络数据的功能。 ```配置wireshark
```java 确保选择的是 adapter for loopback traffic capture 可以监控本地的回环地址 ```开始抓包
配置过滤器
配置的后置过滤器,也可以配置前置过滤器。要分析远程的地址是哈?本地的过滤不一定是127.0.0.1,这是ipv4下面的地址。 下面这个是ipv6的地址
完成的一次修改数据
![](https://img-blog.csdnimg.cn/img_convert/4095de836a98c358059e20c5d878ce86.png)第一个http get请求, 请求地址/dev-api/system/user/2 http/1.1 的协议
右击通过追踪流拿到http stream。
下面是前端返回的json数据格式,复制到json转换器中可以拿到后端传过来的
后端传过来的数据。
一个完成的http过程
![](https://img-blog.csdnimg.cn/img_convert/33f0b758c296b67d94d01d937a3570e9.png)在你提供的抓包中,除了正常的三次握手和四次挥手之外,还有两个额外的 TCP 报文,它们的作用和详细解析如下:
### 额外的两个 TCP 报文
1. **数据包 3258**:
3258 25.960889 127.0.0.1 127.0.0.1 TCP 44 9212 → 7584 [ACK] Seq=1 Ack=398 Win=2160896 Len=0
- **源端口**: 9212
- **目标端口**: 7584
- **标志位**: [ACK]
- **确认号(Ack)**: 398
- **描述**: 这是一个确认包,表示目标端口(9212)确认收到了客户端(7584)发送的数据(如 HTTP 请求)。在这次握手中,目标端口发送的 ACK 包确认了客户端的请求。
2. **数据包 3260**:
3260 25.962348 127.0.0.1 127.0.0.1 TCP 44 7584 → 9212 [ACK] Seq=398 Ack=416 Win=2160896 Len=0
- **源端口**: 7584
- **目标端口**: 9212
- **标志位**: [ACK]
- **确认号(Ack)**: 416
- **描述**: 这是一个确认包,表示客户端(7584)确认收到了目标端口(9212)发送的 HTTP 响应。这个包是在服务器返回 HTTP 响应之后发出的,确认服务器的 FIN 包已经收到了。
### 作用解析
这两个额外的 TCP 报文都是 **确认包(ACK)**,它们的作用主要包括:
1. **数据包 3258**: 确认客户端发送的 HTTP 请求已被接收,通常在完成三次握手后,客户端会继续发送请求数据包(如 HTTP GET 请求),服务器通过发送 ACK 包来确认收到这些数据。
2. **数据包 3260**: 确认服务器的 HTTP 响应(包括 FIN 包)已经被客户端接收,这个确认包是连接关闭过程的一部分。
### 完整的 TCP 流量解析
1. **建立连接(三次握手)**:
- **SYN**: 客户端发起连接。
- **SYN, ACK**: 服务器响应连接请求。
- **ACK**: 客户端确认连接建立。
2. **数据传输**:
- 客户端发送 HTTP GET 请求。
- 服务器返回 HTTP 响应。
3. **断开连接(四次挥手)**:
- **FIN, ACK**: 服务器发起连接关闭。
- **ACK**: 客户端确认服务器的 FIN。
- **FIN, ACK**: 客户端发起连接关闭。
- **ACK**: 服务器确认客户端的 FIN。
### 结论
这两个额外的 ACK 包是 TCP 协议正常的一部分,用于确认数据的接收和保证数据完整性。它们确保了客户端和服务器之间的数据传输和连接关闭过程是可靠的。在 TCP 协议中,ACK 包用于确认接收到的数据,防止数据丢失。
`127.0.0.1` 和 `::1` 都是指向本地计算机的地址,但它们分别用于不同的 IP 协议版本。下面详细解释这两个地址的区别和用途:
### 1. `127.0.0.1`(IPv4 回环地址)
- **协议版本**: IPv4
- **格式**: 32 位地址
- **用途**: 表示本地计算机的回环地址,通常用于本地进程间的通信。所有发送到 `127.0.0.1` 的数据包都被路由回发送它的同一台计算机。
- **范围**: `127.0.0.1` 是回环地址范围的一部分,`127.0.0.1` 到 `127.255.255.255` 都是回环地址。通常情况下,`127.0.0.1` 是最常用的回环地址。
### 2. `::1`(IPv6 回环地址)
- **协议版本**: IPv6
- **格式**: 128 位地址
- **用途**: 同样用于本地计算机的回环地址,表示发送的数据包会返回到发送它的计算机。它是 IPv6 环回地址的标准表示形式。
- **范围**: `::1` 是 IPv6 地址范围中的回环地址,用于确保数据包不会离开主机,而是返回到主机。
### 主要区别
1. **协议版本**:
- `127.0.0.1` 是 IPv4 地址。
- `::1` 是 IPv6 地址。
2. **地址格式**:
- `127.0.0.1` 是由四个用点分隔的十进制数字组成的 32 位地址。
- `::1` 是一个由冒号分隔的 128 位地址,简化表示为 `::1`。
3. **使用环境**:
- `127.0.0.1` 只适用于 IPv4 网络。
- `::1` 只适用于 IPv6 网络。
4. **地址解析**:
- `127.0.0.1` 只能被解析和识别为 IPv4 地址。
- `::1` 只能被解析和识别为 IPv6 地址。
### 在实际应用中的区别
- **应用程序和服务**: 在配置应用程序或服务时,确保你使用了正确的 IP 协议版本。例如,配置监听的地址时,如果服务配置为 IPv4,应该使用 `127.0.0.1`。如果服务配置为 IPv6,则应该使用 `::1`。
- **抓包工具**: 在 Wireshark 等抓包工具中,你需要确保过滤器匹配正确的协议版本。如果你捕获的是 IPv4 流量,使用 `127.0.0.1` 进行过滤;如果是 IPv6 流量,使用 `::1` 进行过滤。
### 示例
- **IPv4**:
- 访问 `http://127.0.0.1` 会连接到本地计算机上运行的 Web 服务(如果该服务绑定到 IPv4 地址 `127.0.0.1`)。
- **IPv6**:
- 访问 `http://[::1]` 会连接到本地计算机上运行的 Web 服务(如果该服务绑定到 IPv6 地址 `::1`)。
确保在抓包、配置网络服务或编写网络程序时使用正确的 IP 地址版本以避免不必要的配置错误。
拿到登录用户名和密码
![](https://img-blog.csdnimg.cn/img_convert/af876a5245d2b4d3a3a8e7a87d5d98be.png)
引用:
wireshark抓包–127.0.0.1/本地 - jiafeng - 博客园 (cnblogs.com)