追云加速 发布页

代理显示已连接但软件不能用?检查系统代理与分流规则

更新于 2026-11-05 · zhuiyunjiasu.shop

简答:“已连接”通常只表示客户端与节点建立了连接,不代表所有软件都把流量交给它。先确认系统代理是否开启、地址和端口是否一致,再用全局模式做对照;若网页正常而软件失败,重点检查软件是否遵循系统代理、是否需要TUN或单独填写代理。

定义:代理显示已连接但软件不能用,是指客户端自身连接状态正常,但目标应用没有使用正确的代理入口,或流量被系统代理、端口、DNS、TUN和分流规则拦截或绕过。

先做这张判断表:不要一上来重装客户端

客户端显示已连接,只能说明客户端自身完成了某种连接流程;它不等于浏览器、命令行工具或其他软件的流量已经进入代理。先关闭浏览器扩展和其他网络工具,保留一个代理接管方式,再按现象定位。

现象优先检查下一步
所有网页和软件都不能用系统代理开关、本地端口、节点或策略组确认监听端口,再用全局模式测试
只有部分网站打不开DIRECT、REJECT、DNS或规则未命中查看目标域名的连接日志和策略结果
浏览器能用,某个软件不能用该软件是否遵循系统代理在软件内配置代理,或使用TUN接管
退出客户端后仍然打不开网页系统代理或WinHTTP残留关闭系统代理,并检查系统级代理设置
只有一台设备异常本机代理、DNS、扩展或安全软件在同一网络用另一设备做对照

Windows的系统代理入口可从“设置”中的网络代理页面进入,微软也提供了对应的设置 URI;WinHTTP则是另一套供部分应用和系统组件使用的代理配置,不能把两者混为一谈。微软设置入口说明 微软WinHTTP命令说明

第一步:核对系统代理、地址和端口

打开客户端的设置页,记录它实际监听的本地地址、HTTP端口、SOCKS端口或混合端口。然后打开系统代理设置,核对代理地址与端口是否完全一致。常见本地地址可能是127.0.0.1或localhost,但具体端口不能凭经验填写,必须以当前客户端界面或配置文件为准。

  • HTTP/HTTPS代理:适合明确支持HTTP代理的应用;HTTPS通常通过HTTP代理建立隧道,不能因此把它当作SOCKS5。
  • SOCKS5代理:需要软件明确支持SOCKS协议;把SOCKS端口填入HTTP代理栏,常见结果是连接被拒绝或握手失败。
  • 混合端口:有些客户端把多种代理协议集中在一个端口,但是否支持、支持哪些协议,以该客户端当前说明为准。
  • 端口占用:如果客户端无法监听端口,或另一个程序已占用同一端口,系统代理即使开启也可能没有有效服务。

Windows可先在命令提示符中查看WinHTTP配置:

netsh winhttp show proxy

如果确认是遗留的WinHTTP代理导致系统组件异常,可先记录当前输出,再在需要恢复直连时执行:

netsh winhttp reset proxy

这会把WinHTTP代理重置为直连,属于修改系统网络设置的操作;执行前应保留原配置,测试结束后按实际需要恢复。微软文档明确区分了查看、设置与重置WinHTTP代理的命令。微软WinHTTP排查说明

macOS可进入“系统设置”→“网络”→选择当前网络服务→“详细信息”→“代理”,分别查看HTTP、HTTPS和SOCKS代理。Apple说明这些代理类型需要分别填写服务器地址和端口,不能只开启一个类型就假定所有软件都会使用。Apple macOS代理设置说明

第二步:用全局模式判断是不是分流规则

如果系统代理和端口看起来正确,临时把客户端的运行模式切换为全局或等效的“全部通过代理”模式,只用于诊断,不要把诊断结果直接当作长期配置。

  1. 选择一个当前可用的策略组或节点,避免策略组实际选中DIRECT、空策略或失效节点。
  2. 临时启用全局模式,重新打开失败的软件。
  3. 如果软件恢复,说明本地端口大概率可用,问题应转向规则、策略组或DNS。
  4. 如果软件仍失败,回到端口、协议、应用代理支持和网络冲突检查。
  5. 测试完成后恢复规则模式,并查看连接日志,确认目标域名最终被分到哪个策略。

重点识别四种规则结果:

  • DIRECT:目标流量被要求直连,可能与用户预期不符。
  • PROXY或策略组:还要确认策略组内确实选中了可用节点,而不是空组或直连项。
  • REJECT:客户端主动拒绝该请求,先检查域名规则和拦截列表。
  • 未命中规则:不同客户端的兜底行为可能不同,可能走直连、代理或最终规则,必须以日志为准。

不要只凭“节点延迟正常”判断应用一定能用。延迟测试与目标应用的DNS、协议、端口和分流路径不是同一个测试。

第三步:网页能用、软件不能用时,检查应用是否绕过系统代理

这是最容易误判的一类:浏览器能打开网页,不代表所有软件都会读取系统代理。有些软件使用自己的代理设置,有些只读取环境变量,有些需要虚拟网卡接管,还有些网络请求并不属于常规HTTP或HTTPS。

  • 软件内置代理:查看软件的网络、连接或代理设置,确认没有残留的旧地址、旧端口或错误协议。
  • 命令行工具:先用明确的代理参数做单次测试,不要先改全局环境变量。
  • Git等开发工具:检查工具自身的代理配置与系统代理是否重复,避免一个工具保存了旧代理。
  • 游戏或实时通信软件:可能使用UDP、QUIC或专用协议,普通HTTP系统代理未必能覆盖;应查看软件是否支持代理,或使用能够接管系统流量的TUN/VPN接口。
  • 移动端应用:Android的VPN服务可以创建虚拟网络接口,并可按应用允许或排除流量;因此应用列表、分应用代理和“绕过VPN”设置会直接影响结果。Android官方VPN开发说明

排查时不要同时开启系统代理、TUN、浏览器代理扩展、其他VPN和网络加速工具。多个接管方式可能形成代理链、端口冲突或重复改写DNS。建议一次只保留一种方式,验证成功后再逐项恢复。

第四步:检查DNS与规则是否把域名判错

如果用IP地址访问的测试服务能够响应,但用域名访问失败,DNS或域名规则值得优先检查。不过固定测试地址可能受到网络、协议、地区和服务状态影响,不能仅凭一次结果下结论。

  1. 查看客户端连接日志,确认失败软件请求的域名是否出现。
  2. 比较域名解析失败、连接超时和连接被拒绝三种日志表现。
  3. 检查DNS是否由本地网络解析、由客户端代理解析,或被某条规则转为直连。
  4. 清理系统或软件缓存后重新测试;不要同时启用多个DNS接管工具。
  5. 若只有某个域名失败,检查该域名是否被分到DIRECT、REJECT或错误策略组。

curl支持通过--proxy指定代理,也支持--noproxy指定不使用代理的主机列表,因此可以用它区分“代理本身不可用”和“应用没有使用代理”。curl官方命令说明

示例中的地址和端口必须替换为客户端当前显示的值:

curl -v --proxy http://127.0.0.1:占位端口 https://example.com

如果实际使用SOCKS5,并且客户端支持该协议,可按客户端说明替换为:

curl -v --proxy socks5h://127.0.0.1:占位端口 https://example.com

这里的socks5h会让主机名解析也交给代理处理;是否适合当前客户端和网络环境,要以实际日志结果为准。不要在排障时使用-k跳过证书校验,因为这会掩盖TLS证书问题。

按平台做最小化回滚

Windows

  • 关闭浏览器代理扩展和其他VPN,只保留客户端。
  • 打开“设置”→“网络和Internet”→“代理”,确认手动代理、自动配置脚本和自动检测没有互相覆盖。
  • 在客户端中重新启用系统代理,记录地址和端口,再用netsh winhttp show proxy查看WinHTTP是否存在另一套配置。
  • 若退出客户端后仍无法联网,先关闭系统代理;必要时在记录原值后使用netsh winhttp reset proxy恢复WinHTTP直连。

macOS

  • 进入“系统设置”→“网络”→当前网络服务→“详细信息”→“代理”,核对HTTP、HTTPS和SOCKS项目。
  • 关闭浏览器扩展和其他VPN,避免系统代理与网络扩展重复接管。
  • 如果只有一个软件失败,优先查看该软件自身的代理选项,而不是反复修改系统代理。

Android与iOS

  • 移动端通常通过VPN接口、分应用规则或应用自身代理接管流量;先检查是否有其他VPN正在运行。
  • Android重点查看分应用允许、排除和绕过设置;Android官方文档说明,允许列表不为空时,只有列表中的应用使用VPN,其余应用走系统网络。Android应用流量说明
  • iPhone或iPad若使用配置描述文件、VPN或自动代理,应在系统的VPN与设备管理相关位置检查已安装配置;配置文件可能包含代理、VPN或网络设置。Apple配置文件说明

修复后的验证顺序与停止条件

  1. 客户端日志显示目标域名出现,并且策略结果符合预期。
  2. 系统代理地址和端口与客户端当前监听值一致。
  3. 用一个明确指定代理的命令行请求验证本地端口。
  4. 重新测试原本失败的软件,确认不是只有浏览器恢复。
  5. 退出客户端后确认系统代理、WinHTTP或应用内代理没有残留。

如果全局模式、正确端口和单次代理命令都失败,才把重点转向节点、上游网络、TLS错误或软件协议兼容性。此时应保存失败时间、软件名称、目标域名、日志关键词和当前模式,避免继续盲目切换设置。

本文为通用技术排查整理,不代表任何客户端的官方说明;具体菜单名称、监听端口、TUN能力和分应用选项应以当前软件界面与说明书为准。

常见问题

代理显示已连接,为什么浏览器能用但软件不能用?

因为不同软件采用的网络入口可能不同。浏览器通常能读取系统代理,但某些开发工具、游戏、实时通信应用或命令行程序可能使用独立代理、环境变量或虚拟网卡。先在失败软件内查代理设置,再用全局模式对照;Android还要检查分应用VPN规则。

HTTP端口和SOCKS5端口可以随便互换吗?

不能。软件使用的代理协议必须与本地监听端口匹配。HTTP代理栏填入SOCKS端口,或SOCKS5栏填入HTTP端口,都可能出现连接拒绝、握手失败或请求超时。具体端口以当前客户端显示为准。

切换全局模式后软件恢复,说明什么?

这通常说明本地端口和节点至少具备基本可用性,问题更可能出在分流规则、策略组选择、DNS或目标域名被判为直连。恢复规则模式后,应查看该软件访问域名的日志和最终策略,而不是长期保持全局模式。

TUN模式是不是一定比系统代理好?

不是。TUN通过虚拟网络接口接管流量,适合不遵循系统代理的应用,但会增加系统权限、路由和DNS排查复杂度。故障定位时不要同时开启TUN、系统代理和其他VPN,先单独验证一种接管方式。

退出代理客户端后无法上网,怎么恢复?

先关闭系统代理和浏览器代理扩展,再检查Windows的WinHTTP配置。可先执行<code>netsh winhttp show proxy</code>记录结果;确认是遗留配置后,再按微软说明使用<code>netsh winhttp reset proxy</code>恢复直连。

相关阅读

参考资料

  1. 微软:Windows设置页面与网络代理入口
  2. 微软:netsh winhttp命令与代理查看、设置、重置
  3. Apple:在macOS中更改代理设置
  4. curl官方命令说明:代理、SOCKS与不代理列表
  5. Android Developers:VPN服务、虚拟接口与分应用流量
  6. Apple:iPhone配置描述文件与VPN设备管理