Windows 代理开了但无法上网怎么办?
简答:先关闭 TUN,只保留一种接管方式,再检查 Windows 是否残留 127.0.0.1:7890 代理;若端口未监听,关闭系统代理并重置网络。DNS 问题则用 ping、nslookup 和 ipconfig 区分。
定义:Windows 代理开了但无法上网,通常是系统代理仍指向未运行的本地端口、TUN 与系统代理重复接管、DNS 被改写,或客户端没有权限接管系统设置。
先试这一步:关闭重复接管,确认本地端口是否真的可用
免责声明:本文只用于 Windows 网络设置和代理客户端的常规排查,不涉及绕过网络访问限制;客户端界面和字段名可能随版本变化,请以当前版本设置页为准。
如果代理客户端崩溃、被强制结束,Windows 仍可能保留“手动代理服务器”为 127.0.0.1:7890。此时浏览器会继续把请求交给本机 7890 端口,但端口已经没有程序监听,所以表现为所有网页打不开。
- 先完全退出代理客户端,再打开 Windows 的设置 > 网络和 Internet > 代理。
- 在“手动设置代理”中,暂时关闭“使用代理服务器”;“使用设置脚本”也暂时关闭。
- 打开命令提示符,执行下面的检查:
netstat -ano | findstr 7890如果没有输出,说明 7890 当前没有监听程序;如果 Windows 代理仍指向 127.0.0.1:7890,这就是最直接的故障点。若有输出,再用任务管理器或客户端日志确认监听进程是否属于正在使用的代理客户端。端口号只是排查示例,实际端口以客户端设置页为准。
Windows 的手动代理入口和配置方式可参考微软的 Windows 代理服务器说明。
| 现象 | 检查结果 | 判定 |
|---|---|---|
| 客户端已退出,网页打不开 | 代理仍是 127.0.0.1:7890,netstat 无输出 | 本地代理残留,先关闭 Windows 手动代理 |
| 客户端运行,网页仍打不开 | 7890 有监听,但客户端日志报核心或节点错误 | 先在客户端内核、代理组和日志中排查 |
| 关闭系统代理后仍打不开 | 浏览器和 ping 都失败 | 继续检查 DNS、网卡、路由或虚拟网卡残留 |
只保留一种模式:系统代理和 TUN 不要同时作为第一组测试
系统代理和 TUN 的接管范围不同:系统代理主要让遵循 Windows 用户代理设置的应用把请求发送到本地代理端口;TUN 则通过虚拟网卡和路由接管更广泛的系统流量。Clash Verge Rev 的设置说明明确写出,TUN 模式启用后通常不需要再启用系统代理;其界面字段为 System Proxy 和 Tun Mode。可查看其 官方仓库设置字段说明。
两者同时开启时,可能出现双重接管:浏览器先读取系统代理发送到 127.0.0.1:7890,其他流量又被 TUN 虚拟网卡和自动路由接管。若客户端异常退出,系统代理、路由表或虚拟网卡状态可能没有同步恢复;使用 fake-ip 时,还可能在 DNS 缓存或连接记录中看到 198.18.x.x 地址。这里的地址是 mihomo fake-ip 配置使用的保留测试网段,不是网站真实服务器地址,参考 mihomo DNS 配置文档。
推荐的单变量测试顺序
- 在客户端中关闭
Tun Mode,同时关闭System Proxy。 - 退出客户端,检查 Windows 设置中的手动代理和设置脚本都关闭。
- 打开浏览器测试基线连接。
- 只开启
System Proxy,确认 7890 端口正在监听,再测试浏览器。 - 如果系统代理正常,再关闭
System Proxy,只开启Tun Mode,按提示安装服务或允许管理员权限后测试。
每次只改一个开关。若关闭 TUN 后仍无法直连,可在“网络适配器选项”中查看是否留下代理客户端虚拟网卡;先禁用明显属于该客户端的残留虚拟网卡,再重新测试。不要随意删除正在使用的物理网卡,也不要在未确认名称时修改其他虚拟网卡。
mihomo 的 TUN 文档说明了 auto-route、dns-hijack、strict-route 和虚拟网卡之间的关系;涉及这些字段时,应以当前内核文档和客户端生成的配置为准,参考 mihomo TUN 配置文档。
出现 Access is denied:先处理客户端托管系统代理的权限问题
如果客户端开启系统代理时提示 Access is denied、无法写入代理设置,或开关刚打开就自动关闭,不要反复点击开关。常见原因是客户端界面进程、后台服务和 Windows 当前用户的代理设置权限不一致。这里的“权限死锁”是根据客户端需要修改系统代理、而 TUN 又需要服务或管理员权限这一事实作出的排查判断,不代表所有 Access is denied 都由同一原因引起。
Clash Verge Rev 的设置字段说明写明,TUN 需要 Service Mode 或 Admin Mode;系统代理启用失败时,可以改为手动修改操作系统代理设置。先完全退出客户端,再右键客户端选择以管理员身份运行,随后只测试一个开关。如果仍然失败,进入客户端的服务管理区域,检查服务是否已安装并运行;入口以当前版本界面为准。
可以用下面的命令读取当前用户的 WinINet 代理状态:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL微软文档说明,常规桌面应用和浏览器共享的用户级代理设置会读取 ProxyEnable、ProxyServer 和 ProxyOverride。相关注册表位置见 WinINet 网络功能说明。如果 ProxyEnable 为 0x1,而 ProxyServer 仍为 127.0.0.1:7890,但端口没有监听,就先回到 Windows 代理设置关闭手动代理。
不建议直接删除整个 Internet Settings 注册表项。若必须修改注册表,先在注册表编辑器中导出该项备份,只改已经确认的值;修改后重新打开浏览器和客户端测试。
区分 DNS 故障和连通性故障:不要一上来就改 DNS
代理开着时网页打不开,不一定是 DNS。先关闭系统代理和 TUN,确保电脑处于直连基线,再打开管理员命令提示符执行:
ping 1.1.1.1
ping example.com
nslookup example.com
ipconfig /all
ipconfig /flushdns判定方法如下:
- IP 地址能 ping,域名不能 ping,nslookup 超时或失败:更像 DNS 解析问题。检查当前网卡的 DNS 是否被设置为
127.0.0.1或其他已经停止运行的本地 DNS 服务,再执行ipconfig /flushdns。 - IP 地址和域名都失败:更像网卡、默认网关、路由、Wi-Fi 或虚拟网卡问题,不要只反复刷新 DNS。
- ping 有响应但浏览器打不开:可能是系统代理、浏览器代理、HTTPS 握手、防火墙或客户端核心问题;继续检查 7890 监听和客户端日志。
nslookup 用于诊断 DNS 基础设施,ipconfig /flushdns 用于清空并重置 DNS 客户端缓存,具体作用见微软的 nslookup 文档 和 ipconfig 文档。不要把任意公共 DNS 地址当成通用修复方案;先确认是解析失败,再按网络环境选择 DNS。
如果客户端关闭后,网卡 DNS 仍显示为 127.0.0.1,而本地 DNS 端口没有监听,恢复为“自动获取 DNS”通常比直接填写陌生地址更稳妥。修改后重新执行 nslookup example.com,以能返回地址记录作为判定标准。
仍然无法上网:按风险从低到高重置 Windows 网络
当系统代理已经关闭、TUN 和残留虚拟网卡也处理过,但直连仍失败,可按以下顺序执行。命令提示符需要使用以管理员身份运行:
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns执行后重启 Windows,再测试不启用任何代理客户端的浏览器连接。微软支持文档给出的网络排查顺序包含这些命令,并说明 Winsock、TCP/IP、DHCP 地址和 DNS 缓存分别会被重置或刷新,参考 Windows 网络连接排查说明。
netsh winhttp reset proxy 不应作为浏览器打不开网页时的常规第一步。WinHTTP 主要供使用 WinHTTP API 的应用和系统服务使用;浏览器常见的用户级代理设置属于 WinINet 范围。需要检查系统服务代理时,再执行:
netsh winhttp show proxy
netsh winhttp reset proxy相关命令作用见微软的 netsh winhttp 文档。如果前面的命令仍无效,最后再使用 Windows 的网络重置:Windows 11 路径为设置 > 网络和 Internet > 高级网络设置 > 网络重置;Windows 10 路径为设置 > 网络和 Internet > 状态 > 网络重置。网络重置会移除并重新安装网卡,同时可能需要重新配置 VPN、虚拟交换机和其他网络软件,因此应放在最后,微软对此也有明确提示。
一张表确认你应该停在哪一步
| 最终现象 | 最可能位置 | 下一步 |
|---|---|---|
| 关闭客户端后网页恢复 | 系统代理残留或客户端端口未监听 | 保持系统代理关闭,重新启动客户端后再单独开启 |
| 只开系统代理能用,只开 TUN 不能用 | TUN 服务、权限、虚拟网卡或路由问题 | 检查管理员权限、服务状态和残留虚拟网卡 |
| 只开 TUN 能用,同时开系统代理就失败 | 双重接管或端口配置冲突 | 关闭系统代理,只保留 TUN |
| IP 连通,域名解析失败 | DNS 设置、DNS 劫持或本地 DNS 监听异常 | 检查网卡 DNS、执行 nslookup 和 flushdns |
| 关闭所有代理仍无法联网 | 网卡、默认网关、路由或网络协议栈 | 执行 Winsock/TCP-IP 重置,必要时使用网络重置 |
如果你使用 v2rayN,可继续参考站内的v2rayN 节点连接失败排查;如果使用 sing-box,可查看sing-box Windows 配置导入步骤。不同客户端的端口和权限入口可能不同,均应以客户端设置页为准。
常见问题
为什么代理客户端关了,Windows 还是无法上网?
最常见是系统代理仍指向 127.0.0.1:7890,但客户端已经退出、端口没有监听。到设置 > 网络和 Internet > 代理关闭手动代理,再用 netstat -ano | findstr 7890 确认端口状态。
TUN 和系统代理可以同时打开吗?
不建议把两者同时作为排查起点。TUN 通过虚拟网卡和路由接管流量,系统代理则把部分应用导向本地代理端口;同时开启可能造成双重接管。先只开一种,确认单独工作后再决定是否需要组合。
Access is denied 无法开启系统代理怎么办?
先退出客户端,右键选择以管理员身份运行,再只开启 System Proxy。若仍失败,检查客户端服务是否安装并运行;TUN 通常还需要 Service Mode 或管理员权限。不要反复修改注册表,先用 Windows 代理设置确认当前用户代理状态。
为什么 ping IP 正常,但浏览器仍打不开?
这通常说明基础 IP 连通性未必有问题,仍可能是系统代理、端口监听、DNS 解析、HTTPS 或客户端核心故障。依次检查 127.0.0.1:7890、nslookup example.com 和客户端日志,不要只执行 flushdns。
netsh winhttp reset proxy 能解决浏览器打不开吗?
不一定。WinHTTP 主要影响使用 WinHTTP 的应用和系统服务,浏览器常见的用户级代理设置属于 WinINet。浏览器故障应先检查 Windows 设置中的代理开关和 ProxyEnable、ProxyServer,再按需要检查 WinHTTP。