访问验证

代理连接成功但无法上网怎么办?按故障层排查

更新于 2026-10-30 · liuheng2024.store

简答:代理显示“已连接”只代表客户端完成了某个连接或启用了本地入口,不等于浏览器和应用的请求已经成功经过代理。最快做法是先关闭代理确认基础网络,再核对地址、端口、协议和认证,随后检查系统代理或 TUN 是否真正接管流量,最后用日志、DNS 和其他节点定位。

定义:“代理连接成功但无法上网”是指客户端显示已连接或节点可用,但浏览器、应用或特定网站的实际请求仍然超时、被拒绝或无法解析域名。

先做这 3 步:不要先改 DNS 或 MTU

先记录当前客户端的代理地址、端口、模式、TUN/DNS 开关和规则设置;如果客户端支持导出配置或复制订阅,先完成备份。每次只改一个项目,确认结果后再继续,避免多个改动叠加导致无法回滚。

  1. 关闭代理测试基础网络:退出客户端或关闭系统代理,打开普通网页。如果关闭代理后仍无法访问,优先排查 Wi-Fi、网线、路由器、系统网络或企业网关,不要先判断是节点故障。
  2. 确认代理入口:核对代理类型是 HTTP、HTTPS、SOCKS5 还是客户端本地混合端口,地址和端口必须与客户端当前监听设置一致;需要认证时,同时检查用户名和密码。
  3. 只切换一次全局模式:如果客户端有“规则、全局、直连”等模式,临时切换到全局测试。全局能访问而规则模式不能访问,通常应继续检查规则、策略组或 DIRECT 分流,而不是反复更换 DNS。

在 Mihomo 中,TUN 用于接管系统流量,代理端口则要求浏览器或系统明确指向对应端口;两者不是同一层入口。官方文档说明,TUN 会涉及系统路由、DNS 劫持和按应用路由,因此启用 TUN 后仍需验证路由和 DNS 是否实际生效。参考:Mihomo 入站配置、Mihomo TUN 配置。

按现象判断:连接被拒绝、超时和 DNS 失败不是一回事

现象或日志优先怀疑先做什么
connection refused本地端口未监听、端口填错、客户端进程异常核对本地端口和协议,重启客户端后重新选择端口
timeout节点路径、网络出口、防火墙或 MTU 相关问题先换一个节点或网络,再看日志是否仍超时;不要立即修改多个网络参数
DNS failed、无法解析域名系统 DNS、客户端 DNS、Fake-IP 或 Private DNS 冲突用域名解析命令对比默认 DNS 与指定 DNS 的结果
部分网站打不开规则命中、目标域名解析、IPv6 或应用独立代理设置临时全局测试,再分别检查规则、IPv6 和应用代理
浏览器可以,某个应用不行应用没有使用系统代理,或使用了独立代理/QUIC/DNS查看该应用的代理设置和客户端连接记录
关闭代理后也不能上网本地网络、系统代理残留、VPN 或安全软件冲突恢复系统代理默认值,退出其他 VPN 和网络过滤软件

Windows 可用 nslookup example.com 检查域名解析;Microsoft 文档说明,nslookup 可使用默认 DNS,也可以指定 DNS 服务器进行对比。若命令本身超时或返回 “No response from server”,先处理 DNS 或本地网络。参考:Microsoft nslookup 文档。

命令行测试也要注意代理变量。curl 会读取 http_proxy、https_proxy、ALL_PROXY 等环境变量,环境变量残留可能让命令行和浏览器表现不同。参考:curl 官方命令行文档。

Windows、macOS、Android 和 iPhone 怎么检查

系统检查入口恢复或验证方式
Windows 10/11系统设置中的代理、浏览器代理、客户端 TUN/系统代理关闭客户端后确认系统代理是否仍被启用;在命令提示符执行 netsh winhttp show proxy 查看 WinHTTP 状态,需要恢复默认时使用 netsh winhttp reset proxy
macOS系统设置→网络→当前网络→详细信息→代理确认 HTTP、HTTPS、SOCKS 代理是否与客户端一致,也检查自动代理发现和 PAC;测试完成后恢复原开关
Android设置→网络和互联网→互联网→当前 Wi-Fi→编辑→高级选项→代理确认 Wi-Fi 代理是否误设为手动;另外检查“私人 DNS”,因为它只处理 DNS 请求,不能替代完整代理
iPhone设置→Wi-Fi→当前网络右侧信息按钮→HTTP 代理、DNS 等确认 Wi-Fi 的 HTTP 代理没有残留;如果使用客户端建立系统级隧道,应同时查看客户端自身状态,而不能只看 Wi-Fi 代理

Windows 的 netsh winhttp reset proxy 会把 WinHTTP 代理重置为 DIRECT,但它不一定等同于浏览器或客户端自己的代理设置;执行前应确认设备没有受企业代理策略管理。参考:Microsoft Netsh WinHTTP 命令。

macOS 的代理入口和 HTTP、HTTPS、SOCKS、PAC 配置位置见 Apple 官方说明:更改 Mac 代理设置。Android 不同厂商菜单名称可能不同,Google 官方路径为网络和互联网、当前 Wi-Fi、编辑网络和高级选项;私人 DNS 只保护 DNS 查询与响应,不能证明网页请求已经经过代理。参考:Google Android 高级网络设置。iPhone 的 Wi-Fi 详情页可以配置 DNS 和 HTTP 代理,参考:Apple iPhone Wi-Fi 设置。

Mihomo、Clash 类客户端:按“请求有没有进来”判断

  1. 看连接记录:打开客户端的 Connections 或日志页面,刷新一个网页。如果完全没有对应请求,问题在浏览器代理、系统代理、TUN 或应用没有走系统代理;如果有请求但显示 DIRECT,继续检查规则;如果显示 reject、timeout 或 refused,再进入节点和网络层。
  2. 验证本地端口:客户端设置中的 mixed-port、port、socks-port 或 HTTP 端口必须与系统代理填写值一致。端口监听不代表上游节点可用,只能证明本机有入口。
  3. 规则模式改全局:全局模式能访问时,重点检查域名规则、策略组和 DIRECT;全局模式也不能访问,则优先检查节点、认证、网络和 DNS。
  4. 检查 TUN 与 DNS 的组合:TUN 可能改变系统路由并接管 DNS;Windows 的严格路由还可能添加防止 DNS 泄漏的防火墙规则。若开启 TUN 后所有应用异常,先关闭 TUN、保留普通系统代理测试,确认是 TUN 层后再逐项恢复。参考:Mihomo TUN 官方说明。
  5. 不要直接套用陌生配置:DNS 的 enhanced-mode、fake-ip、nameserver、proxy-server-nameserver 等字段会改变解析链路。只改一个字段,并保留原配置;官方 DNS 文档说明,关闭 DNS 模块时会使用系统 DNS,而 Fake-IP 等模式会影响地址返回方式。参考:Mihomo DNS 配置。

如果只有某个应用打不开,先确认该应用是否支持系统代理;部分应用可能使用自己的 DNS、QUIC 或独立代理设置。不要把一次浏览器访问成功当成所有应用都已恢复。

验证恢复、回滚与安全注意事项

  1. 关闭代理访问一个普通网站,确认基础网络正常。
  2. 重新启用代理,只使用一个节点和一种接管方式:普通系统代理或 TUN,不要同时叠加多个 VPN、代理客户端。
  3. 分别测试浏览器、命令行和出现问题的应用;记录是全部失败、部分失败还是只有域名解析失败。
  4. 确认客户端连接记录出现目标请求,并且没有持续出现 timeout、refused、reject 或 DNS failed。
  5. 若修改 DNS、MTU、TUN 或防火墙规则后问题扩大,立即关闭刚改的选项并恢复备份;不要为了测试长期关闭防火墙或安装来源不明的证书。

如果仍无法定位,整理客户端名称与版本、操作系统、代理类型、错误日志、是否全局模式可用、关闭代理后的结果以及是否更换网络后改善,再向软件或网络服务提供方咨询。不要在公开日志中暴露订阅地址、用户名、密码或完整节点信息。

常见问题

为什么客户端显示已连接,网页还是打不开?

“已连接”可能只表示客户端连接到了本地端口或上游会话,不能证明浏览器请求已被接管,也不能证明 DNS、规则和目标连接都成功。先看 Connections 或日志中是否出现实际请求,再按 refused、timeout、DNS failed 分流。

关闭代理后也无法上网,应该换节点吗?

不应先换节点。关闭代理后仍无法上网,说明基础网络、系统代理残留、其他 VPN、安全软件或网络网关更值得优先检查。恢复直连后确认普通网络正常,再重新启用代理。

全局模式可以上网,规则模式不行怎么办?

这通常把排查重点指向规则、策略组或 DIRECT 分流。先记录全局模式下能访问的域名,再查看规则命中结果;确认规则修复后切回规则模式,不必先改 MTU。

要不要直接打开 TUN 或修改 DNS?

不建议把它们作为第一步。先用普通系统代理验证基础连通性;只有当应用不遵循系统代理、需要接管更多流量或日志明确指向 DNS/TUN 时,再单独启用一个选项并保留回滚方法。

为什么只有一个应用无法上网?

该应用可能没有使用系统代理,或启用了独立 DNS、QUIC、代理和证书策略。先检查应用自身网络设置,再查看客户端是否记录到该应用的请求;如果完全没有记录,问题通常发生在客户端接管之前。

常见问题

代理显示已连接但完全无法上网,最快先试什么?

先关闭代理确认基础网络正常,再核对代理地址、端口、协议和认证;之后检查系统代理或 TUN 是否真正接管请求。

全局模式能用,规则模式不能用,说明节点坏了吗?

不一定。这个现象更优先指向规则、策略组或 DIRECT 分流;查看连接记录和命中规则后再处理。

Windows 上怎么清理残留的 WinHTTP 代理?

在命令提示符执行 netsh winhttp show proxy 查看状态;确认不受企业策略管理后,可执行 netsh winhttp reset proxy 恢复为 DIRECT。

DNS、TUN 和 MTU 应该先改哪个?

都不应作为第一步。先用普通系统代理验证,再依据日志和 DNS 测试结果单独修改一个项目,并保留原配置以便回滚。

为什么只有一个应用打不开?

该应用可能不使用系统代理,或启用了独立 DNS、QUIC 或应用内代理。检查应用自身设置,并确认客户端连接记录中是否出现该应用的请求。

相关阅读

参考资料

  1. Mihomo 入站配置官方文档
  2. Mihomo TUN 官方文档
  3. Mihomo DNS 配置官方文档
  4. Microsoft Netsh WinHTTP 命令文档
  5. Microsoft nslookup 命令文档
  6. curl 官方命令行文档(curl.se)
  7. Apple 更改 Mac 代理设置
  8. Google Android 高级网络设置
  9. Apple iPhone Wi-Fi 设置