机场坊 - 机场推荐机场坊机场测评手记 · 2026-10-26 更新

机场入门

开着 Clash 打开一个网页,背后发生了什么?代理分流原理图解

本文要点
  • 打开网页要经过 DNS、TCP、TLS、HTTP 四步,代理是插入中间的转发者
  • 分流规则自上而下匹配,命中第一条即停止,顺序决定结果
  • 网站没走代理时先看连接日志里命中的规则和策略组

一句话结论:打开一个网页要经过“DNS 查地址 → TCP 建连接 → TLS 加密握手 → HTTP 请求与响应”四步,代理的本质是在其中插入一个替你完成连接的中间人,而 Clash 的分流规则决定每一个请求要不要交给这个中间人。理解这条流水线,你就能看懂大多数“能打开 A 却打不开 B”“DNS 泄漏”“开了代理反而变慢”的原因,也能自己排查某个网站为什么没走代理。

下面先用一张表看全景,再拆解每一步的细节、加入代理后的变化、系统代理与 TUN 模式、规则匹配和 Fake-IP,最后给出排查“为什么没走代理”的完整步骤。

全景:一次请求的四个关卡

步骤发生了什么不开代理时开 Clash 规则模式时
1. DNS 解析把域名换成 IP 地址向运营商 DNS 明文查询Clash 接管查询,Fake-IP 下先返回虚拟地址
2. TCP 建连三次握手建立连接直接连目标服务器应用连到本地 Clash,Clash 再决定连谁
3. TLS 握手协商加密、验证证书与目标网站直接握手浏览器与网站的 TLS 原样保留,外面再套一层代理协议
4. 规则匹配决定直连还是代理——按规则列表命中第一条,交给对应策略组

严格来说,开着 Clash 时规则匹配发生在真正建立外部连接之前:Clash 拿到“目标域名 + 端口”后先查规则,再决定是自己直连目标,还是通过节点在远端建连。表格按大家熟悉的网络顺序排列,便于对照理解。

没有代理时:四个步骤的细节

DNS 解析:你输入 example.com,系统依次查浏览器缓存、系统缓存、hosts 文件,再向运营商或路由器分配的 DNS 服务器查询,得到一个 IP。传统 DNS 是明文的,路径上的设备能看到你查了哪个域名,也可能被篡改返回错误结果,这就是“DNS 污染”。

TCP 三次握手:浏览器与服务器的 443 端口建立连接,客户端发 SYN、服务器回 SYN-ACK、客户端再发 ACK,消耗一个往返时间。所以延迟高时,网页会“迟迟不开始加载”。

TLS 握手:双方协商加密算法、服务器出示证书证明身份、交换密钥,TLS 1.3 只需额外一个往返。握手时客户端会在 SNI 字段写出要访问的域名,这是网络设备识别访问目标的常见依据。

HTTP 请求与响应:加密通道建好后,浏览器发请求、服务器回内容。一个网页往往还会引用几十个其他域名的图片、脚本、字体,每个域名都要重复上面的流程,所以“首页能开、图片加载不出来”其实是不同域名走了不同路线。

加入代理后:请求走了哪条新路

  1. 浏览器不再直接连接目标,而是连接本地代理端口,例如 127.0.0.1:7890。
  2. Clash 根据分流规则判断这个请求走直连还是走某个节点。
  3. 走代理时,Clash 用 Trojan、VLESS 等协议与节点服务器建立加密连接,把“我要访问 example.com:443”连同数据一起发过去。
  4. 节点服务器在海外替你完成 DNS 解析和 TCP 连接,再把数据原路返回。

此时本地网络只能看到你与节点之间的加密流量,而浏览器与目标网站之间的 TLS 依然完整,节点也读不到 HTTPS 的具体内容。各协议如何伪装流量见 代理协议对比。

系统代理与 TUN 模式

模式原理优点缺点
系统代理在系统设置里填写 HTTP/SOCKS 代理地址,遵守设置的应用主动把请求交给代理简单,对系统影响小部分应用、命令行工具和游戏不读取系统代理
TUN 模式创建虚拟网卡,在网络层接管所有流量覆盖所有应用,支持 UDP需要管理员权限,可能与其他 VPN 冲突

TUN 模式的工作方式和 VPN 很像,区别在于它后面接的是代理协议和分流规则,原理参见 VPN 是什么。客户端里怎么开启,见 Clash 使用教程。

Clash 分流规则如何匹配

Clash 会自上而下逐条匹配规则,命中第一条即停止。一份典型的规则列表大致是这样:

  • DOMAIN-SUFFIX,openai.com,AI:所有以 openai.com 结尾的域名交给 AI 策略组。
  • DOMAIN-KEYWORD,google,节点选择:域名包含 google 的走代理。
  • IP-CIDR,192.168.0.0/16,DIRECT:局域网地址直连。
  • GEOIP,CN,DIRECT:目标 IP 归属中国的直连。
  • MATCH,节点选择:以上都没命中时的兜底去向。

注意,GEOIP、IP-CIDR 这类按 IP 匹配的规则需要先拿到 IP,会触发本地 DNS 解析,所以规则顺序会同时影响速度和隐私。把域名规则放前面、IP 规则放后面是通行做法,完整写法见 Clash 分流规则教程。

DNS 泄漏与 Fake-IP

如果走代理的域名仍先用本地 DNS 解析,本地网络就能看到你查询了哪些域名,这叫 DNS 泄漏,还可能因污染拿到错误地址。Clash 常用 Fake-IP 模式解决:先给应用返回一个 198.18 开头的虚拟地址,等真正发起连接时再把域名交给节点在远端解析,既快又避免泄漏。副作用是少数依赖真实 IP 的应用需要加入 Fake-IP 过滤名单。

排查:为什么这个网站没走代理?

  1. 先确认代理在工作:客户端已启动、订阅已选中、模式是规则模式,并且系统代理或 TUN 至少开了一个。
  2. 打开连接日志:在客户端的“连接”页面刷新目标网站,找到对应域名,看它命中了哪条规则、走了哪个策略组。
  3. 命中了 DIRECT:说明规则把它判为直连,常见原因是规则集过旧,或 GEOIP 误判,在规则列表前面手动加一条 DOMAIN-SUFFIX 指向代理组即可。
  4. 命中了代理但策略组选的是 DIRECT:进入策略组页面,把选中项换成真实节点。
  5. 连接日志里根本没有这个域名:说明应用没把请求交给 Clash,它不读取系统代理,改用 TUN 模式。
  6. 走了代理但仍打不开:换节点测试,若所有节点都不行,再看 DNS 设置和 故障排查指南。

常见现象与原因对照

现象最可能的原因
开了代理网页打开慢节点延迟高,或国内网站被错误规则送进代理
浏览器能用,某个软件不行该软件不读系统代理,需开 TUN 模式
能 ping 通却打不开ICMP 与 TCP 路径不同,或 TLS 握手被干扰
首页能开,图片不显示图片所在的另一个域名命中了直连规则
测速很快,看视频卡带宽够但丢包高,见 延迟、丢包与带宽

养成一个习惯会让排查轻松很多:遇到问题先看连接日志,而不是反复开关代理。日志里每一条连接都写着域名、命中的规则和最终出口,绝大多数“走没走代理”的疑问在这里都有答案。

如果排查下来发现是节点本身质量不行,晚高峰频繁超时,那么换一家线路更好的机场才是根本办法,可以参考 稳定机场推荐 或 机场排行榜。

开着 Clash 打开一个网页,背后发生了什么常见问题

Clash 代理分流的原理是什么?

应用把请求交给本地 Clash 后,Clash 按规则列表自上而下匹配目标域名或 IP,命中第一条规则就决定去向:直连就自己连接目标,走代理就通过节点服务器在远端完成连接并转发数据。

为什么开了 Clash 有的网站还是打不开?

常见原因有三个:该网站命中了直连规则,应用本身不读取系统代理,或者选中的节点不可用。打开连接日志看这个域名命中了哪条规则、走了哪个策略组,就能快速定位。

系统代理和 TUN 模式有什么区别?

系统代理是在系统设置里填写代理地址,只有遵守设置的应用才会走代理;TUN 模式创建虚拟网卡,在网络层接管所有流量,包括命令行工具和游戏,但需要管理员权限。

什么是 DNS 泄漏,Fake-IP 能解决吗?

DNS 泄漏是指本该走代理的域名仍由本地 DNS 解析,查询记录被本地网络看到。Fake-IP 先给应用返回虚拟地址,真正连接时把域名交给节点远端解析,可以有效避免泄漏。

开了代理为什么网页变慢?

路径从直连变成你到节点、节点到目标两段,增加的主要是你到节点的往返时间和代理握手。节点延迟高,或国内网站被错误规则送进代理,都会让网页明显变慢。

#代理原理#网络基础