alt text

1. 一次 HTTPS 请求在 Clash 中的完整生命周期

以访问 https://www.google.com 为例。

第一步:应用发起 DNS 查询

浏览器要访问:

1
www.google.com

它先请求 DNS 解析。

第二步:Clash DNS 返回 fake-ip

如果开启 fake-ip,Clash 可能返回:

1
www.google.com → 198.18.0.23

同时 Clash 记录映射:

1
198.18.0.23 → www.google.com

第三步:浏览器连接 fake-ip

浏览器以为 198.18.0.23 就是目标地址,于是建立 TCP 连接。

第四步:连接进入 Clash

由于系统代理、TUN 或透明代理规则,这条连接进入 Clash。Clash 查映射表,知道:

1
198.18.0.23 实际对应 www.google.com

第五步:规则匹配

Clash 检查规则:

1
- DOMAIN-SUFFIX,google.com,PROXY

命中后,决定走 PROXY 策略组。

第六步:策略组选择节点

假设当前 PROXY 选择的是 trojan-node-1

Clash 使用 Trojan 协议连接远程服务器。

第七步:远程代理服务器连接目标网站

路径变为:

1
2
3
4
5
6
7
浏览器

Clash
↕ TLS / Trojan
Trojan 服务器
↕ HTTPS
www.google.com

浏览器和 Google 之间的 HTTPS 内容仍然由浏览器和 Google 端到端加密。Trojan 服务器通常能看到连接目标,但不能直接读取 HTTPS 正文。


2. 各种协议的异同与工作原理

下面逐个解释 Clash 中常见的出站协议。


2.1 SOCKS5

SOCKS5 是通用代理协议。它的职责是让客户端告诉代理服务器:请帮我连接某个目标地址和端口。

典型流程:

1
2
3
客户端 → SOCKS5 代理:我要连接 example.com:443
SOCKS5 代理 → example.com:443 建立连接
客户端 ↔ SOCKS5 代理 ↔ example.com 双向转发数据

SOCKS5 的特点:

1
2
3
4
5
6
支持 TCP
支持 UDP 转发机制
可以传递域名或 IP
本身不加密
本身不伪装
实现简单,兼容性好

在 Clash 中,SOCKS5 可以作为本地入站,也可以作为远程出站。

SOCKS5 更像一个基础代理接口,而不是安全隧道。它是否安全,取决于它运行在哪条链路上。如果 SOCKS5 只在本机 127.0.0.1 使用,风险较低;如果远程 SOCKS5 没有加密地暴露在网络上,就容易被监听或滥用。


2.2 HTTP 代理

HTTP 代理主要服务于 Web 流量。

对于普通 HTTP 请求:

1
浏览器 → HTTP 代理 → 目标网站

对于 HTTPS 请求,通常使用 CONNECT 方法:

1
2
3
浏览器 → HTTP 代理:CONNECT example.com:443
HTTP 代理 → example.com:443
浏览器 ↔ example.com 在隧道中完成 TLS 通信

HTTP 代理特点:

1
2
3
4
5
标准化程度高
浏览器和企业网络支持好
适合 Web 场景
本身不等于加密
UDP 支持弱

HTTP 代理和 SOCKS5 都属于基础代理协议,不是为抗识别或复杂加密代理设计的。


2.3 Shadowsocks

Shadowsocks 是轻量加密代理协议,可以理解为“加密的 SOCKS 风格代理”。

典型结构:

1
2
3
4
5
6
7
App

本地 ss-local / Clash
↓ 加密连接
Shadowsocks 服务器

目标网站

本地客户端接收应用请求,使用预共享密码和加密算法把数据加密后发给远程服务器。远程服务器解密后,再连接目标网站。

特点:

1
2
3
4
5
6
轻量
性能好
实现广泛
支持 TCP 和 UDP
有 AEAD 加密模式
伪装能力中等

Shadowsocks 的安全性主要依赖加密算法、密码强度、服务端实现和配置。现代配置通常使用 AEAD 类加密,提供机密性和完整性。

它的缺点是流量形态不像标准 HTTPS。虽然内容加密,但协议特征可能和普通 HTTPS 不同。


2.4 Trojan

Trojan 的核心思想是把代理流量隐藏在 TLS 连接里,使外观看起来更接近普通 HTTPS。

典型路径:

1
2
3
4
5
Clash
↓ TLS
Trojan 服务器

目标网站

Trojan 客户端与服务器建立 TLS 连接。TLS 建立后,客户端在加密通道内发送认证信息和代理请求。服务端验证通过后,代理流量;验证失败时,服务端可以表现得像一个普通 HTTPS 网站。

特点:

1
2
3
4
5
依赖 TLS
流量形态接近 HTTPS
配置相对直观
需要域名和证书
TCP 场景常见,部分实现支持 UDP

Trojan 和 Shadowsocks 的关键区别:

1
2
Shadowsocks:自有加密代理协议。
Trojan:把代理流量放进 TLS,看起来更像 HTTPS。

Trojan 的实际隐蔽性取决于 TLS 指纹、证书配置、服务器行为、SNI、ALPN、回落网站等因素。不是只要叫 Trojan 就一定“完全像 HTTPS”。


2.5 VMess

VMess 是 V2Ray 生态中的代理协议,早期是 V2Ray 的主力协议。

典型路径:

1
2
3
4
5
Clash / V2Ray 客户端
↓ VMess over TCP / WebSocket / HTTP/2 / gRPC / TLS
V2Ray 服务器

目标网站

VMess 的特点是:

1
2
3
4
5
支持用户 ID 认证
协议设计较复杂
可以搭配多种传输层
支持 TCP 和 UDP
曾经非常常见

VMess 本身提供一定加密和认证,但在实际部署中经常和 TLS、WebSocket、gRPC 等传输层组合,以改善兼容性或伪装效果。

它的缺点是协议复杂度较高,现代 Xray/V2Ray 生态中很多新配置更倾向于 VLESS。


2.6 VLESS

VLESS 可以理解为 VMess 的轻量化后继协议。它去掉了 VMess 中一些内建加密和冗余设计,把安全和伪装更多交给外层传输,如 TLS、XTLS、REALITY、gRPC、WebSocket 等。

典型组合:

1
2
3
4
5
VLESS + TLS
VLESS + TCP + XTLS Vision
VLESS + REALITY
VLESS + WebSocket + TLS
VLESS + gRPC + TLS

VLESS 的特点:

1
2
3
4
5
协议更轻
低开销
组合灵活
本身不主打内建加密
通常依赖 TLS / XTLS / REALITY 提供安全和伪装

理解 VLESS 时不能只看 VLESS 四个字。真正的安全性和流量形态取决于完整组合。

例如:

1
2
3
VLESS 裸跑:不推荐。
VLESS + TLS:常见安全组合。
VLESS + REALITY:更现代的 Xray 组合之一。

VLESS 的优势是灵活,但配置复杂度也更高。


2.7 Hysteria

Hysteria 是基于 QUIC/UDP 思路的代理协议,目标之一是改善高延迟、高丢包网络中的传输表现。

典型路径:

1
2
3
4
5
Clash
↓ UDP / QUIC
Hysteria 服务器

目标网站

Hysteria 特点:

1
2
3
4
5
6
基于 UDP / QUIC
支持 TCP 和 UDP 代理
内建加密
多路复用
可使用激进拥塞控制策略
弱网吞吐表现可能较好

它适合 UDP 可用、但 TCP 线路质量差的场景。QUIC 在 UDP 上实现自己的会话、加密、流复用和拥塞控制,因此可以绕开部分 TCP 层面的性能问题。

但它的限制也明显:

1
2
3
如果 UDP 被封锁,可能不可用。
如果 UDP 被限速,体验会下降。
如果带宽参数配置不合理,可能造成拥塞或丢包。

Hysteria 不是“必然更快”,它更像是为特定网络环境优化的 QUIC 代理。


2.8 TUIC

TUIC 也是基于 QUIC/UDP 的代理协议,强调低延迟、0-RTT、流复用和 UDP 代理能力。

典型路径:

1
2
3
4
5
Clash
↓ UDP / QUIC
TUIC 服务器

目标网站

TUIC 特点:

1
2
3
4
5
基于 QUIC
支持 TCP 和 UDP 转发
连接建立快
支持多路复用
适合 UDP 可用的网络

Hysteria 和 TUIC 的共同点:

1
2
3
4
都基于 UDP/QUIC
都支持代理 TCP 和 UDP
都内建加密
都依赖 UDP 网络质量

大致区别:

1
2
Hysteria 更强调弱网吞吐和拥塞控制。
TUIC 更强调低延迟、简洁和快速连接建立。

如果网络环境对 UDP 不友好,二者都可能不如 Trojan、VLESS + TLS 这类 TCP/TLS 协议稳定。


2.9 WireGuard

WireGuard 和前面这些协议不在同一个层级。它不是普通代理协议,而是三层 VPN 隧道协议。

典型路径:

1
2
3
4
5
6
7
8
9
App

系统网络栈

WireGuard 虚拟网卡
↓ UDP 加密隧道
WireGuard 对端

目标网络 / 互联网

WireGuard 的核心特点:

1
2
3
4
5
6
7
工作在三层
处理 IP 包
基于 UDP
加密强
性能好
配置相对简洁
适合远程组网、内网访问、站点互联

WireGuard 的路由机制通常基于 AllowedIPs,也就是某个 peer 允许承载哪些 IP 段。

例如:

1
AllowedIPs = 10.0.0.0/8

表示访问 10.0.0.0/8 这段内网地址时走该 WireGuard 对端。

它和 Clash 常见代理协议的关键区别:

1
2
Shadowsocks / Trojan / VLESS:代理某些连接。
WireGuard:转发 IP 包,构建三层加密网络。

WireGuard 非常适合远程办公和内网访问,但它默认不伪装成 HTTPS,也不主打抗识别。它的流量特征比较明确,且依赖 UDP。


3. 常见协议横向对比

协议 类型 加密 底层传输 UDP 支持 伪装能力 典型用途
SOCKS5 基础代理 TCP,可支持 UDP 通用代理接口
HTTP Proxy 基础代理 无,除非套 TLS TCP Web 代理、企业代理
Shadowsocks 加密代理 TCP/UDP 中等 轻量代理
Trojan TLS 代理 TCP/TLS 有,取决于实现 较强 HTTPS 风格代理
VMess V2Ray 协议 TCP/WS/gRPC/TLS 等 取决于组合 V2Ray 旧生态
VLESS 轻量代理协议 依赖外层 TLS/XTLS/REALITY TCP/WS/gRPC/REALITY 等 强,取决于组合 Xray 新生态
Hysteria QUIC 代理 UDP/QUIC 中等 弱网加速、UDP 可用场景
TUIC QUIC 代理 UDP/QUIC 中等 低延迟 QUIC 代理
WireGuard 三层 VPN UDP 原生 远程组网、内网访问

选择时可以按场景理解:

1
2
3
4
5
6
7
只需要本地代理接口:SOCKS5 / HTTP
想要轻量加密代理:Shadowsocks
想让流量更像 HTTPS:Trojan
使用 V2Ray 旧配置:VMess
使用 Xray 新组合:VLESS
UDP 可用且弱网严重:Hysteria / TUIC
需要真正三层 VPN 和内网访问:WireGuard

4. Clash 与传统 VPN 的区别

传统 VPN 的典型路径:

1
2
3
4
5
6
7
8
9
系统所有 IP 流量

VPN 虚拟网卡

VPN 加密隧道

VPN 服务器

互联网或远程内网

Clash 的典型路径:

1
2
3
4
5
6
7
应用流量 / TUN 流量

Clash

规则引擎

不同出站:DIRECT / REJECT / Trojan / VLESS / Hysteria / WireGuard

主要区别:

项目 传统 VPN Clash
核心定位 网络隧道 规则代理转发引擎
工作层级 通常三层或二层 入站可应用层,也可 TUN 三层
分流能力 依赖路由表或客户端规则 域名/IP/端口/进程/地区规则丰富
出站协议 通常单一 VPN 协议 支持多种代理协议
典型用途 远程办公、组网、全局隧道 科学分流、多节点代理、广告拦截
是否接管全部流量 通常是 可选,取决于系统代理/TUN/透明代理

开启 TUN 后,Clash 的体验会更接近 VPN,但本质仍然是规则代理引擎,而不是单一 VPN 协议。


5. 安全边界:谁能看到什么

假设路径是:

1
你 → Clash → 代理服务器 → 目标网站

5.1 本地运营商能看到什么

通常能看到:

1
2
3
4
你连接了某个远程服务器
连接时间
流量大小
部分 TLS/UDP 元数据

通常看不到:

1
2
3
代理隧道内的具体网页内容
HTTPS 页面正文
密码和表单内容

但如果 DNS 泄漏,运营商仍可能看到你查询了哪些域名。

5.2 代理服务器能看到什么

代理服务器通常能看到:

1
2
3
4
你的真实 IP
你要连接的目标域名或 IP
连接时间
流量大小

如果目标网站是 HTTPS,代理服务器通常不能直接看到 HTTPS 正文。但它仍然是重要信任边界,因为所有被代理的连接都经过它。

5.3 目标网站能看到什么

目标网站通常看到:

1
2
3
4
5
代理服务器出口 IP
浏览器指纹
账号登录信息
Cookie
访问行为

目标网站通常看不到你的真实本地公网 IP,除非出现:

1
2
3
4
5
6
WebRTC 泄漏
规则误判导致直连
DNS 泄漏
代理中断后回退直连
客户端配置错误
账号身份关联

Clash 不是匿名系统。它主要解决流量转发、规则分流和链路加密问题,不等于 Tor 这类匿名网络。


6. 常见问题与底层原因

6.1 为什么开了 Clash,但某些软件没有走代理

常见原因:

1
2
3
4
5
6
软件不使用系统代理
没有开启 TUN
软件使用 UDP 或 QUIC
规则命中了 DIRECT
DNS 没有被 Clash 接管
软件内置自己的 DNS 或网络栈

解决方向:

1
2
3
4
5
开启 TUN
检查规则命中
检查 DNS 设置
检查 UDP 支持
关闭浏览器内置 DoH 或纳入 Clash 管理

6.2 为什么有些网站显示代理 IP,有些显示本地 IP

因为规则不同。

1
2
命中 DIRECT → 显示本地出口 IP
命中 PROXY → 显示代理服务器 IP

Clash 的核心就是允许不同网站走不同出口。

6.3 为什么测速快但访问慢

测速通常只测某个测试 URL 的延迟,例如 generate_204。真实访问还受到:

1
2
3
4
5
6
7
8
节点出口带宽
节点到目标网站的链路
目标网站 CDN 调度
丢包率
DNS 解析
TLS 握手耗时
拥塞控制
规则选择

低延迟不等于高吞吐,也不等于所有网站都快。

6.4 为什么 fake-ip 会导致异常

部分软件不兼容假 IP,可能把 fake-ip 写入缓存、日志、证书校验或私有协议流程中。

解决通常是配置 fake-ip-filter,让特定域名走真实解析。

6.5 为什么 UDP 应用不稳定

可能原因:

1
2
3
4
5
6
代理协议不支持 UDP
节点服务端没开 UDP
网络屏蔽 UDP
TUN 没正确接管 UDP
规则没有覆盖 UDP 连接
QUIC 被阻断或绕过代理

有些配置会阻断 UDP 443,让浏览器从 HTTP/3/QUIC 回落到 TCP/HTTPS,以便被更稳定地代理。


7. 一个简化但完整的模型

可以把 Clash 理解成一台本地软件路由器

它接收流量:

1
2
3
4
5
HTTP 代理入口
SOCKS5 入口
Mixed Port
TUN 虚拟网卡
透明代理入口

它识别目标:

1
2
3
4
5
6
域名
IP
端口
协议
进程名
DNS fake-ip 映射

它匹配规则:

1
2
3
4
5
6
DOMAIN
DOMAIN-SUFFIX
GEOIP
IP-CIDR
PROCESS-NAME
MATCH

它选择策略:

1
2
3
4
5
6
DIRECT
REJECT
PROXY 策略组
自动测速组
故障转移组
负载均衡组

它选择出站:

1
2
3
4
5
6
7
8
9
10
Shadowsocks
Trojan
VMess
VLESS
Hysteria
TUIC
WireGuard
HTTP
SOCKS5
DIRECT

最后把流量送到目标网站。

完整链路可以压缩为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
App

Clash Inbound

DNS / fake-ip

Rule Engine

Proxy Group

Outbound Protocol

Remote Server or Direct Internet

Target Service

8. 总结

四条主线:

第一,Clash 不是协议,而是调度器。Trojan、Shadowsocks、VLESS、Hysteria、TUIC、WireGuard 才是具体出站方式。

第二,TUN 是三层虚拟网卡。它让 Clash 能从系统网络层接管更多应用的流量,而不只依赖系统代理。

第三,DNS 是分流准确性的核心。fake-ip 的作用不是“制造假网络”,而是用假 IP 保留域名与连接之间的映射关系。

第四,各种协议没有绝对优劣,只有适用场景。Shadowsocks 轻量,Trojan 像 HTTPS,VLESS 组合能力强,Hysteria/TUIC 偏向 QUIC 弱网优化,WireGuard 适合三层 VPN 和远程组网。