一、问题背景

在 Windows 系统下使用 Clash 系列客户端(包括 Clash for WindowsClash Verge)时,长期遇到一个非常诡异的问题:

  • Clash 内核运行正常

  • Dashboard 可访问

  • 节点延迟、测速一切正常

  • 系统代理显示为“已开启”

但实际表现却是:

  • 浏览器直连

  • 系统流量不走代理

  • 表现为“系统代理完全失效”

更离谱的是:

无论怎么重启 Clash、切换节点、开关系统代理,统统无效
只有重启 Windows,问题才能恢复


二、最初的误判方向(也是最常见的排查路径)

1. 怀疑 Clash 本身不稳定

尝试过的操作包括:

  • 升级 / 降级 Clash for Windows

  • 更换 Clash 内核(Meta / Premium)

  • 重置配置文件

结果:问题依旧


2. 怀疑 Clash for Windows 已过时

进一步尝试:

  • 完全卸载 Clash for Windows

  • 更换为 Clash Verge

结果非常关键:

问题 100% 复现

这一步直接排除了以下可能性:

  • Clash for Windows UI Bug

  • 特定前端实现问题

  • 配置文件格式问题


三、阶段性结论:问题不在 Clash

经过多次复现,可以确认以下事实:

  • Clash 内核始终工作正常

  • Dashboard、端口监听、节点状态均无异常

  • 问题只在 启用 System Proxy 时出现

  • 一旦出现,用户态操作无法恢复

  • 重启系统必然恢复

当时得到的阶段性判断是:

Windows 的系统代理(WinINET / WinHTTP)在某些情况下会进入异常状态。

这也是为什么:

  • 换 Clash 外壳无效

  • 但重启系统必好


四、关键转折点:更换端口后立刻恢复

在一次排查中,尝试了一个原本并未抱太大希望的操作:

将 Clash 的本地监听端口更换为 50787

结果是:

  • 不重启系统

  • 不修改任何其他配置

  • 系统代理立刻恢复正常

这是整个排查过程中最重要的一步


五、真正的根因:端口污染,而不是系统代理必坏

1. Windows 系统代理的工作方式

System Proxy 的本质行为是:

1
WinINET / WinHTTP 流量 → 127.0.0.1:PORT

这意味着:

  • 系统代理是否生效,完全取决于这个 PORT 是否可用

一旦端口异常:

  • 系统仍然显示“代理已开启”

  • 但所有流量在入口处就被丢弃

  • Clash 自然“收不到任何请求”


2. 什么是“端口污染”

在 Windows 环境中,以下情况非常常见:

  • Clash 或其他代理工具异常退出

  • 常见代理端口被反复占用 / 释放

  • 安全软件、加速器、网络优化工具对端口做过 hook

  • WinINET / AutoProxy 对某个 IP:PORT 产生失败缓存

表现为:

  • netstat 看似无人占用

  • 实际却无法正常通信

  • 只能通过重启系统彻底清除


六、为什么使用 5W+ 高位端口能解决问题

在 GitHub 的一篇 diffusion 中,有这样一段经验总结:

个人习惯使用 5W+ 的高端口号
DNS 报错常见于使用 Google / Cloudflare 等国际 DNS 而无法直连解析的情况(基本上是 DNS 覆写配置调错了导致的)

实践证明,这并非“个人偏好”,而是长期踩坑后形成的工程经验。

为什么 50000+ 端口更稳定

  • 不属于常见代理默认端口
    (如 7890 / 10809 / 8080 / 8888)

  • 不易被安全软件、加速器重点关注

  • 几乎不会被历史规则、缓存、黑名单污染

50787 正是一个典型的低风险高位端口


七、DNS 报错的真正原因

在问题发生时,DNS 往往也会同时报错,例如:

  • 使用 8.8.8.8 / 1.1.1.1 解析失败

  • Clash DNS 已开启,但解析超时

但这并不是 DNS 配置本身的问题

真实链路如下:

  1. 系统代理指向了“已污染的端口”

  2. DNS 请求未进入 Clash

  3. DNS 请求尝试直连国际 DNS

  4. 直连被阻断

  5. 表现为“DNS 报错”

根因依旧是代理入口端口失效。


八、最终稳定方案

1. 端口策略

  • 使用 50000–60000 的高位端口

  • 固定一个长期使用,不频繁更换

示例:

1
2
3
4
50787
51234
54321
58888

2. 系统代理

  • 可继续使用 System Proxy

  • 前提是端口干净、稳定


3. 推荐 DNS 配置示例

1
2
3
4
5
6
7
8
9
10
11
dns:
enable: true
listen: 127.0.0.1:1053
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- tls://1.1.1.1
- tls://8.8.8.8

配置原则:

  • 可直连 DNS 放在 nameserver

  • 国际 DNS 仅作为 fallback,并确保可走代理


九、经验总结

  1. 换 Clash 外壳 ≠ 换代理机制

  2. System Proxy 出问题,不一定是“系统代理坏了”

  3. 端口是一级稳定性因素,但常被忽略

  4. “只能重启解决”的问题,往往只是绕过了污染状态

  5. 使用 5W+ 高位端口不是玄学,而是工程经验


十、一句话结论

这不是 Clash 的问题,也不完全是 Windows 的锅,而是“被污染的本地代理端口 + 系统代理”共同制造的假象。

一旦理解其机制,就可以在不重启系统的情况下彻底解决问题