系统代理不生效怎么办?浏览器和部分软件不走代理的解决方法
系统代理不生效怎么办?本文解释系统代理的工作方式和适用范围,排查代理未写入系统、端口不一致、浏览器扩展与独立代理设置覆盖、命令行与部分应用不读取系统代理、规则把流量分到直连等原因,给出 Windows 与 macOS 查看代理状态的命令,以及 TUN 模式和环境变量等解决方法。
简要回答 系统代理只对主动读取系统代理设置的程序生效,终端、游戏和不少桌面应用本来就不会走系统代理。浏览器不走代理时,先确认客户端已把代理写入系统、端口一致,并关闭代理扩展或浏览器自己的代理设置;其他软件不走代理时,开启 TUN 模式或为该软件单独配置代理最省事。
系统代理不生效,首先要明白它的范围:系统代理只是在系统里登记一个代理地址,只有浏览器等主动读取这个设置的程序才会使用。如果是浏览器不走代理,多半是代理没写入系统、端口不一致,或者被浏览器扩展覆盖;如果是终端、游戏或某些桌面软件不走代理,那是因为它们本来就不读系统代理,开启 TUN 模式或单独为软件配置代理即可。
问题现象
- 客户端显示已开启系统代理,但浏览器访问海外网站仍然失败,客户端连接列表中也没有记录。
- 浏览器正常,但终端中的
git、npm、curl等命令连接超时。 - AI 编程工具、游戏或部分桌面应用无法联网,其他程序正常。
- 关闭客户端后整台电脑无法上网。
可能原因
| 原因 | 影响对象 | 判断方法 |
|---|---|---|
| 代理未写入系统 | 所有程序 | 查看系统代理设置 |
| 端口不一致 | 所有使用系统代理的程序 | 对比客户端端口与系统设置 |
| 浏览器扩展接管代理 | 单个浏览器 | 无痕窗口或停用扩展测试 |
| 浏览器使用独立代理设置 | 如 Firefox | 查看浏览器网络设置 |
| 程序不读取系统代理 | 终端、游戏、部分应用 | 客户端连接列表中无记录 |
| 规则把域名分到直连 | 特定网站 | 切换全局模式对比 |
| 应用沙盒限制本地回环 | 部分 Windows 商店应用 | 其他程序正常只有该应用异常 |
快速检查
- 在客户端中关闭再重新开启系统代理
- 核对客户端显示的端口与系统代理设置中的端口一致
- 用浏览器无痕窗口测试,排除代理类扩展影响
- 临时切换到全局模式,判断是否是规则分流问题
- 打开客户端的连接列表,看目标程序的连接有没有出现
详细排查
查看系统代理是否已写入
Windows 中查看当前用户的系统代理设置:
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyEnable, ProxyServer, ProxyOverride
netsh winhttp show proxy
ProxyEnable 为 1 且 ProxyServer 指向 127.0.0.1:端口 表示已写入。netsh winhttp 显示的是另一套供部分系统服务使用的设置,与浏览器使用的不是同一处,显示“直接访问”属于常见情况。
macOS 中查看:
scutil --proxy
检查浏览器自身设置
Chrome、Edge 默认跟随系统代理;如果安装了代理切换类扩展,扩展的设置会覆盖系统设置。Firefox 有独立的网络连接设置,需要选择“使用系统代理设置”,具体菜单以当前版本为准。
确认程序是否读取系统代理
在客户端连接列表中看不到某个程序的连接,说明它没有走代理。命令行工具通常读取环境变量,可以在当前终端临时设置,端口以客户端为准:
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
AI 编程工具的代理设置可参考 Cursor 代理设置教程。
解决方法
- 开启 TUN 模式:在网络层接管所有程序,是解决“部分软件不走代理”最直接的方法,设置步骤见 Clash Verge TUN 模式教程。
- 统一端口:修改客户端端口后,重新开关一次系统代理,让新端口写入系统。
- 处理浏览器扩展:停用代理扩展,或把扩展中的代理地址改成客户端端口。
- 为软件单独配置代理:在软件自身的网络设置中填写
127.0.0.1和对应端口。 - 检查分流规则:全局模式正常、规则模式不正常时,在规则中为该域名指定代理策略组。
- 处理商店应用回环限制:部分客户端提供解除 Windows 商店应用回环限制的工具,也可以直接使用 TUN 模式。
仍然无法解决怎么办
- 退出其他 VPN、加速器和安全软件的网络保护功能,只保留一个代理客户端再测试。
- 重启电脑,让系统代理与网卡状态重新初始化。
- 客户端的基础设置和日志查看方法见 Clash Verge 使用教程,必要时向机场客服提供系统版本、客户端版本和截图。
请在遵守所在地法律法规和服务条款的前提下使用代理工具。更多相关问题见 订阅问题专题。
常见问题
开了系统代理,为什么终端里的命令还是不走代理?
大多数命令行工具不读取系统代理设置,而是读取 HTTP_PROXY、HTTPS_PROXY 等环境变量。需要在终端里设置环境变量,或者开启 TUN 模式。
系统代理和 TUN 模式有什么区别?
系统代理是在系统中登记一个代理地址,由程序自己决定是否使用;TUN 模式是创建虚拟网卡,在网络层接管所有程序的流量,不依赖程序配合,覆盖范围更广。
关闭客户端后上不了网怎么办?
可能是客户端异常退出,没有把系统代理设置还原。重新打开客户端再正常关闭系统代理,或在系统代理设置中手动关闭即可。