代理连接后网页能开但软件不能用怎么办?
简答:先确认目标软件是否支持系统代理:浏览器能用只说明浏览器流量已成功经过代理,不代表所有应用都会读取系统代理。最快的验证方法是:检查软件内代理设置→临时切换全局模式→仍无效时再测试 TUN 或虚拟网卡模式;命令行工具则单独设置 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY。
定义:“网页能开但软件不能用”通常是应用没有读取系统代理、被规则分流为直连,或软件需要 SOCKS5、UDP、长连接等当前代理方式未覆盖的能力。
先做这张速查卡:确认是哪一层没有接管
不要先反复更换节点。先记录不能联网的软件名称、操作系统、具体报错,以及它属于普通桌面软件、游戏、下载器、命令行工具还是登录型应用。浏览器使用代理成功,只能证明浏览器自身的代理路径正常。
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 浏览器正常,普通软件离线 | 软件是否读取系统代理,是否有独立代理菜单 | 在软件内填写 HTTP 或 SOCKS5 代理,或临时切换全局模式 |
| 软件显示连接超时 | 规则是否命中 DIRECT、地址端口是否正确 | 查看连接日志,使用全局模式做对照 |
| 游戏或实时通信失败 | UDP、长连接、TLS 或地区限制 | 确认客户端是否支持所需协议,必要时测试 TUN |
| 命令行工具失败 | 环境变量、工具自有代理参数、NO_PROXY | 在当前终端临时设置代理并单独测试 |
| 开启 TUN 后全网异常 | 权限、防火墙、路由和 DNS 接管 | 关闭 TUN 或使用客户端的网络恢复功能 |
Windows 的代理入口位于“设置→网络和 Internet→代理”,支持自动检测、脚本和手动代理;但不同应用采用的代理机制可能不同。Microsoft Support 的 Windows 代理说明也明确提示,代理方式需要结合使用的应用判断。support.microsoft.com
第 1 步:检查软件自己的代理设置
打开不能联网的软件设置,搜索“Proxy、代理、Network、网络、Connection、连接”等关键词。若能选择代理类型,先核对以下项目:
- 地址:通常是本机回环地址,例如
127.0.0.1或localhost;不要直接照抄示例,必须以当前代理客户端显示的监听地址为准。 - 端口:HTTP、SOCKS5 和混合端口可能不同,不能只因为浏览器能用就假定所有端口都相同。
- 协议:软件需要 HTTP 代理时,不要把 SOCKS5 端口直接当成 HTTP 端口;如果软件只支持其中一种协议,需使用匹配的监听端口。
- 认证:本机代理通常可能不需要用户名密码;如果软件要求认证,不要把订阅链接、令牌或密码粘贴到公开网页或日志中。
如果软件完全没有代理选项,先不要立刻修改 DNS 或重装客户端。继续做下一步,判断它是否会读取系统代理。
第 2 步:区分系统代理、应用代理和规则分流
系统代理是操作系统提供的代理入口,只有主动读取该设置的应用才会使用。应用代理是软件自身保存的代理配置;规则分流则可能把目标域名判定为 DIRECT,即使代理客户端已经连接,目标软件仍可能直连。
在代理客户端中临时切换到全局模式,然后重新启动目标软件测试:
- 先保留原来的规则配置,记录当前结果。
- 切换全局模式,只测试目标软件是否能登录、更新或建立连接。
- 如果全局模式有效,说明问题更可能在规则、域名分类、进程匹配或 DNS 分流,而不是节点完全不可用。
- 如果全局模式仍无效,切回规则模式,不要继续反复切换节点,进入协议与接管范围排查。
Firefox 提供独立的连接设置,可选择“使用系统代理”“手动代理”或 PAC 配置,因此其他浏览器能用,并不能证明 Firefox 或某个桌面软件采用了同样的代理路径。Mozilla 的 Firefox 连接设置说明列出了这些选项。support.mozilla.org
第 3 步:全局模式无效,再测试 TUN 或虚拟网卡
TUN 属于系统级接管方式,目标是把不读取系统代理的应用流量也纳入代理客户端处理。它的影响范围比单纯系统代理更大,通常需要管理员权限或系统授权,因此建议只在应用代理和规则验证后测试。
- 先保存当前配置,并确认代理客户端已激活一个配置。
- 启用 TUN,按系统提示完成权限授权。
- 只测试一个目标软件,观察登录、更新或连接是否恢复。
- 若 TUN 后网络整体异常,立即关闭 TUN,或使用客户端提供的“恢复网络”功能;不要在网络已经异常时继续叠加多个代理客户端。
MetaCubeX 的官方文档将 TUN 与系统代理区分开来:系统代理主要指向混合代理端口,而 TUN 通过虚拟网络接口接管系统级流量;官方说明也提示 TUN 涉及权限、路由和防火墙配置。MetaCubeX 官方项目说明、mihomo TUN 配置文档。github.com
停止条件:如果无法确认客户端来源、配置文件归属或当前 TUN 设置的恢复方式,不要继续修改路由表、防火墙或网卡参数,先导出必要配置并恢复普通网络。
第 4 步:命令行工具单独设置代理
命令行工具常常不会读取图形客户端的设置,需要在当前终端设置环境变量。下面只使用示例地址和端口,请替换为代理客户端实际显示的本地端口。
Windows PowerShell:仅对当前窗口生效
$env:HTTP_PROXY="http://127.0.0.1:7890"$env:HTTPS_PROXY="http://127.0.0.1:7890"$env:ALL_PROXY="socks5h://127.0.0.1:7891"
macOS 或 Linux 终端:仅对当前终端会话生效
export http_proxy=http://127.0.0.1:7890export HTTPS_PROXY=http://127.0.0.1:7890export ALL_PROXY=socks5h://127.0.0.1:7891
用 curl 做单项验证
curl -v -x http://127.0.0.1:7890 https://example.com/
测试完成后,可以清除当前终端变量:Windows PowerShell 使用 Remove-Item Env:HTTP_PROXY,Env:HTTPS_PROXY,Env:ALL_PROXY;macOS 或 Linux 使用 unset http_proxy HTTPS_PROXY ALL_PROXY。curl 官方文档说明,http_proxy、HTTPS_PROXY、ALL_PROXY 和 NO_PROXY 会影响代理选择,而命令行的 -x 参数可以指定代理。curl 官方教程、curl 官方手册。curl.se
如果 curl 能通过代理访问,而目标软件仍失败,故障范围就缩小到软件自己的协议、证书、登录服务、规则匹配或防火墙,而不是本地代理端口完全不可用。
第 5 步:检查协议能力、DNS 与安全软件
有些软件不是普通网页请求,可能依赖 UDP、长连接、特定 TLS 行为、后台更新服务或多个域名。此时“浏览器能打开”只能说明普通网页路径正常,不能证明目标软件需要的全部连接都被支持。
- 登录超时:查看连接日志,确认登录域名没有被规则分到直连;同时确认系统时间准确。
- 连接被拒绝:核对本地监听端口、代理协议和软件是否要求认证。
- 验证码循环或页面加载不完整:检查 DNS、规则和软件内嵌浏览器是否使用独立网络栈。
- 更新失败:确认更新域名没有被
NO_PROXY、防火墙或安全软件绕过或拦截。 - 游戏或实时应用失败:确认当前客户端和线路是否支持所需 UDP 或长连接;不要仅凭网页测试结果判断。
DNS 排查应放在代理路径确认之后:先观察代理客户端日志中目标域名是否有解析记录,再临时更换 DNS 或关闭冲突的 DNS over HTTPS 设置进行对照。修改前记录原值,避免同时开启多个软件的 DNS 接管。
Windows、macOS 与移动端的差异
Windows:先检查“设置→网络和 Internet→代理”,再检查代理客户端是否开启系统代理。Windows 的 WinHTTP 代理还可能独立存在,可在命令提示符中查看:netsh winhttp show proxy;若确定存在旧配置,可使用 netsh winhttp reset proxy 恢复直接访问,但这可能影响依赖 WinHTTP 的程序,执行前应记录原设置。相关命令见 Microsoft Learn 的 WinHTTP 代理说明。learn.microsoft.com
macOS:打开“系统设置→网络→当前网络服务→详细信息→代理”,检查 HTTP、HTTPS、SOCKS、PAC 和绕过列表。Apple 官方说明中列出了这些代理类型及其地址、端口和认证字段。Apple 的 Mac 代理设置说明。support.apple.com
iOS 与 Android:系统代理和 VPN/TUN 能力通常由系统权限与具体客户端决定,不能直接套用 Windows 端口或菜单。优先检查客户端是否显示 VPN 已授权、目标应用是否被分流规则排除,以及是否有省电或后台限制;无法确认客户端支持范围时,以当前应用说明为准。
成功标准与失败回退
一次合格的排查应至少满足以下三点:目标软件能够完成原先失败的动作;代理客户端日志能看到对应域名或连接;关闭临时测试设置后,系统网络仍可恢复。
- 如果应用代理有效,保留软件内配置,关闭不必要的系统代理叠加。
- 如果全局模式有效,回到规则模式逐条检查命中的域名或进程,避免长期使用过大的全局范围。
- 如果只有 TUN 有效,确认防火墙、权限和恢复方式,再决定是否长期启用。
- 如果三种方式都无效,优先核对软件服务状态、账户权限、版本更新和地区限制;不要继续反复更换节点。
假如软件仍然无法连接,且日志显示连接根本没有到达代理客户端,应回到“软件是否支持该代理类型”这一层;如果日志显示已到达代理但远端拒绝,则应检查目标服务、协议要求或账户侧限制。
结尾推荐
如果你需要把 Windows、macOS 或移动端的应用代理、DNS、延迟和丢包问题放到同一套流程中核对,可将本文的“应用代理→全局模式→TUN→协议与 DNS”顺序作为排障记录模板。
常见问题
为什么浏览器能打开网页,软件还是提示离线?
因为浏览器可能使用了自己的代理设置或读取了系统代理,而目标软件可能完全不读取系统代理,或被规则分到直连。先检查软件内代理设置,再用全局模式做一次对照。
全局模式有效,说明节点一定有问题吗?
不一定。更常见的判断是:全局模式有效,说明目标软件在全局路径下可以建立连接,原来的规则、进程匹配、域名分类或 DNS 分流可能需要检查。它不能单独证明节点质量。
什么时候应该开启 TUN?
当软件没有代理设置、也不读取系统代理,而全局模式无法让它联网时,可以把 TUN 作为下一步测试。TUN 会改变系统级路由,通常需要权限;启用前应确认有明确的关闭或恢复网络方法。
命令行工具该设置 HTTP_PROXY 还是 ALL_PROXY?
取决于工具和代理类型。curl 官方支持按协议设置 http_proxy、HTTPS_PROXY,也支持在没有协议专用变量时使用 ALL_PROXY;SOCKS5 代理应使用匹配的 socks5 或 socks5h 前缀,并先用单条命令验证。
软件登录失败是不是一定要换节点?
不是。先检查规则是否直连、代理协议和端口是否匹配、DNS 是否异常、系统时间是否正确,以及软件是否需要 UDP 或长连接。只有在这些条件核对后,才有必要比较其他线路。
相关阅读
- 代理开了只有部分应用能用时的分流与系统代理排查
- Windows 代理端口、分流和 DNS 排查
- macOS HTTP、SOCKS5 与 PAC 代理设置
- DNS over HTTPS 与代理冲突的判断方法
- 更多连接问题排查流程