本文速览
适合 v2rayN、v2rayNG 或 v2flyNG 已显示运行,但浏览器仍超时、部分网站无法访问或所有请求都失败的情况。检查顺序固定为本地监听、流量接管、DNS、路由、节点出口和日志,每完成一步都做一次独立测试,从而确定故障发生在哪一段链路。
先分清“已连接”代表哪一层
先建立单一测试链路
客户端界面的运行状态通常只说明内核进程已经启动,或者 Android 上的本地网络接口已经建立。它不等于远端节点完成握手,也不等于浏览器流量已经进入代理。排查时必须把链路拆成五段:应用请求、本地代理端口、DNS 解析、远端节点、目标网站。
以 v2rayN 7.14.3 的常见设置为例,本地 SOCKS 端口通常是
127.0.0.1:10808,HTTP 端口通常是 127.0.0.1:10809。端口可以在「设置」→「参数设置」→「基础设置」中调整,因此实际检测必须以当前客户端显示的数值为准,不能只照抄默认值。先暂时关闭浏览器扩展中的独立代理设置,退出其他可能接管系统代理或虚拟网卡的程序,再重启客户端。这样做不是直接修复问题,而是减少并行链路,避免一个应用走系统代理、另一个应用走自定义 SOCKS 端口,导致测试结果互相矛盾。
10808
常见 SOCKS 本地端口
10809
常见 HTTP 本地端口
127.0.0.1
默认回环监听地址
5 段
从应用到出口的检查链路
结论:运行状态不能代替请求测试
只要本地端口没有监听,或浏览器没有把请求送入该端口,远端节点是否可用就还没有进入测试范围。
第一步:确认本地端口与系统代理
在 Windows 上先打开 PowerShell,检查 v2rayN 的本地 SOCKS 端口是否能够建立 TCP 连接。若已经修改过端口,把命令中的
10808替换为「参数设置」里看到的值。测试成功只证明端口正在监听,不证明远端出口正常。Test-NetConnection 127.0.0.1 -Port 10808
结果中的
TcpTestSucceeded 应为 True。如果为 False,先在 v2rayN 主窗口确认已选中一个节点,再执行「服务器」→「设为活动服务器」,随后重启内核。仍然失败时,直接查看日志是否存在端口占用或配置载入错误。本地端口正常后,检查 v2rayN 的系统代理模式。用于普通浏览器测试时,可从托盘菜单选择「自动配置系统代理」。Windows 的「设置」→「网络和 Internet」→「代理」中应出现由客户端写入的本地代理配置。若退出客户端后旧代理地址仍保留,先关闭系统代理再重新启动客户端。
- 选中一个明确可用的服务器,设为活动服务器。
- 确认本地监听地址为
127.0.0.1,SOCKS 与 HTTP 端口没有重复。 - 启用「自动配置系统代理」,完全关闭并重新打开浏览器。
- 使用无独立代理规则的浏览器窗口访问两个不同域名,记录是全部失败还是只有特定域名失败。
排查期间先使用系统代理模式,不要同时启用 TUN、浏览器扩展和手工代理。确认基础链路可用后,再逐项恢复原来的接管方式。
第二步:绕过浏览器直接测试代理出口
浏览器可能保留旧代理配置、DNS 缓存或扩展规则。为了判断故障是在浏览器之前还是之后,可以直接向本地代理端口发起请求。macOS 与 Linux 可在终端使用
curl;Windows 安装了对应命令行工具时也可执行相同测试。curl --proxy socks5h://127.0.0.1:10808 https://v2rayroot.com/ -I --connect-timeout 10
socks5h 中的字母 h 表示让域名通过 SOCKS 链路解析。若返回 HTTP/2 200、HTTP/1.1 200 或正常的重定向状态,说明本地端口、节点和远端 DNS 至少能够完成一次完整请求。此时网页打不开更可能是浏览器代理、缓存、扩展或系统接管问题。若命令立即提示无法连接
127.0.0.1,故障在本地监听。若等待约 10 秒后超时,本地端口通常已经接受请求,但远端节点或目标方向没有返回。若只有一个域名失败,则应检查路由规则、域名解析或目标服务状态,不要立刻更换所有配置。| 测试结果 | 链路判断 | 下一步 |
|---|---|---|
| 拒绝连接本地端口 | 内核未监听或端口填错 | 核对 10808、重启内核、查端口占用 |
| 10 秒连接超时 | 节点握手或出口异常 | 切换节点并读取内核日志 |
| 命令成功、浏览器失败 | 代理核心链路正常 | 重置浏览器与系统代理配置 |
| 仅少数域名失败 | DNS 或分流规则命中异常 | 临时使用全局代理做对照 |
第三步:检查 DNS 与路由分流
DNS 故障常表现为节点延迟测试有数值,但输入域名后网页一直等待。延迟测试可能直接连接节点地址,而浏览器还需要解析目标域名。先在系统终端运行
nslookup v2rayroot.com,确认本机能得到地址;再使用前面的 socks5h 命令,比较本地解析与代理侧解析的结果。如果 IP 地址可以访问而域名不能访问,优先检查 DNS。v2rayN 7.x 可从「设置」→「参数设置」进入 DNS 相关配置。排查阶段不要一次加入多组复杂规则,先恢复为客户端提供的基础配置,保存后重启内核。系统侧还可以清理 DNS 缓存,Windows 使用
ipconfig /flushdns,随后完全退出并重新打开浏览器。若只有部分网站失败,把路由模式临时切换为全局代理进行对照。全局模式正常、规则模式失败,说明节点本身大概率可用,故障集中在域名规则、IP 规则或直连出口。检查自定义规则时尤其注意优先级:靠前规则会先匹配,一条范围过大的直连规则可能让目标请求绕过代理。
- 所有域名失败:检查系统 DNS、客户端 DNS 配置及节点域名能否解析。
- 域名失败但 IP 成功:将问题限定在 DNS,暂不调整协议参数。
- 全局模式成功:逐条停用自定义路由规则,定位错误的直连或阻断条件。
- 全局模式仍失败:返回节点握手、传输层和服务器出口继续检查。
延迟显示 120 毫秒,为什么网页仍然超时?
延迟测试只能覆盖特定探测请求。使用
curl --proxy socks5h://127.0.0.1:10808 发起完整 HTTPS 请求,再判断节点是否真的具备出口能力。切到全局代理后恢复正常,应该改哪里?
在「设置」→「路由设置」中检查自定义规则顺序,先停用最近新增的域名、GeoIP 或直连规则,每次只恢复一组并重新测试。
更新订阅后突然所有节点都打不开?
确认活动服务器没有被删除或替换,重新选择节点并设为活动服务器。若节点参数整体变化,更新后必须重启内核才能载入新配置。
Android 上显示已启动,应用还是无法联网?
在 v2rayNG 或 v2flyNG 中先关闭分应用代理与自定义路由,保留单一节点做全局测试;确认可用后再恢复应用范围和分流规则。
第四步:从日志判断节点、协议与 TLS 故障
本地端口和流量接管都正常后,日志是判断远端故障的主要依据。v2rayN 可从主界面的日志区域查看核心输出,也可在「设置」→「参数设置」中调整日志等级。排查时使用
info 通常足够;只有信息不足时才临时提高详细程度,完成后恢复,避免大量重复记录干扰判断。VMess、VLESS 的协议名称本身不能证明配置正确。服务器地址、端口、用户标识、传输方式、TLS、SNI、路径和服务名必须与服务端一致。订阅导入通常会填充这些字段,手工修改其中一项就可能造成 TCP 已连接但 TLS 或协议认证失败。
报错:failed to listen TCP on 127.0.0.1:10808
原因与解法:本地端口已被另一个进程占用——退出重复运行的客户端,或在「设置」→「参数设置」中改用未占用端口,保存后重启内核。
报错:failed to find an available destination
原因与解法:出站服务器地址无法解析或没有可用目标——核对节点地址拼写,恢复基础 DNS 配置后重新启动内核。
报错:lookup server.example: no such host
原因与解法:节点域名解析失败——检查当前网络的 DNS 可用性,重新更新订阅,并确认节点地址没有被手工截断。
报错:TLS handshake timeout
原因与解法:客户端已尝试建立 TLS,但规定时间内未完成握手——核对服务器端口、SNI、传输方式与系统时间,再换同订阅中的另一节点对照。
报错:connection reset by peer
原因与解法:连接已到达远端但被主动重置——检查协议与传输参数是否匹配,并测试其他节点,区分单节点故障与本地网络限制。
如果同一订阅中三个节点只有一个失败,优先判断为单节点配置或服务器状态问题。如果全部节点出现完全相同的本地端口报错,则应先修复本机配置。若所有 TLS 节点都失败,还要确认系统日期、时区和分钟值准确;明显的时间偏差会导致证书有效期判断异常。
结论:相同错误决定排查范围
单节点报错看节点参数,全部节点报错看本地端口、DNS 与系统环境;先比较错误是否一致,比连续随机切换节点更容易定位原因。
第五步:按最小配置恢复,再逐项加回功能
经过前四步仍无法确认原因时,使用最小配置建立基线。保留一个刚从有效订阅更新得到的节点,关闭自定义 DNS、路由规则、分应用代理和 TUN,只启用系统代理。重启客户端后先测试本地端口,再运行一条代理请求,最后打开浏览器。
最小配置正常后,按照固定顺序恢复功能:先恢复 DNS,再恢复路由分流,随后恢复浏览器或应用级规则,最后启用 TUN。每恢复一项就访问相同的两个测试域名,并记录开始失败的那一步。这样可以把故障锁定到一个配置层,而不是在几十个参数之间反复猜测。
在 Android 上使用 v2rayNG 或 v2flyNG 时也遵循同样逻辑:先选单节点并关闭自定义路由,确认普通网页可访问,再恢复分应用设置。v2rayNG 使用 Xray 内核,v2flyNG 使用 v2fly 内核;两者导入同一订阅后,仍可能因内核支持范围和具体传输参数不同而出现不同结果。
- 重置为一个节点、基础 DNS、系统代理或默认网络接管。
- 确认
127.0.0.1:10808或当前配置端口可以连接。 - 执行带
socks5h的请求,确认域名解析与出口同时成功。 - 恢复路由规则,比较全局与规则模式的差异。
- 最后恢复 TUN、分应用范围和其他高级设置。
| 断点位置 | 典型现象 | 处理重点 |
|---|---|---|
| 本地监听 | 10808 连接被拒绝 | 内核启动、配置格式、端口占用 |
| 流量接管 | 命令成功但浏览器失败 | 系统代理、浏览器扩展、旧配置 |
| DNS | IP 可访问而域名失败 | 解析方式、缓存、节点域名 |
| 路由 | 全局正常而规则模式失败 | 规则优先级、直连条件、阻断条件 |
| 节点出口 | 多个目标均握手超时 | 服务器状态、协议参数、TLS 与 SNI |