sequenceDiagram participant Browser as Browser participant Clash as Clash (HTTP Proxy) participant VMess as VMess Server<br/>(vmess.node.com:1234) participant Google as Google Server<br/>(www.google.com:443) Note over Browser,Clash: ① DNS查询 www.google.com(可选,实际Clash解析) Browser->>Clash: ② CONNECT www.google.com:443 HTTP/1.1 Clash->>Clash: ③ 规则匹配: DOMAIN-SUFFIX,google.com => Proxy (VMess) Clash->>VMess: ④ 向VMess服务器发起TCP连接 Clash->>VMess: ⑤ VMess握手(加密协商、数据包加密)建立隧道 VMess->>Google: ⑥ VMess服务器向目标发起TCP连接 Clash-->>Browser: ⑧ 200 Connection Established Note over Browser,Google: ⑦ TLS握手(由浏览器发起,经过VMess隧道)<br/>—— 以下步骤⑨~⑭为TLS握手过程 —— Browser->>Clash: ⑨ 浏览器发起TLS ClientHello Clash->>VMess: ⑩ 将TLS数据封装为VMess加密包 VMess->>Google: ⑪ 解密并转发TLS数据到Google Google-->>VMess: ⑫ Google响应 TLS ServerHello 等 VMess-->>Clash: ⑬ 将响应加密并返回 Clash-->>Browser: ⑭ 将VMess解密后的TLS数据返回给浏览器 Note over Browser,Google: ... TLS握手后续交换 (Certificate, Key Exchange等) ... Browser->>Clash: ⑮ HTTP请求(GET / 等,经过TLS加密) Clash->>VMess: ⑯ 封装为VMess包并转发 VMess->>Google: ⑰ 解密并转发HTTP请求到Google Google-->>VMess: ⑱ Google响应(加密的HTTP响应) VMess-->>Clash: ⑲ 封装为VMess包返回 Clash-->>Browser: ⑳ 浏览器收到加密响应,解密后展示页面
本质是通过海外的无封锁服务器将原始流量加密为无法被GFW识别并拦截的流量传回本机,并且绕过GFW的IP黑名单