当前位置: 首页 > news >正文

【网络代理相关知识】

网络代理相关知识

  • 区别与原理详解
  • 🌐 网络代理与 TCP 桥接原理(表格版)
    • 一、代理类型对比
    • 二、HTTP 代理的两种模式
    • 三、TCP 桥接(TCP Bridging / Relay)核心机制
    • 四、TCP 桥接的三个阶段
    • 五、HTTPS 代理中的证书获取流程
    • 六、常见技术中的代理与桥接应用
    • 七、关键问题总结
    • 八、一句话总结
  • 🌐 Nginx 反向代理(表格版)
  • 🌐 Vue Dev Proxy(表格版)

区别与原理详解

特性网络代理 (Network Proxy)Nginx 反向代理 (Reverse Proxy)Vue 前端请求代理 (Dev Proxy)
层级网络层 / 应用层(如 HTTP 代理)应用层(HTTP/HTTPS)应用层(HTTP/HTTPS)
运行环境独立的代理服务器或客户端软件(如浏览器插件、系统代理设置)服务器端(生产环境)开发环境(仅用于开发)
主要目的- 访问受限资源 - 匿名性 - 缓存加速 - 内容过滤- 负载均衡 - 高可用 - 安全防护(隐藏后端) - 静态资源服务 - SSL 终止解决开发时的跨域问题 (前端开发服务器和后端 API 服务器不同源)
谁发起请求最终用户或客户端程序Nginx 服务器(代表客户端)Vue 开发服务器(webpack-dev-server
工作流程用户 → 代理服务器 → 目标服务器 → 代理服务器 → 用户客户端 → Nginx → 后端服务器 → Nginx → 客户端浏览器 → Vue Dev Server → 代理规则 → 后端服务器 → Vue Dev Server → 浏览器
是否修改请求/响应通常透明转发,但可修改(如缓存、过滤)可修改(如添加头、重写 URL、压缩)可修改(如重写路径、添加头)
生产环境使用?是(如企业代理、CDN)是(核心生产组件)否(仅开发时使用)
典型工具/技术Squid, Charles, Shadowsocks, CDN 边缘节点Nginx, Apache, HAProxywebpack-dev-serverproxy 配置

🌐 网络代理与 TCP 桥接原理(表格版)


一、代理类型对比

类型是否需要手动配置谁发起连接代理是否解析内容典型场景安全性
显式代理是(如设置浏览器代理)客户端主动连接代理是(HTTP)或否(CONNECT)Clash、V2Ray、浏览器插件高(加密时)
透明代理否(自动拦截)网络设备劫持流量是或否(取决于模式)公司网关、ISP、GFW低(可能被监控)

二、HTTP 代理的两种模式

特性普通代理(HTTP Proxy)隧道代理(CONNECT)
适用协议HTTP(明文)HTTPS / TLS / 任意 TCP 协议
请求方式GET http://example.com/path HTTP/1.1CONNECT example.com:443 HTTP/1.1
代理行为解析 URL,重新发起 HTTP 请求建立 TCP 连接,透传数据
数据是否可读是,代理可查看/修改内容否,代理只转发加密流
TLS 握手位置代理与目标之间(若支持 SSL 代理)客户端与目标之间(端到端)
证书获取方式代理获取并可能替换(中间人)客户端直接接收目标服务器证书
典型用途缓存、过滤 HTTP 流量访问 HTTPS 网站、加密通信

三、TCP 桥接(TCP Bridging / Relay)核心机制

概念说明
定义代理将“客户端 ↔ 代理”和“代理 ↔ 目标”两个 TCP 连接“焊接”成一条逻辑通路
本质不是“两个隧道”,而是一个被中继的 TCP 流
触发方式客户端发送 CONNECT 请求
代理行为进入“透传模式”,双向转发字节流,不再解析协议
数据流向客户端 → 代理 → 目标 → 代理 → 客户端(双向)
是否加密桥接本身不加密,但上层可运行 TLS(如 HTTPS)
类比电话转接员:只传声音,不参与对话

四、TCP 桥接的三个阶段

阶段连接 A(你 ↔ 代理)连接 B(代理 ↔ 目标)代理行为
1. 建立连接 A已建立不存在等待客户端请求
2. 发送 CONNECT存在不存在代理解析 CONNECT 请求
3. 建立连接 B存在建立中代理连接目标服务器
4. 返回 200存在已建立返回 200 Connection Established
5. 桥接数据流存在存在双向透传,不再解析数据

五、HTTPS 代理中的证书获取流程

步骤行为说明
1客户端发送 CONNECT google.com:443通过代理请求建立 TCP 通路
2代理连接 google.com:443代理在境外可成功连接
3代理返回 200 Connection EstablishedTCP 隧道建立完成
4客户端发送 Client HelloTLS 握手开始,通过代理透传
5google.com 返回 Server Hello + 证书证书由真实服务器发送
6客户端验证证书检查 CA、域名、有效期
7建立加密会话后续所有数据加密传输

关键:证书是在连接建立后由服务器发送,不是提前获取。


六、常见技术中的代理与桥接应用

技术是否使用 TCP 桥接加密方式流量伪装说明
HTTP CONNECT✅ 是TLS(上层)❌ 否标准 HTTPS 代理机制
Shadowsocks✅ 是AES/ChaCha20✅ 是(可混淆)加密 SOCKS5 代理
V2Ray / Xray✅ 是TLS + WebSocket✅ 是(伪装成网站)模块化代理平台
Trojan✅ 是TLS✅ 是(完全像 HTTPS)假装是正常网站
SSH 隧道✅ 是SSH 加密✅ 是(SSH 流量)本地/远程端口转发
VPN(如 WireGuard)❌ 否IP 层加密✅ 是创建虚拟网络接口,非代理

七、关键问题总结

问题回答
是“两个隧道”吗?❌ 不是。是两个 TCP 连接被桥接成一个逻辑通路。
代理能看到 HTTPS 内容吗?❌ 不能,除非你安装了它的 CA 证书(中间人攻击)。
如何拿到证书?通过桥接的 TCP 通路,目标服务器在 TLS 握手时发送真实证书。
TCP 桥接安全吗?✅ 安全。只要不安装未知 CA,HTTPS 的端到端加密不受影响。
GFW 能阻断吗?可通过 DPI 识别特征,但无法解密内容。现代工具通过伪装对抗。

八、一句话总结

🔐 网络代理通过 TCP 桥接实现 HTTPS 透传:你发 CONNECT 请求,代理建立通路,你与目标服务器直接完成 TLS 握手,获取真实证书,代理仅作“透明中继”。

步骤发起方接收方数据内容说明
1客户端代理CONNECT google.com:443 HTTP/1.1 Host: google.com [空行]客户端请求代理建立通往 google.com:443 的隧道
2代理目标服务TCP SYN → google.com:443代理尝试与目标建立 TCP 连接
3目标服务代理TCP SYN-ACK目标服务器响应连接请求
4代理客户端HTTP/1.1 200 Connection Established [空行]代理通知客户端:隧道已建立,进入透传模式
5客户端代理[TLS Client Hello](二进制)客户端开始 TLS 握手,发送 Client Hello 包含:支持的协议版本、加密套件、随机数 ClientRandom
6代理目标服务[TLS Client Hello](原样转发)代理不解析,只是透传二进制数据
7目标服务代理[TLS Server Hello + Certificate + ServerHelloDone]服务器响应: - 选择加密套件 - 发送真实 SSL 证书(由 Google Trust Services 签发) - 包含 ServerRandom
8代理客户端[TLS Server Hello + Certificate + ServerHelloDone](原样转发)代理继续透传,无法篡改证书(否则浏览器会报警)
9客户端本地处理验证证书: - 是否由可信 CA 签发 - 域名是否匹配 - 是否过期✅ 验证通过(因为是 Google 真实证书)
10客户端本地处理生成 Pre-Master Secret 用证书中的公钥加密: {Pre-Master Secret}ₚᵤᵦₗᵢ꜀只有 google.com 的私钥能解密此数据
11客户端代理[TLS ClientKeyExchange] {Pre-Master Secret}ₚᵤᵦₗᵢ꜀客户端发送加密的密钥交换数据
12代理目标服务[TLS ClientKeyExchange] {Pre-Master Secret}ₚᵤᵦₗᵢ꜀(原样转发)代理无法解密,只能转发“乱码”
13目标服务本地处理私钥解密得到 Pre-Master Secret 结合 ClientRandomServerRandom 计算出会话密钥(Session Key)会话密钥用于后续对称加密
14目标服务代理[TLS ChangeCipherSpec] [TLS Finished](已加密)服务器通知:切换到加密模式,并发送加密的完成消息
15代理客户端[TLS ChangeCipherSpec] [TLS Finished](原样转发)代理继续透传加密数据
16客户端本地处理使用 Pre-Master SecretClientRandomServerRandom 独立计算出相同的会话密钥客户端也进入加密模式
17客户端代理[TLS ChangeCipherSpec] [TLS Finished](已加密)客户端确认握手完成,进入加密通信
18代理目标服务[TLS ChangeCipherSpec] [TLS Finished](已加密)转发加密完成消息
19客户端 ⇄ 代理 ⇄ 目标服务双向加密通信开始[Application Data](如 GET / HTTP/1.1) 全部使用会话密钥加密传输代理只能看到加密的二进制流,无法解析内容
步骤谁在做什么是否需要 TLS
1你发 CONNECT❌ 你和代理之间是 HTTP(可能明文)
2代理建 TCP 连接❌ 代理和 Google 之间只是 TCP
3你发 Client Hello✅ 你和 Google 开始 TLS 握手
4数据加密传输✅ 你和 Google 之间的 TLS 加密

CONNECT 是 HTTP/1.1 的一个特殊方法,用于建立隧道

信息是否加密说明
具体路径和参数 /search?q=xxx是,加密GET 请求中,属于应用层数据,被 TLS 加密
HTTP 请求头 CookieAuthorization是,加密全部在 TLS 隧道内
目标域名(SNI)否,明文Client Hello 中以明文发送(除非启用 ESNI/DoH)
IP 地址和端口否,明文TCP/IP 层必须可见
流量大小和时间否,可见可用于流量分析
概念一句话解释
透传(Relay / Passthrough)中间节点“原样转发”字节流,不解析、不解密、不修改内容。
隧道(Tunnel)把一个协议的数据“藏”在另一个连接中,形成一条逻辑上的端到端通路。
你                     代理                     Google
|                      |                        |
|--- CONNECT --------->|                        |  ← 控制指令(明文)
|                      |--- TCP --------------->|  ← 代理建连接
|                      |<-- 200 ----------------|  ← 隧道建立完成
|<-- 200 --------------|                        |
|                      |                        |
|--- [Client Hello] -->|--- [Client Hello] -->|  ← 透传开始
|                      |<-- [Server Hello...] --|  ← 透传
|<-- [Server Hello...] -|                        |
|                      |                        |
|--- {Pre-Master} ---->|--- {Pre-Master} ---->|  ← 透传加密数据
|                      |                        |
|<=> [加密数据] <======>|<=> [加密数据] <=====>|  ← 透传 HTTPS 流量

公司的CA证书

你(浏览器)         企业代理(HTTPS 解密代理)      Google 服务器
|                     |                           |
|--- 访问 google.com ->|                           |
|                     | 拦截请求                  |
|                     | ↓                         |
|                     | 动态生成一个伪造的证书:    |
|                     |   - 域名:google.com       |
|                     |   - 公钥:代理生成的密钥对 |
|                     |   - 签名者:Company CA     |
|                     |   - 用 Company CA 私钥签名 |
|                     | ↓                         |
|<- 返回伪造证书 ------|                           |
| 浏览器验证:          |                           |
|   - 域名匹配 ✅       |                           |
|   - CA 可信 ✅(你装了Company CA)|
| → 建立 TLS 连接(实际是和代理)|
|                     |                           |
|--- 发送加密数据 ------>|                           |
|                     | 代理解密数据(用自己的私钥)|
|                     | 查看内容(搜索词、Cookie) |
|                     | 重新加密 -> Google         |
|                     |<- 加密响应 ----------------|
|<- 加密响应 ----------|                           |
条件解决的问题技术本质
1. 代理劫持“如何插进来?”控制网络路径: - 公司防火墙强制转发 - DNS 劫持 / ARP 欺骗 - 恶意 Wi-Fi 伪基站 - 系统代理设置被篡改
2. CA 证书信任“如何让浏览器不报警?”打破加密信任: - 你安装了公司/恶意 CA 根证书 - 代理用该 CA 动态伪造目标网站证书 - 浏览器验证通过,显示“安全锁”

🌐 Nginx 反向代理(表格版)

对比项Nginx 反向代理HTTPS 中间人攻击
谁控制代理?网站所有者自己攻击者 / 监控方
是否合法?✅ 合法,用于架构设计❌ 非法或强制监控
CA 证书来源正规 CA(如 Let’s Encrypt)恶意或企业自建 CA
用户是否知情?不需要知情(正常访问)不知情(被欺骗)
加密是否被破坏?❌ 否,端到端仍安全✅ 是,中间被解密
目的负载均衡、安全、缓存、SSL 终止监控、窃取、过滤

🌐 Vue Dev Proxy(表格版)

类型Vue Dev ProxyNginx 反向代理中间人攻击(MITM)
使用场景前端开发生产环境部署监控/窃取流量
运行环境localhost:5173(开发)服务器(生产)客户端网络路径中
是否修改请求转发 + 可重写路径转发、负载均衡、缓存解密、查看明文
是否涉及 HTTPS 解密❌ 否✅ 是(SSL 终止)✅ 是(伪造证书)
是否需要安装 CA 证书❌ 否❌ 否(用正规证书)✅ 是(自建 CA)
用户是否知情✅ 是(开发者配置)✅ 是(运维配置)❌ 否(被欺骗)
目的解决开发跨域提高性能、安全、架构监控、过滤、窃取
http://www.dtcms.com/a/517566.html

相关文章:

  • 美股及墨西哥股票数据接口文档
  • 做电销哪些网站可以找到客户做网站的北京
  • 网站描述修改做h5那个网站好
  • 什么公司时候做网站厦门编程培训机构
  • 建设网站 买了域名还要什么网站权重分为几个等级
  • 操作系统 进程(3)进程调度算法
  • 建筑设计自学网站做一个平台网站要多少钱
  • 专门做单页的网站把网站制作成app
  • 电子商务网站建设实践报告摘要如何做查询网站
  • HX711电子秤模块详解(STM32)
  • 成都高速公路网站建设招标消防工程师证怎么考
  • 白山北京网站建设大连甘井子区教育公共服务平台
  • SpringBoot考勤管理系统
  • 公司网站站群是什么为什么要建设就业指导网站
  • 用cosyvoice批量把生成有声书
  • 三门峡企业网站建设公司全球最大的c2c平台
  • AAAI 2025 | 即插即用,川大Mesorch刷新SOTA,用「介观」Transformer架构终结图像造假
  • 【2025最新】ArcGIS for JS 实现随着时间变化而变化的热力图
  • 滨州市建设局网站手机网站全屏代码
  • 创业先做网站德清淘宝网站建设
  • 数据结构10:树和二叉树
  • 手机网站进不去怎么办自己建网站有什么好处
  • 高端建站什么意思wordpress 识别pc手机版
  • 从零开始:设计你第一款游戏的“法则”
  • 电子商务网站建设与管理的总结wordpress如何开启阿里云cdn
  • 国外网站模板欣赏做ps兼职的网站有哪些
  • 扬中网站制作公司苏州网页设计方法
  • wordpress网站无法登陆北京企业网站设计
  • 网页模板快速建站工具如何拥有自己的域名
  • 腾讯位置商业授权数据可视化 JS API