客户端显示“已连接”或“服务已启动”,通常只说明本地代理内核已经运行、监听端口已经建立,并不等于浏览器请求已经经过代理,也不等于远端节点能够完成连接。排查时应沿着请求实际经过的链路向外推进,而不是反复更新订阅或连续切换节点。
这份清单适合处理 v2rayN、v2rayNG 与 v2flyNG 已启动但网页超时、空白或提示无法连接的情况。依次确认流量是否进入本地端口、节点是否可达、域名能否解析、路由是否误分流以及系统时间是否准确,可以把问题定位到明确的一层。
先分清“客户端已连接”代表什么
V2Ray、Xray 与 V2Fly 内核通常按需建立远端连接。启动客户端时,本地的 HTTP、SOCKS 或 VPN 接口先进入工作状态;只有浏览器真正发起请求后,内核才会执行 DNS、路由匹配、协议封装和远端拨号。因此,界面上的运行状态不能替代一次完整的网页请求测试。
可以先确定故障边界:完全关闭代理后普通网站是否能打开;开启代理后是所有网站失败,还是仅代理规则覆盖的网站失败;使用域名失败时,直接访问已知地址是否仍失败。三个答案分别指向本地网络、代理链路和 DNS 或路由层。
第一步:确认系统代理真的指向客户端
Windows 上使用 v2rayN 时,内核运行与系统代理是两个独立状态。若只启动服务而没有设置系统代理,浏览器仍会直接连接。可在 v2rayN 主界面选择「系统代理」→「自动配置系统代理」,再进入 Windows「设置」→「网络和 Internet」→「代理」,确认代理服务器指向 127.0.0.1,端口与 v2rayN 当前 HTTP 端口一致。
- 打开 v2rayN「设置」→「参数设置」,记录本地 SOCKS 与 HTTP 监听端口。
- 确认端口没有被手工改成其他数字;常见组合为 SOCKS
10808、HTTP10809。 - 检查浏览器是否单独配置了代理扩展或固定代理地址,避免它覆盖系统代理。
- 临时退出其他会修改系统代理的网络工具,然后重新执行一次“自动配置系统代理”。
- 关闭并重新打开浏览器,使旧连接池和旧代理设置失效。
若想绕开系统代理设置验证本地端口,可以在终端直接让请求经过 HTTP 代理。下面的测试若能返回 HTTP 响应头,说明浏览器到本地代理这一段基本正常;若立即提示无法连接 127.0.0.1,应优先检查内核是否退出、端口是否写错或监听地址是否被修改。
curl --proxy http://127.0.0.1:10809 --head https://v2help.com/
报错:Failed to connect to 127.0.0.1 port 10809
原因与解法:本地 HTTP 端口没有监听,或实际端口不是 10809。回到「设置」→「参数设置」核对端口,保存后重启内核。
报错:address already in use
原因与解法:另一个进程占用了监听端口。退出占用同一端口的程序,或将 HTTP 与 SOCKS 端口改为未使用的端口,再同步更新系统代理。
Android 上的逻辑不同。v2rayNG 与 v2flyNG 需要获得系统 VpnService 授权后才能接管应用流量。首次连接若跳过授权,或系统在后台回收了 VPN,会出现客户端页面仍保留节点信息、实际流量却没有进入内核的情况。重新点击连接,确认状态栏出现 VPN 标识,并检查「设置」→「分应用代理」中是否误排除了正在测试的浏览器。
第二步:验证节点可达性与订阅参数
系统代理正确后,下一层是节点本身。延迟测试只能证明某种探测能够得到响应,不能证明 VMess、VLESS 或传输层握手完整成功。更可靠的方法是选中单个节点,发起一次真实网页请求,同时观察客户端运行日志是否出现拨号、TLS、WebSocket 或认证错误。
| 观察结果 | 更可能的问题层 | 下一项检查 |
|---|---|---|
| 多个节点均在约 10 秒后超时 | 本地网络、DNS 或公共路由 | 换网络并检查域名解析 |
| 只有一个节点超时 | 节点地址、端口或服务状态 | 更新订阅并核对节点参数 |
| TCP 接通但立即被拒绝 | 用户标识、传输路径或协议不匹配 | 与订阅来源重新同步配置 |
| 首页可开,图片与脚本持续失败 | 线路丢包、MTU 或分流不一致 | 对比全局模式与另一网络 |
订阅更新成功只代表客户端下载到一份配置,不代表其中每个节点都可用。不要手工猜测用户标识、端口、TLS 服务器名或 WebSocket 路径;这些字段必须与服务端一致。若订阅刚更新后全部节点失效,应先确认当前选中的分组确实引用了新节点,再重启内核,避免仍在使用旧的活动配置。
报错:dial tcp: i/o timeout
原因与解法:指定地址与端口在超时时间内没有建立连接。先换一个同订阅节点做对照,再切换本地网络,以区分单节点故障与当前线路不可达。
报错:connection refused
原因与解法:远端地址可达,但目标端口没有接受连接。更新订阅并核对端口,若仅该节点出现则停止继续修改本地代理。
报错:invalid user
原因与解法:VMess 或 VLESS 的用户标识与服务端不一致,或旧配置已经失效。重新更新订阅并重新选择节点,不要自行改写用户标识。
报错:failed to dial WebSocket
原因与解法:WebSocket 路径、主机名、TLS 参数或中间网络不匹配。对照订阅原始参数,重点检查传输方式与路径是否被手工修改。
结论:用单变量对照替代连续换节点
同一网络下保留客户端设置,只切换一个已知可用节点;随后保留节点,只切换另一网络。两次对照即可把“节点故障”和“本地线路故障”分开。
第三步:检查 DNS 是否在代理前就失败
浏览器访问域名时,必须先获得地址。若节点服务器本身使用域名,客户端还要先解析节点地址;这一步失败时,代理协议甚至没有机会开始握手。典型表现是日志出现 lookup、no such host 或 failed to find an available destination,而访问本地缓存中的旧页面可能暂时正常。
nslookup v2help.com
nslookup v2help.com 1.1.1.1
第一条使用系统当前 DNS,第二条指定一个 DNS 服务器做对照。若第一条持续超时而第二条能在 1 至 2 秒内返回地址,应先修复系统 DNS;若两条都失败,则继续检查当前网络是否允许 DNS 查询。测试完成后再回到客户端,重启内核并重新发起请求,避免旧的失败缓存影响判断。
- Windows 可在「设置」→「网络和 Internet」→ 当前网络连接中检查 DNS 配置。
- 修改 DNS 后执行
ipconfig /flushdns,再完全退出并重开浏览器。 - v2rayN 7.x 使用自定义 DNS 时,确认填写的是可解析的服务器地址,配置语法没有多余逗号或失效条目。
- 路由规则需要按域名匹配时,不要在解析前强制把所有域名改写成不符合规则预期的地址。
- 若只有节点域名解析失败,而普通域名正常,应检查订阅中的节点地址是否完整、是否混入空格。
报错:failed to lookup ip for domain
原因与解法:内核没有从当前 DNS 获得节点或目标域名地址。恢复系统 DNS 自动获取,或换成可用的 DNS 设置后重启内核。
报错:no such host
原因与解法:域名不存在、拼写错误或 DNS 返回了不存在结果。核对订阅中的服务器地址,不要把传输层主机名与节点地址互相替换。
报错:failed to find an available destination
原因与解法:出站目标没有得到可用地址,常见于解析失败或地址族不匹配。先恢复默认 DNS,再分别测试 IPv4 与当前网络提供的地址。
第四步:排除路由分流把请求送错出口
路由分流决定请求走代理、直连还是阻断。节点完全可用,但规则把目标域名送到直连出口时,网页仍可能超时;反过来,局域网地址若被送入代理,也可能导致路由器管理页或本地服务打不开。最有效的诊断不是立即重写规则,而是临时切到全局代理做一次对照。
- 保存当前路由设置,记录正在使用的规则集名称。
- 在 v2rayN 中临时选择全局代理对应的路由模式,并重启内核。
- 关闭浏览器已有标签页,重新访问刚才失败的同一地址。
- 若全局模式恢复,问题位于域名规则、地址规则或出站标签。
- 恢复原路由,逐条检查命中顺序,不要长期用全局模式掩盖错误规则。
V2Ray 与 Xray 路由通常按配置顺序匹配,较宽泛的规则放在前面,可能提前截获后面的精确规则。例如,一个覆盖范围过大的直连域名规则会让本应代理的请求直接发出;一个过早出现的阻断规则,则会让请求在本机被拒绝。日志中若能看到目标域名及其出站标签,应以实际命中结果为准。
v2rayNG 与 v2flyNG 还要额外检查分应用代理。若只允许选定应用通过 VPN,而浏览器没有被选中,客户端可以保持连接,浏览器却始终直连。进入「设置」→「分应用代理」,核对当前模式是“绕过已选应用”还是“仅代理已选应用”,这两个模式的勾选含义相反。
结论:全局可用就回查规则命中
同一节点在全局模式能打开网页、恢复分流后立即失败,说明节点与本地端口已经通过验证;下一步只检查域名规则、地址范围、分应用列表和出站标签。
第五步:校准系统时间并检查 TLS 与协议参数
系统时间错误会影响 TLS 证书有效期判断,也会干扰依赖时间窗口的认证流程。VMess 对客户端与服务端时间差较敏感;若电脑休眠后时间漂移、虚拟环境暂停后恢复,可能出现本地端口正常、远端持续拒绝的现象。VLESS 配合 TLS 时,同样需要正确时间来验证证书。
- Windows 进入「设置」→「时间和语言」→「日期和时间」,开启自动设置时间与自动设置时区。
- 点击“立即同步”,确认日期、时区和分钟数均正确。
- Android 进入系统「设置」→「系统」→「日期和时间」,启用网络提供的时间。
- 时间校准后重启 v2rayN、v2rayNG 或 v2flyNG 的内核,不只刷新浏览器页面。
- 若日志仍提示 TLS 失败,核对订阅中的服务器名称、传输安全类型和端口,避免手工混用其他节点参数。
报错:certificate has expired or is not yet valid
原因与解法:本机时间错误或远端证书不在有效期内。先同步系统时间;若时间正确且只有一个节点报错,应停止使用该节点并更新订阅。
报错:tls: handshake failure
原因与解法:TLS 服务器名称、协议协商或远端配置不匹配。恢复订阅提供的 TLS 参数,确认没有把其他节点的服务器名称复制过来。
报错:rejected proxy connection
原因与解法:连接在代理链路中被拒绝,可能是认证参数失效或目标被当前出站阻断。更新订阅后用同组另一节点对照,并查看拒绝发生在哪个出站。
还应确认客户端使用的内核与节点能力相符。v2rayN 可按配置调用相应内核;v2rayNG 使用 Xray 内核,v2flyNG 使用 V2Fly 内核。普通 VMess 与 VLESS 配置并不意味着所有扩展传输特性都能在不同内核之间直接互换。若导入后字段缺失或日志明确提示不支持,应选择与配置能力对应的客户端,而不是随意删除未知字段。
按顺序执行的最终排查清单
完成前面检查后,可以用下面的顺序重新走一遍。每一步只需要回答“通过”或“不通过”;遇到第一项不通过就先处理该层,不要继续叠加修改。这样既能缩短定位时间,也便于在恢复后撤销临时设置。
- 基础网络:关闭代理后,当前网络能够正常访问普通网页。
- 内核状态:客户端运行日志没有端口占用、配置解析失败或进程退出提示。
- 本地入口:系统代理指向
127.0.0.1与实际 HTTP 端口,或 Android VPN 已获授权。 - 请求入站:刷新网页时,访问日志能看到新的目标域名或连接记录。
- 节点可达:至少一个节点能完成真实网页请求,而不只是延迟探测。
- DNS 正常:系统查询在约 1 至 2 秒内返回结果,日志没有持续出现 lookup 错误。
- 路由正确:全局模式与分流模式的对照结果明确,目标命中了预期出站。
- 时间准确:系统日期、时区和分钟数已同步,TLS 日志不再提示有效期问题。
- 应用范围:浏览器没有被分应用代理排除,也没有使用过期的独立代理配置。
- 配置一致:协议、端口、用户标识、TLS 服务器名和传输路径均来自同一条订阅记录。
延迟测试有数字,为什么网页还是超时?
延迟探测不一定完成协议握手与目标访问。选中节点后打开运行日志,再访问一个网页,重点查看是否出现 i/o timeout、TLS 或认证错误。
只有浏览器打不开,其他应用能联网怎么办?
先关闭浏览器自己的代理设置与扩展,确认它跟随系统代理;随后完全退出浏览器再打开,清除旧连接池对测试的影响。
更新订阅后还是使用旧节点吗?
检查当前活动分组和选中节点,重新选择更新后的条目,再重启内核。订阅列表刷新并不会保证正在运行的旧连接立即切换。
全局模式能用,分流模式不能用怎么修?
恢复分流后查看目标域名命中的出站标签,优先检查排在前面的宽泛直连规则、阻断规则以及 Android 分应用代理名单。
重启电脑后又打不开,需要重新配置吗?
先确认客户端是否已启动、系统代理是否仍指向当前端口,以及端口是否被其他程序占用。配置文件未报错时,不必重新导入全部订阅。
如果清单走到“请求入站”就中断,问题集中在浏览器、系统代理或 VPN 授权;请求进入内核后出现拨号错误,重点处理节点、网络和 DNS;只有分流模式失败,则直接回到规则命中。把故障限定在一层后再修改配置,比一次性重装客户端更容易得到可重复的结果。