v2rayN 显示已连接却打不开网页:系统代理、路由与 DNS 逐项排查

按「系统代理状态 → 本地端口 → 路由规则 → DNS 设置 → 节点可用性」的顺序,给出一份可逐项勾选的上网故障排查清单。

本文速览

适合 v2rayN 已启动、节点已选中,却仍然无法打开网页的桌面用户。先确认浏览器请求是否进入本地内核,再查分流、域名解析与远端连接。每次只改一项,用同一个网址复测;通过端口检查、命令行请求和日志对照,可以区分系统代理未生效、内核未启动与节点不可用,而不是反复重装客户端。

一、确认系统代理,而不是只看连接状态

先检查「系统代理」是否为「自动配置系统代理」。客户端正在运行、节点名称已显示,甚至延迟测试有结果,都不等于浏览器已经使用代理。v2rayN 是配置与管理界面;真正接收本地请求、连接远端服务器的是内核。排查需要同时确认应用入口和内核状态。

以下菜单使用常见中文界面名称。不同桌面版本可能调整入口位置;找不到底栏选项时,可右键任务栏通知区域的 v2rayN 图标,查看同名菜单。先记录原设置,暂时关闭 TUN 模式,只检查系统代理这一条路径,避免两种接管方式叠加。

  1. 检查直连

    在 v2rayN 的「系统代理」中选「清除系统代理」,打开平时可以直接访问的网站。如果此时也失败,先处理电脑联网、无线网络认证或上游网络问题。

  2. 设置活动节点

    在主界面选中目标节点,右键选择「设为活动服务器」。等待内核启动;如果底部日志立即出现启动失败,先进入下一节检查端口。

  3. 开启系统代理

    点「系统代理」→「自动配置系统代理」。在 Windows「设置」→「网络和 Internet」→「代理」中,确认代理地址指向本机,端口与客户端入站设置一致。

  4. 排除独立代理

    检查浏览器扩展与浏览器自身的代理设置。若使用了单独指定的代理,先停用该配置,再完全退出并重新打开浏览器,用同一网址复测。

二、检查本地端口与内核是否监听

系统代理中的端口必须与内核实际监听的端口一致。在 v2rayN 打开「设置」→「参数设置」,找到本地入站的监听地址、端口和协议类型;不同版本可能将其放在「Core:基础设置」或入站相关页签。不要把远端节点的服务器端口填到系统代理里。

127.0.0.1
本机回环地址,不是远端节点地址
10808
下方命令的本地端口示例,以设置为准
443
HTTPS 常用目标端口,不是固定入站端口

下面命令适用于 Windows PowerShell。假设客户端的 HTTP 或混合入站端口为 10808;如果实际值不同,先替换命令中的数字。只有 SOCKS 入站时,不要直接使用这里的 HTTP 代理测试。

Test-NetConnection 127.0.0.1 -Port 10808
netstat -ano | findstr ":10808"
curl.exe -I --connect-timeout 10 --max-time 20 -x http://127.0.0.1:10808 https://www.example.com/

判断:命令能通,优先修应用入口

如果显式指定本地代理的请求成功,而浏览器同一网址失败,先核对浏览器代理、系统代理和扩展设置。此时反复更换订阅或 DNS,通常不能解决入口配置不一致的问题。

三、检查路由分流是否把请求送错出口

本地端口正常后,再看「路由」。路由分流的含义是:内核按规则将请求送往代理、直连或阻断出口。浏览器请求进入内核,不代表该请求一定经过所选节点;自定义规则也可能让某个域名直连或被阻断。

  1. 记下当前路由配置名称。若界面提供「全局」或「全局代理」预设,临时切换后,用同一个失败网址再测试一次。这里改变的是路由,不是改成 TUN 模式。
  2. 若全局代理正常、原模式失败,回到原配置,检查目标域名是否命中自定义直连、阻断或过宽的域名后缀规则。
  3. 在日志支持显示路由信息时,按请求时间定位目标域名,核对实际出站标签。日志没有相关字段时,不要仅凭列表中的节点名称判断出口。
  4. 修正规则后恢复原模式,再测试一个应直连的网站和一个应代理的网站,确认没有把局部故障变成新的分流错误。

四、区分系统 DNS、内核 DNS 与节点域名解析

DNS 是把域名转换为 IP 地址的过程。至少要区分两类名字:远端节点服务器的域名,以及要打开的网站域名。前者解析失败,内核可能根本无法建立节点连接;后者失败,则可能只影响某些网站。系统 DNS 和内核 DNS 也未必使用同一套配置。

Windows 可先用下面两条命令查看系统解析结果、清理系统缓存。第二条只清理本机系统 DNS 缓存,不会重置内核配置,也不会自动清理浏览器自己的解析缓存。

Resolve-DnsName www.example.com
ipconfig /flushdns

如果已确认存在 SOCKS 入站,还可以用下列方式让 SOCKS 代理接收目标域名,由代理链路处理解析。命令中的 10808 仍须与实际 SOCKS 或混合入站端口一致。它与系统直连解析的结果可用于对照,但不能单独确定所有解析环节的位置。

curl.exe -I --connect-timeout 10 --max-time 20 --socks5-hostname 127.0.0.1:10808 https://www.example.com/

五、按日志原文定位节点与握手故障

入口、端口、路由和 DNS 都检查后,再验证节点。先看客户端底部日志或「日志」入口,清楚记录一次请求的时间,再复现一次故障。下面是可能出现的错误片段;具体前后文会随内核和系统变化,不能只截取最后一个单词就下结论。

报错:bind: address already in use

原因与解法:内核要监听的本地地址或端口已被占用。用端口查询确认进程,退出重复客户端,或修改本地入站端口;随后重新应用系统代理。

报错:connection refused

原因与解法:目标端点拒绝了连接。先看错误指向的是本机还是远端:本机地址应检查监听,远端地址应核对节点端口与服务状态,不能一律当作 DNS 问题。

报错:lookup …: no such host

原因与解法:某个域名没有得到可用解析结果。省略部分是实际查询的域名;先区分它属于节点还是网站,再核对拼写、DNS 配置和解析器是否可达。

报错:i/o timeout

原因与解法:某个网络阶段等待超时。结合前面的目标地址判断是 DNS、远端连接还是读取响应超时,再换另一条已知可用节点作对照,不能仅凭此行认定账号失效。

报错:x509: certificate has expired or is not yet valid

原因与解法:证书有效期检查失败,可能涉及本机时间或服务端证书。先在系统「日期和时间」中校准时间;时间正确仍失败时,交由服务提供方核对证书,不要关闭证书验证。

切换节点时,保留相同路由和测试网址,只改变活动节点。TCP 延迟有结果,通常只说明某次端口连接有响应;它不证明协议认证、TLS 握手和网页请求全部成功。使用客户端提供的可用性或真连接测试时,也要注意测试目标可能与实际访问的网站不同。

六、常见现象与恢复检查

为什么延迟几十毫秒,网页还是打不开?

延迟测试未必包含完整网页请求。先执行显式指定本地代理的命令,再看同一时刻的日志。如果端口可连但握手失败,应核对协议参数、系统时间与节点状态,而不是继续按延迟排序。

只有一个网站打不开,要重装吗?

先不重装。保持当前节点,测试另一个网站;再临时使用全局代理复测原网站。其他网站正常时,优先检查目标站点状态、域名规则、DNS 以及站点对出口的访问限制。

浏览器能用,其他应用却不行?

先在该应用的网络设置中找「使用系统代理」或独立代理入口。支持手动代理时,填写本机地址与实际入站端口,并匹配 HTTP 或 SOCKS 类型。命令行工具也可能需要单独配置,不能假定都会读取系统代理。

退出客户端后,普通网站也打不开了?

重新打开 v2rayN,选择「系统代理」→「清除系统代理」,再退出。若客户端无法启动,到系统网络设置中检查手动代理是否仍指向已停止的本地端口;修改前记录原值,避免覆盖单位网络要求的代理配置。

排查后应该保留哪些设置?

保留已经验证有效的一项修正,恢复临时更改的路由和日志级别,撤回无效的 DNS 修改。如果此前使用 TUN 模式,先确认系统代理链路正常,再单独恢复并测试,避免同时接管带来的干扰。

修复完成后,用相同浏览器重新打开原先失败的网址,再验证一个应直连的网站。若需要继续求助,整理客户端与内核版本、系统类型、失败时间、测试方法和对应错误行;分享前遮住订阅地址、用户标识和认证参数。不要公开整份订阅或完整配置来换取排查建议。

v2rayN下载