核心结论
系统代理只是一条“建议”,只有主动读取这项设置的程序才会走代理。浏览器一般会遵守,但终端、Git、npm、很多游戏和部分桌面应用不会。排查时先确认系统代理确实被写入并指向正确端口,再按程序类型处理:终端设置环境变量,个别工具单独配置代理,无法配置的程序开启 TUN 模式统一接管。
问题现象
客户端界面上“系统代理”开关已经打开,但实际表现并不符合预期:
- 浏览器能正常访问,终端里的
curl、git clone、npm install却超时或被重置; - Claude Code、Codex 等命令行 AI 工具提示连接失败,而网页版正常;
- 部分桌面应用、游戏启动器、Windows 应用商店中的应用仍然直连;
- 浏览器本身也打不开,提示无法连接到代理服务器;
- 关闭客户端后,系统代理设置没有被清除,导致完全无法上网。
系统代理不是“强制所有流量走代理”,而是在系统里写下一个代理地址,由各个程序自行决定是否使用。理解这一点,大部分问题就有了方向。
可能原因
| 原因 | 判断方法 | 解决方法 |
|---|---|---|
| 程序本身不读取系统代理 | 浏览器正常,终端、游戏等不正常 | 设置环境变量、单独配置代理,或开启 TUN 模式 |
| 系统代理端口与客户端不一致 | 查询到的代理端口与客户端设置不同 | 在客户端中重新开关系统代理,或修正端口 |
| 浏览器有独立代理或扩展 | 浏览器设置或扩展中另有代理配置 | 关闭扩展,改为“使用系统代理设置” |
| WinHTTP 代理未同步 | 部分系统服务与程序不走代理 | 按需导入或重置 WinHTTP 代理 |
| 应用商店应用无法访问回环地址 | 只有商店应用失败 | 使用回环豁免工具或 TUN 模式 |
| 绕过列表包含目标地址 | 目标域名或网段在“不使用代理”的列表中 | 从绕过列表中移除 |
各类程序读取代理的方式
| 程序类型 | 读取方式 | 是否默认跟随系统代理 |
|---|---|---|
| Chrome、Edge 等浏览器 | 系统代理设置 | 是 |
| Firefox | 默认使用系统代理,也可单独设置 | 取决于浏览器设置 |
| PowerShell、终端、curl | HTTP_PROXY / HTTPS_PROXY 环境变量 |
否 |
| Git、npm、pip | 环境变量或各自的配置文件 | 否 |
| 部分系统服务 | WinHTTP 代理设置(Windows) | 否 |
| 游戏、部分桌面应用 | 各自实现,很多完全不读代理 | 否 |
表中情况以各程序实际版本为准。结论是:凡是“否”的那一类,单靠系统代理解决不了。
浏览器也不走代理时
如果连浏览器都不正常,问题通常不在“程序不读代理”,而在代理设置本身。第一种情况是端口不一致:客户端改过端口,或者重装后端口变化,而系统里写的仍是旧端口,浏览器会提示无法连接到代理服务器。第二种情况是 PAC 模式:部分客户端使用自动配置脚本,脚本地址失效时浏览器会直接连接失败。第三种情况是浏览器被扩展接管:代理切换类扩展会覆盖系统设置,客户端怎么开关都不影响浏览器。第四种情况是目标地址被写进了绕过列表,例如整段局域网网段或某些域名后缀,访问它们时浏览器会跳过代理。
环境变量的几个细节
终端环境变量除了 HTTP_PROXY、HTTPS_PROXY,还有一个 NO_PROXY,用来指定不走代理的地址,例如本机地址和公司内网域名。不同工具对大小写、通配写法的支持不完全一致,部分工具只读取小写变量;设置后只对当前窗口以及从该窗口启动的程序有效,已经打开的编辑器或终端需要重新启动才会读到新变量。
快速自查
- 在客户端中确认混合端口或 HTTP 端口号,记下来;
- 用下文命令查看系统代理实际指向的地址,与客户端端口比较;
- 检查浏览器是否装有代理类扩展;
- 确认只运行了一个代理客户端;
- 分清出问题的是浏览器、终端还是某个应用,分别处理。
逐步排查
-
查看系统代理是否写入正确。
# Windows:查看当前用户的系统代理设置 Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object ProxyEnable, ProxyServer, ProxyOverride, AutoConfigURL # 查看 WinHTTP 代理(部分系统组件使用) netsh winhttp show proxy# macOS:查看系统代理 scutil --proxy networksetup -getwebproxy "Wi-Fi" networksetup -getsecurewebproxy "Wi-Fi" # Linux(GNOME 桌面) gsettings get org.gnome.system.proxy modeProxyEnable为1、ProxyServer为127.0.0.1:端口才表示已写入;ProxyOverride是绕过列表。macOS 中网络服务名称以networksetup -listallnetworkservices的输出为准。 -
确认代理端口能用。
curl.exe -I -x http://127.0.0.1:7897 https://www.google.com --max-time 10curl -I -x http://127.0.0.1:7897 https://www.google.com --max-time 10端口以客户端设置为准。能返回状态码,说明代理本身正常,问题只在于程序没有使用它。
-
为终端设置代理环境变量。 只对当前窗口有效:
$env:HTTP_PROXY = "http://127.0.0.1:7897" $env:HTTPS_PROXY = "http://127.0.0.1:7897" curl.exe -s https://www.cloudflare.com/cdn-cgi/traceexport HTTP_PROXY=http://127.0.0.1:7897 export HTTPS_PROXY=http://127.0.0.1:7897 curl -s https://www.cloudflare.com/cdn-cgi/trace返回的
loc=变成节点地区,说明终端已经走代理。长期生效需要写入 PowerShell 配置文件或 shell 配置文件;AI 编程工具的完整设置见 Claude Code 在 WSL 与 Windows 中的代理设置。 -
为个别工具单独配置。 Git 可以执行
git config --global http.proxy http://127.0.0.1:7897,npm 可以执行npm config set proxy http://127.0.0.1:7897与npm config set https-proxy http://127.0.0.1:7897。不再需要时记得用git config --global --unset http.proxy等命令撤销,参数以各工具官方文档为准。 -
处理 WinHTTP 与应用商店应用。 需要让使用 WinHTTP 的程序走代理时,可以在管理员 PowerShell 中执行
netsh winhttp import proxy source=ie导入当前系统代理,恢复时执行netsh winhttp reset proxy。应用商店应用则在客户端提供的回环豁免工具(如 Clash Verge Rev 设置中的 UWP 工具,名称以实际版本为准)里勾选对应应用。 -
无法配置的程序开启 TUN 模式。 游戏和不提供代理设置的应用,只能通过 TUN 模式在网卡层面接管,开启方法见 Clash Verge Rev TUN 模式设置。
常见误区
- 以为开了系统代理就是全局接管:系统代理与 TUN 模式的覆盖范围完全不同,区别见系统代理和 TUN 模式区别;
- 环境变量写错大小写或协议:部分工具只认小写的
https_proxy,两种都设置更稳妥; - 随意修改 WinHTTP 后忘记恢复:关闭客户端后 WinHTTP 仍指向本地端口,会导致部分系统功能无法联网;
- 同时开两个代理客户端:两者都会改写系统代理,最后生效的是哪一个很难判断。
仍然无法解决
- 在客户端中关闭再重新开启系统代理,让它重新写入设置;
- 如果关闭客户端后出现完全无法上网,参考开了代理客户端后完全没网怎么办;
- 开启 TUN 后仍有个别程序不走代理,查看客户端连接面板中是否出现该程序的连接,没有出现的话检查其是否使用了独立的网络栈或内置代理设置。
请遵守当地法律法规与服务条款,合理使用网络工具。
相关问题
常见问题
为什么浏览器能用,终端里的命令却连不上?
终端程序一般不读取系统代理设置,而是读取 HTTP_PROXY、HTTPS_PROXY 等环境变量。在终端中设置这些变量,或者开启 TUN 模式,终端流量才会经过代理。
开了系统代理,浏览器也打不开是怎么回事?
常见原因是系统代理指向的端口与客户端实际监听的端口不一致,或者浏览器装了代理扩展、设置了独立代理,覆盖了系统设置。用文中的命令查看系统代理地址并与客户端端口对比即可。
TUN 模式和系统代理可以同时开吗?
可以,多数客户端允许同时开启,TUN 会接管不读取系统代理的程序。但要确保只有一个代理客户端在运行,否则两个程序可能互相争抢流量。
Windows 应用商店里的应用为什么不走代理?
这类应用默认不允许访问本机回环地址,无法连接 127.0.0.1 上的代理端口。可以在客户端提供的回环豁免工具中勾选对应应用,或者使用 TUN 模式。
本文最后更新于 。网络服务与 AI 平台政策变化较快,如发现信息过时,欢迎通过联系我们反馈。