搜索 K
Appearance
适用系统:Windows 10 21H2 及以上 / Windows 11 全版本(含 24H2、25H2) 实测环境:Win11 24H2 26100、Win10 22H2 19045、Windows Server 2022 最后更新:2026 年 3 月
如果你现在只想让浏览器立刻走代理,按下面五步走,九成问题当场解决:
WinINET 配置的 UI 前端,它写的是注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings。面板显示"已开启"但注册表里 ProxyEnable 是 0,是极常见的假象。netsh winhttp import proxy source=ie → 重启 explorer.exe 与浏览器进程。mtr 与 curl 判定表。很多人以为"系统代理"是一个开关,实际上 Windows 至少叠了 五层,它们互不通信、优先级各异。理解这五层,90% 的玄学故障会自动解释清楚。
第 1 层 · WinINET(用户态) 注册表路径 HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings。核心键值:
ProxyEnable(REG_DWORD):1 启用,0 关闭ProxyServer(REG_SZ):127.0.0.1:7890 或 http=127.0.0.1:7890;https=127.0.0.1:7891ProxyOverride(REG_SZ):默认 <local>,表示本地地址绕过AutoConfigURL(REG_SZ):PAC 脚本地址Edge、IE、大量 Electron 应用(VS Code、Discord 桌面版)、部分国产客户端都读这一层。注意:ProxyServer 与 AutoConfigURL 同时非空时,PAC 优先级更高,这会导致你手动填的端口"看起来没生效"。
第 2 层 · WinHTTP(服务态) 由 netsh winhttp 管理,服务于 Windows Update、部分 .NET 组件、后台服务。它与 WinINET 完全独立,改 IE 代理不会同步过去,必须显式 import proxy source=ie。
第 3 层 · 组策略 / MDMHKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings 下的 ProxySettingsPerUser。当它为 0 时,全机共用一份代理配置,用户层 UI 会直接变灰不可点——这就是"设置里的代理打不开"最标准的成因。
第 4 层 · 网络��(TUN / WFP) Clash Verge Rev、Mihomo Party、sing-box 的 TUN 模式会创建虚拟网卡 + WFP 过滤器驱动,在 IP 层劫持所有流量。此时系统代理设不设都一样通,这既是好事(全局生效),也是坏事(你无法用它来判断"系统代理是否生效",排查时极易误判)。
第 5 层 · AppContainer / WSL2 / 沙盒 UWP 应用(Store 版 Telegram、邮件、部分微软自家应用)运行在 AppContainer 沙箱内,默认禁止回环到 127.0.0.1,所以它们永远不走你本机的代理端口。WSL2 有独立网络命名空间,默认也不读 HKCU。
再往上,才是真正决定"快不快"的链路层:BGP 中转(公网多线入口,成本低但受运营商互联质量影响)与 IEPL/IPLC 专线(二层点对点,不过公网路由表,抖动通常在 1ms 以内,价格是 BGP 的 3–8 倍)。隧道侧若采用 BBRv3 拥塞控制,在 2% 丢包下的吞吐可比传统 Cubic 高 2–5 倍,但对 RTT 抖动极敏感;TLS Reality 通过借用真实站点的证书链完成伪装握手,握手失败时表现为"连接超时",极容易被误判成"代理没生效"。双 ISP 入口则解决单线故障时的可用性问题。
| # | 检测项 | 正常基线 | 异常表现 | 采集方式 | 责任层 |
|---|---|---|---|---|---|
| 1 | ProxyEnable 值 | 0x1 | 0x0 而 UI 显示已开 | reg query | WinINET |
| 2 | ProxyServer 格式 | host:port 单值 | 多协议串联写错 | reg query | WinINET |
| 3 | AutoConfigURL 冲突 | 与手动代理互斥为空 | 两者并存抢优先级 | reg query | WinINET |
| 4 | WinHTTP 代理一致性 | 与 WinINET 相同 | 显示 Direct access | netsh winhttp show proxy | 服务态 |
| 5 | DefaultConnectionSettings | flags 位含 0x02 | 位被清零 | 注册表二进制编辑 | 连接配置 |
| 6 | 本地代理端口监听 | 7890/7897 处于 LISTENING | 无监听或 PID 冲突 | netstat -ano | 客户端 |
| 7 | TCP 握手 RTT | 专线 ≤ 60ms | 大于 200ms 或超时 | Test-NetConnection | 链路层 |
| 8 | TLS 握手耗时 | ≤ 400ms | 大于 1.5s 或失败 | curl -w | 协议层 |
| 9 | 全程丢包率 | ≤ 1% | 大于 3% 触发降速 | mtr -rwzc 100 | 链路层 |
| 10 | 出口 IP 归属 | 与订阅一致 | 被判为机房滥用段 | 第三方 IP 查询 | 出口层 |
判读原则:1–5 项异常属于"本地配置故障",第六至第十章之外的通断问题请一律转向第六章的链路排查流程,不要在注册表里反复折腾。
场景 A · 桌面浏览器为主(办公、查资料、看视频) 直接用系统代理即可。选支持"系统代理 + 规则分流"的客户端,避免全局代理把所有国内流量也绕出去。适合对带宽需求中等、追求省心的用户。
场景 B · 多应用全局 / 游戏 / 模拟器 必须上 TUN 模式。模拟器、部分游戏反作弊客户端不读 WinINET,只有 IP 层劫持才能覆盖。代价是需要管理员权限,且与部分安全软件驱动冲突。
场景 C · 受控企业终端ProxySettingsPerUser = 0 的机器,用户层改不动。需要管理员权限写 HKLM 下的 WinINET 分支,或修改组策略后 gpupdate /force。
场景 D · 笔记本多网络切换 每个 SSID 对应一份 DefaultConnectionSettings 二进制记录。咖啡厅 WiFi 下"代理失效",很可能只是当前网络配置档的代理位没被写入。修复方式见第五章。
场景 E · WSL2 / Docker 开发 建议把 .wslconfig 设为 networkingMode=mirrored,让 WSL 共享 Windows 网络栈,从而天然继承系统代理。
Clash Verge Rev / Mihomo Party
ProxyEnable=1 但端口已无人监听的"死代理"状态,此时全机断网。reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /fv2rayN / sing-box 系
set_system_proxy 在某些精简版 Windows 上会因缺少 WinHTTP 组件静默失败。通用避坑清单
Internet Settings 键的 ACL 权限,导致写入被拒绝。用 regedit 右键 → 权限 → 确认 Administrators 有完全控制。netsh winhttp 调用,报错 0x80070005 时先临时退出防护。第一步 · 读出真实配置
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL
netsh winhttp show proxy
netstat -ano | findstr ":7890"第二步 · 强制写入并同步
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "127.0.0.1:7890" /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /f
netsh winhttp import proxy source=ie写入后必须重启 explorer.exe(任务管理器 → 重启 Windows 资源管理器),否则部分应用仍持有旧句柄。
第三步 · 验证隧道本身
Test-NetConnection 1.1.1.1 -Port 443 -InformationLevel Detailed
curl -x http://127.0.0.1:7890 -o NUL -s -w "dns=%{time_namelookup} conn=%{time_connect} tls=%{time_appconnect} total=%{time_total}\n" https://www.gstatic.com/generate_204第四步 · 判定表
| 现象 | 结论 | 处置 |
|---|---|---|
time_connect 超时 | 本地代理端口不通 | 检查客户端进程与端口占用 |
time_connect 正常、time_appconnect 失败 | TLS 层被重置 | 检查节点协议、Reality 参数、SNI |
两项均正常、total 大于 3s | 链路拥塞或绕路 | 换节点,跑 mtr 定位 |
curl 通、浏览器不通 | 浏览器未读系统代理 | 关插件、重启浏览器、检查 PAC |
| 全部正常但视频卡顿 | 带宽超售 | 见第七章 |
第五步 · 链路取证
mtr -rwzc 100 1.1.1.1
tcping -t 10 你的节点IP 443看中间跳的丢包是否从某一跳开始累积。若第 3 跳之后持续丢包且最终跳丢失率大于 3%,是链路问题,不是你的电脑问题。
| 宣传话术 | 真相 | 验证方法 |
|---|---|---|
| "全网独家 IPLC" | 多为 BGP 中转包装 | mtr 看是否经过公网 AS 中继 |
| "不限速不限量" | 共享带宽超售 | 晚高峰 20:00–23:00 实测吞吐 |
| "解锁全流媒体" | DNS 伪装或仅解锁自制剧 | 查各平台原创剧集而非仅首页 |
| "一元机场" | 出口 IP 复用率极高,易封 | 查出口 IP 的滥用记录 |
| "永久套餐" | 长周期预付是跑路高发区 | 优先月付,观察 2 个月再续 |
资金维权应急:优先使用支持争议退款的支付渠道;保留订阅页截图、订单号、客服聊天记录;一旦发现官网无法访问但客服仍在推新套餐,立即停止续费并在社群公开预警。
Q1:设置面板显示代理已开启,浏览器仍直连? 检查 AutoConfigURL 是否残留。PAC 优先级高于手动代理,残留的旧 PAC 地址会让手动配置完全失效。删除该键值后重启浏览器。
Q2:为什么系统代理总是自己关闭? 大概率是代理客户端崩溃后未还原。可在客户端中开启"退出时自动还原系统代理",或用计划任务开机执行一次注册表重置脚本。
Q3:代理开关是灰的,点不动?ProxySettingsPerUser = 0 导致。以管理员身份运行 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxySettingsPerUser /t REG_DWORD /d 1 /f,随后 gpupdate /force 并重启。
Q4:netsh winhttp reset proxy 会清掉浏览器代理吗? 不会。它只重置 WinHTTP 服务态配置,WinINET 不受影响。反之,改 IE 代理也不会自动同步到 WinHTTP,需手动 import proxy source=ie。
Q5:Store 版应用不走代理怎么办? UWP 沙箱禁止回环。用 CheckNetIsolation.exe LoopbackExempt -a -n=<包名> 添加环回豁免,包名可在"应用 → 高级选项"中查到。
Q6:注册表写入提示拒绝访问?Internet Settings 键的 ACL 被第三方工具篡改。在 regedit 中右键该键 → 权限 → 添加当前用户并勾选"完全控制",重新登录后再写。
Q7:所有配置正常,速度仍只有理论值的十分之一? 先跑 mtr 确认丢包,再在晚高峰复测。若丢包小于 1% 但吞吐仍低,基本可判定为出口带宽超售,换服务商比继续调参更有效。
写在最后:Windows 系统代理不是"