代理连接成功但是打不开网页怎么办?按症状排查
简答:代理显示已连接,不代表浏览器流量已经经过代理。先用同一代理测试 HTTPS,再按“所有网站、单个网站、HTTPS 失败”分流;命令成功而浏览器失败,优先检查系统代理、扩展和安全 DNS。
定义:“代理连接成功但网页打不开”是指客户端已建立节点或代理链路,但浏览器未正确使用代理、域名解析或 TLS 握手失败,或者目标网站限制了该代理出口。
先看承诺清单:30 秒速判故障位置
本文是第三方使用指南,不代表 GLaDOS Network 官方。你可以按下面四项完成排查:先判断影响范围;再用命令验证代理链路;随后检查系统代理、规则、DNS 和浏览器设置;最后核对订阅状态并记录复测结果。
| 网页表现 | 先做什么 | 优先怀疑 |
|---|---|---|
| 所有网站都打不开 | 检查系统代理、PAC、浏览器扩展,再执行代理测试 | 客户端没有接管浏览器,或代理参数不匹配 |
| 只有一个网站打不开 | 用无痕窗口并更换节点对比 | Cookie、登录状态、原节点出口或目标站策略 |
| HTTPS 失败,HTTP 可开 | 检查系统时间、证书和代理协议 | TLS 握手、HTTPS 代理填写或证书问题 |
| 页面持续转圈或超时 | 记录错误码,再测试其他节点 | 代理到目标站、规则分流或出口响应 |
最短结论:命令也失败,先查代理地址、端口、协议和节点;命令成功但浏览器失败,先查系统代理、PAC、扩展和浏览器安全 DNS。
先用 curl.exe 验证:代理链路是否真的能打开 HTTPS
Windows PowerShell 5.1 中,curl 可能是 Invoke-WebRequest 的别名。请显式使用 curl.exe,避免参数被错误解析;说明见 Microsoft 的 Windows curl 文档。
先在客户端的“设置”或“核心设置”中查看当前代理地址、代理类型和端口。不同客户端的名称可能是“混合端口”“HTTP 端口”或“SOCKS 端口”,不要凭经验填写默认值,端口以设置页为准。
curl.exe -I -x http://<代理地址>:<端口> https://example.com如果客户端提供的是 SOCKS5 代理,改用:
curl.exe -I -x socks5h://<代理地址>:<端口> https://example.com-x 用于指定代理,HTTP、SOCKS5 和 socks5h 的写法可参考 curl 官方参数文档。其中 socks5h 会让域名解析交给 SOCKS5 代理端。
| 测试结果 | 判断 | 下一步 |
|---|---|---|
| 无法连接代理或超时 | 本机到代理这一段就失败 | 核对协议、地址、端口、账号密码、节点和订阅状态 |
| 命令成功,浏览器全打不开 | 代理链路可用,浏览器未正确接管 | 检查系统代理、PAC、浏览器扩展和安全 DNS |
| 命令成功,只有一个网站打不开 | 问题集中在目标站、Cookie 或该出口 | 用无痕窗口、其他节点和直连方式对比 |
| HTTP 可开,HTTPS 失败 | 可能卡在 TLS 或代理类型 | 同步时间,确认 HTTPS 代理和证书设置 |
客户端显示已连接,但浏览器没有走代理
- 检查系统代理。Windows 打开“设置 > 网络和 Internet > 代理”,检查自动检测、设置脚本和手动代理,确认没有旧 PAC 或旧端口覆盖客户端配置。可参考 Microsoft Windows 代理设置说明。
- 检查客户端模式。确认内核正在运行,当前模式不是 Direct;如果使用 Rule 模式,检查目标域名命中的规则和出站是否为 DIRECT。可以临时切换到客户端提供的全局或明确代理模式复测,但每次只改一个变量。
- 检查浏览器扩展。暂时关闭代理扩展、PAC 扩展和其他网络管理工具。浏览器单独设置的代理可能覆盖系统代理,也可能仍指向已失效的本地地址。
- 检查 Chrome 或 Edge 的安全 DNS。Chrome 路径通常是“设置 > 隐私和安全 > 安全 > 使用安全 DNS”;自定义提供商出现解析错误时,可临时切换为系统提供商或关闭后复测。Chrome 的设置说明见 Google Chrome 安全设置文档。Edge 也有独立的安全 DNS 设置,可能让浏览器使用另一条 DNS 查询路径,可参考 Microsoft Edge 安全 DNS 说明。
- 检查 QUIC 或 HTTP/3。如果只有部分 HTTPS 网站异常,且系统代理和 curl 测试正常,可暂时关闭浏览器实验性 QUIC 或 HTTP/3 相关设置后复测。不要同时修改规则、DNS 和节点,否则无法判断是哪项设置起作用。
macOS 可进入“系统设置 > 网络 > 当前网络服务 > 详细信息 > 代理”,检查自动代理发现、PAC、HTTP、HTTPS 和 SOCKS 设置;入口见 Apple macOS 代理设置说明。
DNS、fake-ip 与 IPv4/IPv6:不要用一次 nslookup 下结论
HTTP 代理模式下,目标域名可能由代理端解析,本地执行 nslookup 的结果不一定代表实际访问路径。Mihomo 官方 DNS 文档示例中的 fake-ip-range 为 198.18.0.1/16,因此在 fake-ip 或 TUN 场景看到 198.18.x.x 可能是虚拟映射;实际范围应以客户端 DNS 设置中的 fake-ip-range 为准,见 Mihomo DNS 配置文档。
排查时重点看三件事:客户端是否启用 fake-ip 或 TUN;目标域名命中的规则是 DIRECT 还是代理;代理测试命令是否能完成 HTTPS。不要仅凭本地 nslookup 返回地址判断 DNS 被污染。
IPv4 和 IPv6 测试应区分直连与代理:
curl.exe -4 -I https://example.com
curl.exe -6 -I https://example.com上面是不经代理的对比。若命令带有 -x,-4 和 -6 主要控制 curl 连接代理服务器时使用的地址族,目标域名的解析和连接可能由代理端完成。若本地代理地址是 IPv4 字面地址,curl.exe -6 连接本地代理失败,不能据此证明目标网站的 IPv6 路径异常。
按设备检查入口:Windows、macOS、Android 和 iPhone
Windows
- 检查“设置 > 网络和 Internet > 代理”,关闭无关的旧脚本或手动代理。
- 关闭浏览器代理扩展,确认客户端当前模式和代理端口。
- 如果多个程序都无法联网,并且前面步骤没有定位原因,再用管理员权限打开终端执行:
netsh winsock resetMicrosoft 文档说明该命令会重置 Winsock 目录,用于清理异常的自定义网络服务提供程序,见 netsh winsock 官方文档。执行后按提示重启。重置后,部分 VPN、代理或安全软件的网络组件可能需要重新安装或修复,因此不要把它作为第一步。
macOS
- 进入“系统设置 > 网络 > 当前网络服务 > 详细信息 > 代理”。
- 检查 PAC、HTTP、HTTPS、SOCKS 代理是否与客户端类型一致。
- 关闭冲突设置后,只用同一个网址重新测试。
Android
不同品牌 ROM 的菜单名称可能不同,可在设置中搜索“代理”或“私人 DNS”。原生 Android 通常可进入“设置 > 网络和 Internet > Internet”,选择当前 Wi-Fi 查看代理;“设置 > 网络和 Internet > 私人 DNS”可检查私人 DNS。Android 官方也提示,如果找不到入口,应参考设备厂商说明,见 Android 高级网络设置。排查时不要同时启用多个 VPN、代理应用或浏览器扩展。
iPhone
进入“设置 > Wi-Fi”,点击当前网络右侧的信息按钮,检查 HTTP 代理和 DNS。修改后先关闭并重新加入 Wi-Fi,再测试同一个网址。
只有一个网站打不开:先排除目标站和登录状态
如果其他网站都能打开,只有一个网站持续超时、重置连接或拒绝访问,部分原因可能是目标网站对代理出口 IP 限流、验证或拒绝访问。这属于目标站策略,不一定是本地配置问题。
- 用无痕窗口打开,排除 Cookie、登录状态和扩展影响。
- 在同一客户端中更换一个节点;如果其他节点恢复而其他网站一直正常,问题更可能集中在原节点出口或目标站策略。
- 比较 Rule 与全局模式;只有 Rule 失败时,检查目标域名是否被分到 DIRECT。
- 如果浏览器失败但 curl 通过同一代理成功,优先检查浏览器代理、扩展、安全 DNS 和缓存。
在客户端订阅详情中核对订阅是否有效、剩余流量是否足够、节点是否过期或正在维护;账号和服务状态以 GLaDOS Network 官方渠道为准,无法从公开资料核实的状态不要自行推断。
错误码速查与复测记录模板
| 错误或表现 | 常见断点 | 处理方向 |
|---|---|---|
ERR_PROXY_CONNECTION_FAILED | 浏览器无法连接代理 | 核对地址、端口、协议,确认客户端内核运行 |
ERR_CONNECTION_RESET | 连接中途被重置 | 检查规则并更换节点,对比其他网络环境 |
DNS_PROBE_FINISHED_NXDOMAIN | 域名解析阶段失败 | 区分浏览器安全 DNS、本地 DNS、代理端 DNS 和 fake-ip |
| 页面持续转圈或超时 | 代理到目标站或 TLS 阶段 | 用 curl 测试 HTTPS,检查时间、协议和节点 |
建议每次只改一个变量,并复制下面的模板保存结果:
| 节点 | 模式 | 网址 | 错误码 | curl 结果 |
|---|---|---|---|---|
| 填写当前节点 | Rule、全局或 Direct | 填写测试网址 | 填写浏览器报错 | 成功、超时或无法连接代理 |
需要进一步收集 Chromium 网络证据时,在地址栏打开 chrome://net-export/,开始记录后到另一个标签页复现问题,再停止记录。步骤见 Chromium NetLog 官方说明。日志可能包含访问地址或其他敏感信息,提交前应先检查。
最后按这个顺序复测
- 确认客户端内核运行,记录节点和当前模式。
- 核对订阅有效期、剩余流量和节点状态。
- 关闭浏览器代理扩展,检查系统代理和 PAC。
- 使用客户端实际代理类型执行一次
curl.exeHTTPS 测试。 - 分别比较 Rule 与全局模式。
- 只有单个网站失败时,使用无痕窗口和其他节点对比。
- 仍无法判断时,再检查 DNS、IPv4/IPv6、系统时间、TLS 和 Winsock。
完成后通常可以归入四类:客户端没有接管流量、代理参数不匹配、节点或服务状态异常、目标网站限制代理出口。不要同时修改 DNS、TUN、规则和节点。
常见问题
代理连接成功,为什么浏览器还是打不开所有网页?
客户端显示已连接不代表浏览器流量已经被接管。先关闭浏览器代理扩展,检查系统代理、PAC、手动代理地址和端口,再用同一代理执行 <code>curl.exe -I -x http://<代理地址>:<端口> https://example.com</code>。命令失败时查协议、节点和账号状态;命令成功而浏览器失败时查浏览器配置。
Windows PowerShell 里为什么 curl 命令报参数错误?
Windows PowerShell 5.1 中,<code>curl</code> 可能是 <code>Invoke-WebRequest</code> 的别名。请使用:<code>curl.exe -I -x http://<代理地址>:<端口> https://example.com</code>。把地址和端口替换为客户端设置页中的实际值。
用 -4 和 -6 测试代理,为什么 -6 失败?
带有 <code>-x</code> 时,<code>-4</code> 和 <code>-6</code> 主要控制 curl 连接代理服务器时使用的地址族,目标域名可能由代理端解析和连接。本地代理若使用 IPv4 地址,<code>curl.exe -6</code> 连接代理失败不能证明目标网站 IPv6 异常。不经代理直连时再分别测试 IPv4 和 IPv6。
nslookup 返回 198.18.x.x,是不是 DNS 出问题了?
不一定。Mihomo 的 fake-ip 配置可能使用 <code>198.18.0.1/16</code> 作为虚拟地址范围,实际以客户端 DNS 设置中的 <code>fake-ip-range</code> 为准。HTTP 代理模式下目标域名还可能由代理端解析,因此本地 nslookup 不能单独代表实际访问路径。
只有一个网站打不开,换节点后恢复,说明什么?
这更可能与原节点出口、目标网站限流或代理访问策略有关,而不是所有本地配置都失效。先用无痕窗口排除 Cookie 和登录状态,再用其他节点与直连方式对比。
重置 Winsock 后还是打不开网页怎么办?
Winsock 重置只适合 Windows 网络组件异常的场景,不会修复错误的代理协议、失效订阅、规则分流或目标网站限制。重启后仍失败,应回到 curl 代理测试,重新检查系统代理、规则、DNS、节点状态和浏览器扩展。
相关阅读
参考资料
- Microsoft:curl on Windows
- curl 官方参数文档(curl.se)
- Microsoft Support:Use a proxy server in Windows
- Microsoft:netsh winsock
- Apple Support:Change proxy settings on Mac
- Microsoft Edge:Secure DNS
- Chromium:How to capture a NetLog dump(chromium.org)