http base
# 挑战性问题
- 弱网优化
# misc
# /etc/hosts
/etc/hosts 是一个在类 Unix 系统(如 Linux、macOS)中用于手动映射主机名到 IP 地址的配置文件。它是一个纯文本文件,允许用户为特定的域名或主机名指定 IP 地址,从而覆盖 DNS 查询的结果。
# SESSION/COOKIE
# IPv4 地址
一个 IPv4 地址,可以使用 16 进制的输出代表. 这里分析下 16 进制各子节代表的意义, 以: 00 02 13 88 7f 00 00 01 00 00 00 00 00 00 00 00 为例
这个 16 进制的输出代表一个 IPv4 地址。让我们一起分析它:
00 02: 这是表示地址族(Address Family)的字段, 其中 00 02 对应 AF_INET, 表示 IPv4 地址族13 88: 这是表示端口号的字段, 其中 13 88 对应 5000, 表示目标主机的端口号为 50007f 00 00 01: 这是表示 IP 地址的字段, 其中 7f 00 00 01 对应 127.0.0.1, 表示目标主机的 IP 地址为 127.0.0.1, 即本地回环地址
所以, 这个 16 进制输出表示将连接目标主机的 IP 地址和端口号设置为 127.0.0.1:5000
在代码中, 这个地址被用作 inet_pton 函数的参数, 将字符串形式的 IP 地址转换为二进制表示。这样就将目标主机的地址设置为 127.0.0.1, 以便与其建立连接
# TCP (opens new window)
什么是TCPTCP 是 面向连接的、可靠的、基于字节流 的传输层通信协议 用于保证可靠性和流量控制维护的某些状态信息, 这些信息的组合, 包括 Socket、序列号和窗口大小称为连接
# https vs http (opens new window)

# socks5 与 socket
SOCKS5 和 Socket 是两个相关但不同的概念,它们分别属于不同的网络协议层和通信技术,彼此存在一定联系,但不应混淆
SOCKS5 概述SOCKS5 是一种代理协议,用于在客户端和目标服务器之间建立中介服务。它位于传输层和会话层之间,帮助客户端通过代理服务器发送网络请求,而不直接与目标服务器通信。它可以支持 TCP 和 UDP 协议,因此可以处理各种类型的流量,包括 HTTP、FTP、SMTP、POP3、游戏、流媒体等
工作方式: 当客户端连接到 SOCKS5 代理时,代理服务器将转发客户端的请求到目标服务器,再将响应返回给客户端。这样,客户端的真实 IP 地址不会暴露给目标服务器
Socket 是网络编程中的一种通信机制,用于建立两个网络节点之间的连接。Socket 是在传输层(TCP/IP 协议栈)上操作的抽象接口,允许程序读写网络数据
工作方式: Socket 是网络通信的基本工具。客户端和服务器通过创建和使用 Socket 进行连接,数据通过 TCP 或 UDP 协议在 Socket 之间传输。例如,在 TCP 连接中,客户端的 Socket 会向服务器的 Socket 发起请求,建立连接后进行数据传输
SOCKS5 依赖于 Socket: SOCKS5 代理协议本质上依赖于 Socket 进行通信。在客户端与 SOCKS5 代理服务器之间的连接,或者代理服务器与目标服务器之间的连接,都是通过底层的 TCP 或 UDP Socket 建立的。SOCKS5 代理处理的是请求的转发,Socket 则是承载这些请求和响应的传输通道
作用层次不同: Socket 是一种低级的网络编程接口,负责实际的数据传输,而 SOCKS5 是一种高级代理协议,负责在客户端和服务器之间中介、路由网络请求
| 特性 | SOCKS5 | Socket |
|---|---|---|
| 功能 | 代理协议,转发客户端请求到目标服务器 | 网络编程接口,建立两个节点间的连接 |
| 工作层次 | 会话层、传输层(代理服务器与应用层之间) | 传输层(处理 TCP/UDP 连接和通信) |
| 支持协议 | 支持 TCP 和 UDP 等多种协议 | 支持 TCP、UDP,依赖具体的实现(如 IP 协议) |
| 使用场景 | 用于网络代理、隐私保护、绕过地理封锁等 | 用于建立、维护、关闭网络连接,传输数据 |
| 依赖关系 | 依赖 Socket 进行底层数据传输 | 是底层数据传输的工具 |
# 抓包与代理协议
- 7层代理与抓包的区别
7层代理(反向代理):
- 工作原理: 7层代理主要用于服务端(服务器端)的负载均衡、安全防护和资源分发等,位于应用层(OSI第七层)。
- 典型用途: Nginx、HAProxy 等反向代理服务器。
- 特点: 客户端通常不直接知道反向代理的存在,它在客户端和服务器之间扮演一个中间角色。
- 无法用于抓包,因为它是为服务端优化的,客户端无法控制。
正向代理:
- 工作原理: 位于客户端和目标服务器之间,帮助客户端发起请求并返回目标服务器的响应。
- 正向代理适合抓包,因为你可以在客户端配置代理地址。
- 典型用途: HTTP/HTTPS 抓包工具(如 Charles、Fiddler)。
- 特点: 客户端需要明确配置代理信息。
- 抓包使用正向代理的原因
- 透明性: 抓包工具(如 Charles、Wireshark)会作为正向代理运行,拦截并记录客户端与目标服务器之间的通信。
SSL/TLS解密: 正向代理能够通过中间人攻击方式(Man-In-The-Middle)解密 HTTPS 数据流进行分析。- 可配置性: 手机或其他设备需要配置正向代理地址(例如 192.168.x.x:8888)。