“已连接”通常只代表内核已启动或代理接口已建立,不代表目标网站已能访问。本文以 Windows 上的 v2rayN 为主要操作环境,先验证节点和系统时间,再分离 DNS、路由与本地监听问题;安卓用户可沿用判断顺序。每轮只改一项,并用同一个网址复测,避免把临时恢复误判为配置正确。
一、先区分内核启动与网页请求成功
先保留当前配置,记录选中的节点、代理模式、测试网址和失败时间。打开客户端日志,然后刷新一次网页。日志有没有新增连接,比状态栏上的“运行中”更能说明请求走到了哪里。不要在这一步同时更新订阅、更换 DNS 和启用 TUN,否则即使恢复也难以定位原因。
v2rayN 是配置与管理客户端,实际连接由所选内核处理;V2Ray 与 Xray 不是状态按钮的名称。安卓的 v2rayNG 使用 Xray 内核,v2flyNG 使用 v2fly 内核。它们建立 VPN 接口后,仍可能在节点认证、解析或出站连接阶段失败。
| 看到的现象 | 能说明什么 | 下一步 |
|---|---|---|
| 内核运行中 | 进程已启动,不等于请求成功 | 刷新网页并观察新增日志 |
| 节点有延迟数值 | 某项探测得到响应 | 继续做真实 HTTPS 请求 |
| 浏览器报代理连接失败 | 可能无法连接本地代理入口 | 核对监听地址与端口 |
| 只有部分网站打不开 | 可能与域名规则、解析或目标站有关 | 对照失败域名的出站记录 |
二、验证节点:端口可达不等于认证通过
先关闭代理,访问一个当前网络本来就能打开的网站,确认本机基础联网正常。再启用代理,用同一个 HTTPS 地址测试当前节点与另一条已知可用节点。只有第二条恢复时,才优先怀疑第一条节点配置或服务端,而不是重装客户端。
-
确认当前节点
在 v2rayN 主界面确认实际启用的服务器。仅选中一行不一定等于已设为活动服务器;按当前版本的设为活动服务器操作切换后,再观察日志。
-
核对连接字段
打开服务器编辑窗口,对照订阅来源核对地址、端口、认证信息、传输方式与 TLS 设置。使用 WebSocket 时还要核对路径与 Host;不要把 Host 和 TLS 的 serverName 当成同一字段随意替换。
-
对照另一节点
保持路由、DNS 和代理模式不变,只换节点并重试。若所有节点都失败,继续检查时间与本地接管;若单条失败,再更新对应订阅或联系服务提供方。
-
确认内核支持
遇到配置加载报错时,对照当前内核是否支持该协议及传输组合。VMess、VLESS 的名称相近,但认证与配置字段不能互换;也不要把节点参数手动改成另一种协议。
延迟测试可能只验证 TCP 建连,部分测试则会发起 HTTP 请求,含义取决于所选测试功能。即使节点端口可达,TLS 握手、用户认证或服务器出站仍可能失败。订阅更新成功也只证明获取到了配置,不能证明配置中的每个节点都可用。
三、同步系统时间,再检查 TLS 与认证日志
先修正电脑的实际时间,再处理证书或认证错误。Windows 11 可进入「设置」→「时间和语言」→「日期和时间」,打开「自动设置时间」,点击「立即同步」。核对日期、年份和时区;只改显示时区,并不一定修正系统时钟偏差。同步后重启内核,再发起一次请求。
- VMess:认证包含时间相关校验,客户端与服务端时间偏差过大可能失败。具体容忍范围与实现有关,不应套用一个固定秒数判断所有节点。
- TLS:系统日期错误可能使证书被判断为尚未生效或已过期。时间正确后仍报证书错误,要继续检查 serverName、服务端证书和网络干预。
- 其他认证:VLESS 的认证机制不能直接套用 VMess 的解释,但若连接叠加 TLS,仍需要正确的系统时间。
报错:x509: certificate has expired or is not yet valid
原因与解法:本机时间错误或服务端证书有效期异常——先同步系统时间;仍复现时,核对日志中的证书时间并联系服务提供方处理,不要用跳过证书验证代替修复。
报错:tls: handshake failure
原因与解法:TLS 握手被对端拒绝,可能涉及 serverName、协议参数或服务端配置——恢复订阅提供的原始参数,并结合服务端日志定位,不能仅凭这一行认定是 DNS 故障。
四、拆开检查系统 DNS 与代理内核 DNS
先判断哪个域名解析失败:节点服务器域名,还是要访问的网站域名。前者无法解析会让隧道根本建不起来;后者则可能只影响部分请求。Windows 的 nslookup 可检查系统侧解析,但其结果不能代表内核配置的远程 DNS、浏览器加密 DNS也同样正常。
nslookup example.com
curl.exe --connect-timeout 10 --max-time 20 --proxy socks5h://127.0.0.1:10808 -I https://example.com/
以上是诊断示例,不是测速结果。先确认 10808 是当前实际监听的 SOCKS 或混合端口,再执行第二条命令;把网址换成实际失败的网站,测试才有对照意义。socks5h 让域名交给代理端处理,而 socks5 通常由 curl 在本地解析;两者表现不同,说明需要进一步检查解析路径,但仍要结合日志判断。
- 系统解析失败,代理请求成功:优先检查系统 DNS、浏览器 DNS 设置,以及是否有请求绕过代理。不要先认定节点损坏。
- 系统解析成功,代理侧解析失败:检查内核 DNS 的地址、访问路径和路由。远程 DNS 如果也需要代理,应避免其连接又依赖尚未完成的解析,形成启动依赖环。
- 只有节点域名解析失败:核对订阅中的节点地址是否拼写正确、记录是否失效。不要把节点地址长期替换成一次查询得到的 IP,证书与负载均衡可能因此失配。
报错:no such host
原因与解法:当前解析路径未能得到该主机的有效结果——先看报错对应的具体域名,再检查其拼写、DNS 响应与解析配置;这不等于所有网络连接都已中断。
五、检查路由:请求是否被送到了错误出站
先用临时的全局代理路由做一次对照,再恢复原来的分流方案。这里的“全局”指路由策略,不等于开启系统代理或 TUN:应用必须先把请求交给内核,内核中的路由规则才有机会生效。系统代理未接管的应用,不会因切换内核路由而自动走代理。
在 v2rayN 中记录当前路由方案,再切到当前版本提供的全局代理方案,测试同一网址。如果全局正常、分流失败,重点查看域名规则、IP 规则及默认出站。不同版本和内核的界面名称可能不同,应以实际出站记录为准,不要只看方案名称。
| 对照结果 | 优先检查 | 处理方法 |
|---|---|---|
| 全局可用,分流失败 | 规则顺序、域名匹配、默认出站 | 确认失败请求实际命中的出站,缩小自定义规则范围 |
| 分流中目标被直连 | 过宽的直连域名或 IP 规则 | 修正对应规则,再测试相关子域名 |
| 目标被阻断 | 阻断规则或规则集误匹配 | 只调整误匹配项,保留其他有效规则 |
| 两种路由都失败 | 节点、DNS、本地监听与应用接管 | 回到失败日志,不继续堆叠路由例外 |
结论:只有对照恢复后才修改分流
若全局与分流都无法完成同一次 HTTPS 请求,先停止添加域名规则;改用显式代理请求验证本地入口与节点,把故障范围缩小后再恢复分流。
六、核对本地端口与系统代理入口
最后检查本地端口是否真的处于监听状态,以及浏览器是否指向该端口。v2rayN 的端口可修改,历史配置与不同版本也可能不同;下面的数值仅作为排查示例,必须替换为客户端当前显示的实际值。不要把节点服务端口填进 Windows 的本地代理设置。
在 Windows PowerShell 中执行下面两条命令。第一条查看监听端口和所属进程编号;第二条检查 HTTPS 请求是否能通过该代理入口。若只监听 SOCKS,不能将它当作普通 HTTP 代理填入系统设置;混合端口是否支持两种协议,应以当前内核配置为准。
Get-NetTCPConnection -State Listen -LocalPort 10808 |
Select-Object LocalAddress, LocalPort, OwningProcess
curl.exe --connect-timeout 10 --max-time 20 --proxy socks5h://127.0.0.1:10808 -I https://example.com/
报错:bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
原因与解法:监听地址与端口已被占用——根据进程编号确认所属程序,退出重复运行的客户端,或更换本地端口并同步修改应用代理设置;不要直接结束不认识的系统进程。
报错:Failed to connect to 127.0.0.1 port 10808
原因与解法:请求未连上指定的本地入口——检查内核是否启动、实际端口是否一致及监听地址是否包含回环地址,再处理远端节点问题。
若显式代理命令成功,但浏览器失败,进入 Windows 11「设置」→「网络和 Internet」→「代理」,对照当前配置的本地 HTTP 或混合入口。使用 v2rayN 托盘菜单的「系统代理」→「自动配置系统代理」时,随后回到系统设置确认结果;具体菜单文字以安装版本为准。浏览器代理扩展可能覆盖系统设置,测试时应暂时停用相关扩展。
- 命令行不会必然跟随系统代理:先用命令中的
--proxy明确指定入口,避免环境变量与系统设置互相干扰。 - TUN 应单独测试:先关闭 TUN 验证显式代理,再开启 TUN 对照。若仅在 TUN 下失败,检查虚拟网卡、DNS 接管与路由冲突,而非再次改节点认证信息。
- 不要同时运行多套接管:排查时只保留必要的网络工具,避免重复修改系统代理、路由或 DNS;企业设备的安全策略应由管理员确认。
七、常见追问与恢复后的检查
延迟有数值,为什么还是打不开网页?
延迟探测与完整网页请求不是同一个过程。保持同一节点,用带 --proxy 的 curl 命令请求实际失败的网址,并查看对应时间的内核日志。拿到 HTTP 状态码说明已收到 HTTP 响应,但 403、405 等仍需结合目标站规则判断。
手机能用同一订阅,电脑不能用,要重装吗?
先确认两端选的是同一条节点,再让电脑与手机连接同一网络做对照。订阅相同不代表活动节点、内核能力与 DNS 配置相同。电脑端优先验证本地监听与显式代理请求,保留日志后再考虑重建配置。
安卓显示 VPN 已连接,所有应用却都打不开?
在 v2rayNG 或 v2flyNG 中确认当前节点,再检查分应用代理是否把浏览器排除。暂时关闭分应用筛选做对照,并查看内核错误日志。VPN 标识只能说明接口已建立,不能证明远端认证与 DNS 请求成功。
关闭客户端后,普通网页也打不开了怎么办?
先重新打开 v2rayN,通过托盘「系统代理」菜单清除系统代理,再退出。也可进入 Windows「设置」→「网络和 Internet」→「代理」,关闭排查期间设置的手动代理或配置脚本;单位管理的配置不要擅自修改。使用过 TUN 时还需确认客户端已正常停止接管。
恢复访问后,把临时的全局代理、调试日志和测试用 DNS 逐项恢复到计划使用的配置,每恢复一项就测试一次。保留“失败现象—修改项—复测结果”的简短记录,比留下多处不明来源的例外规则更有用。
- 至少验证一个原本失败的网站和一个日常网站,避免只修好了单一域名。
- 重启客户端后再测试一次,确认修改已保存,系统代理仍指向正确入口。
- 提交问题时附上客户端与内核版本、发生时间及脱敏日志;删除订阅链接、UUID、密码等认证信息。