适合已经导入订阅、但还不能确定代理是否连通的用户。先在 v2rayN 中选定节点并做真连接测试,再核对本地监听端口,用命令行与浏览器分别验证,最后根据日志区分节点故障、系统代理未接管与路由直连。安卓用户也可按同样的判断顺序检查 v2rayNG。
一、先区分订阅、节点与当前连接
订阅更新成功,只说明客户端取回并解析了配置,不代表其中每个节点都能连接。节点列表里的名称、地区与协议来自配置内容;名称不能证明实际出口位置,显示 VMess 或 VLESS 也不能证明服务器正在正常工作。
v2rayN 是桌面客户端,负责管理订阅、启动核心与设置流量入口;真正建立远端连接的是所选核心。安卓端的 v2rayNG 使用 Xray 内核,v2flyNG 使用 v2fly 内核。排错时要同时记录客户端与核心信息,不能只写“V2Ray 连不上”。
- 确认列表已更新:在 v2rayN「订阅分组」菜单选择相应的更新操作,查看日志是否完成解析;不要只看订阅地址已经保存。
- 确认节点已选中:选中一条有效节点,右键选择「设为活动服务器」,并核对主界面当前服务器标记。仅单击一行不一定完成切换。
- 确认核心启动:查看日志是否出现配置解析失败、核心退出或监听失败。核心未启动时,后续开启系统代理也不能连通。
- 确认时间准确:Linux 可运行
timedatectl status查看时间与同步状态。系统时间明显错误会影响 TLS 证书验证,也可能影响协议认证。
二、用真连接测速筛选节点
v2rayN 的 TCP 延迟测试主要检查到远端地址与端口的 TCP 连接;真连接测试通常会通过该节点请求指定测试地址,覆盖更多协议与传输环节。两者都不是带宽测试。测试成功也只说明当前测试目标可达,不能替代对实际网站的检查。
-
选择候选
在节点列表中用 Ctrl 多选 3 条候选节点。先选不同线路的节点,避免一次测试整个订阅造成大量并发连接。
-
执行真测
右键打开测试菜单,选择「测试服务器真连接延迟」或当前版本中名称含「真连接」的项目。菜单文字可能略有变化,不要把 TCP 延迟或下载速度测试当作同一项。
-
检查目标
如果全部失败,进入「设置」→「参数设置」,查找真连接测试地址与超时设置。记录实际地址;若目标本身不可达,应换一个已知可用的 HTTPS 测试目标再比较。
-
重复比较
对候选节点分别再测 2 次,保持同一网络与同一测试地址。优先选择连续成功的节点,再比较延迟,不要只挑一次结果里的最小值。
-
设为活动
将测试稳定的节点设为活动服务器,等待核心完成切换,再打开实际要访问的网站。测试操作本身不一定会把该节点设为当前使用节点。
结果中的毫秒数受测试目标、握手过程与当时网络影响,不宜跨客户端、跨测试地址直接比较。首次排错更应看“是否持续成功”和“失败时的日志”,而不是寻找某个固定的合格延迟数值。
真连接测试
推荐通过节点请求测试目标,适合作为首次连接的主要筛选依据。成功后仍要验证浏览器和实际业务目标。
适合:挑选首次使用的活动节点
TCP 延迟测试
检查远端 TCP 端口可达性。端口能建立连接,不等于 UUID、TLS、传输路径或其他协议参数正确。
适合:快速判断服务器端口是否可达
实际网页访问
同时受应用代理设置、DNS、路由规则和目标服务影响。它是最终体验检查,但单次失败不足以判定节点失效。
适合:验证日常使用场景
三、核对本地端口与流量入口
接下来把“节点能用”和“应用正在使用节点”分开检查。在 v2rayN「设置」→「参数设置」中查找本地监听端口及监听地址;若当前版本把相关项目放在独立的入站设置页,以实际页面为准。下面的 10808 是命令演示值,不是所有安装环境的固定端口。
本地入口示例
- 监听地址
- 127.0.0.1
- 演示端口
- 10808
- 入口协议
- SOCKS5;混合入站也可接受 HTTP
- 核对位置
- 参数设置与核心启动日志
仅在客户端确实监听该端口时使用后文命令;独立 HTTP 入站应填写它自己的端口。
首次验证范围
- 验证对象
- 当前设备上的浏览器与 curl
- 系统代理
- 影响遵循系统设置的应用
- TUN 模式
- 首次测试可先关闭
- 局域网共享
- 本机验证无需开启
一次只验证一种入口,避免系统代理、TUN 与浏览器扩展叠加后难以定位流量路径。
Linux 可运行下面的命令检查示例端口。若没有输出,先核对实际端口与核心状态;若显示其他程序占用,关闭冲突程序或更换本地端口,并同步更新应用设置。不要仅因代理失败就开放所有防火墙端口。
ss -ltnp 'sport = :10808'
监听在 127.0.0.1 表示只接受本机连接,适合本篇操作。0.0.0.0 表示监听所有 IPv4 接口,可能允许其他设备接入;首次本机连接不需要因此开启“允许局域网连接”。
四、用 curl 验证代理链路
命令行显式指定代理,可以绕过“终端是否读取系统代理”的疑问。以下命令以本机 SOCKS5 端口 10808 为例,目标为 HTTPS 出口地址查询服务。该服务故障时也可能测试失败,应结合另一个可访问目标复查,不能据此单独判定节点失效。
# 直连基线:忽略代理环境变量,失败也有诊断价值
curl --noproxy '*' --connect-timeout 10 --max-time 20 https://api.ipify.org
printf '\n'
# 显式使用本机 SOCKS5,并让代理侧处理目标域名
curl --noproxy "" --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 https://api.ipify.org
printf '\n'
socks5h 中的 h 表示把目标域名交给代理端处理,可减少本机 DNS 对本次诊断的干扰。它不等于整台设备的 DNS 都已被接管。--noproxy "" 用于清除本次请求的绕过列表,防止环境中的 NO_PROXY 导致测试意外直连。
- 直连与代理出口不同:说明两次请求的公网出口不同;再结合核心访问日志,确认代理请求没有被路由规则送往直连出站。
- 两次出口相同:不能直接认定代理失效。节点可能与本机共享公网出口,也可能是客户端规则把该域名送往直连;应查看命中的出站。
- 连接本地端口被拒绝:优先检查核心是否运行、端口是否填写正确,而不是反复更换远端节点。
- 本地连接成功后超时:检查日志中的 DNS、TLS、远端连接与认证错误,再用第二个目标区分目标故障和节点故障。
如果要测试 HTTP 入口,只能在该端口确实接受 HTTP 代理时运行下面的命令。混合入站通常同时接受 SOCKS 与 HTTP;独立 SOCKS 入站不能当作 HTTP 端口使用。不要用忽略证书验证的参数掩盖 TLS 错误。
curl --noproxy "" --proxy http://127.0.0.1:10808 --connect-timeout 10 --max-time 20 https://example.com/
五、检查浏览器与路由是否生效
curl 显式代理成功后,再处理浏览器。v2rayN 中选择「系统代理」→「自动配置系统代理」;Linux 桌面若没有同步生效,可在 GNOME「设置」→「网络」→「网络代理」→「手动」中填写本地 HTTP 或 SOCKS 主机与对应端口。不同桌面的设置入口不同,应以系统实际页面为准。
浏览器可能有独立代理设置。Firefox 可在「设置」→「常规」→「网络设置」→「设置」中选择“使用系统代理设置”,或手动填写 SOCKS 主机 127.0.0.1 与实际端口。先暂停会改写代理设置的扩展,避免它覆盖系统设置。
- 打开新的浏览器窗口,访问命令行测试时使用的出口查询地址,记录当前结果。
- 同时查看 v2rayN 的访问日志,核对该域名的请求与所选出站。若访问日志未启用,可临时开启,验证完成后恢复原设置。
- 若命中直连规则,记录当前路由模式。必要时临时切到当前版本提供的全局代理模式做对照,测试后恢复原分流规则。
- 最后访问实际需要使用的网站。只有入口、路由和目标访问都符合预期,才算完成首次连接验证。
安卓端在 v2rayNG 选定节点后,点击主界面连接按钮并确认系统 VPN 授权,再做连接测试。仅看到 VPN 状态图标只能说明本地隧道建立,还要确认目标可访问。若开启了分应用代理,应检查浏览器是否包含在代理范围内;v2flyNG 也需要分别核对连接状态与应用范围。
六、首次连接常见问题
真连接能成功,浏览器为什么还是打不开?
先执行显式 SOCKS5 的 curl 命令。若成功,重点检查浏览器独立代理、系统代理与路由规则;若浏览器没有对应访问日志,说明请求很可能尚未进入该核心。不要先修改订阅里的协议参数。
TCP 延迟有结果,真连接却一直超时?
这说明远端 TCP 端口可达,但后续链路未完成。检查测试目标是否可用,再核对系统时间和日志中的 TLS、认证、传输错误。若只是一条节点失败,更新订阅后换另一条对照,不要自行把 VLESS 改成 VMess。
命令提示无法连接 127.0.0.1:10808?
返回「设置」→「参数设置」确认实际端口,再运行端口检查命令。若核心日志提示地址已被使用,处理占用后重启核心。远端节点再稳定,也无法修复本地入口未监听的问题。
网页能打开,是否就代表代理已经生效?
不一定,目标可能原本就能直连。把出口查询结果、核心中的目标请求记录和命中的代理出站放在一起判断。代理图标、节点名称或单次测速数字都不能独立证明浏览器的实际流量路径。
若仍未连通,提交排错信息时列出操作系统、客户端版本、核心名称与版本、入口类型及端口、测试目标、失败时间和相关错误行。版本从客户端「帮助」→「关于」或核心启动日志读取,避免只写“最新版”。这些信息足以让排查从具体失败环节开始,也便于区分本地设置与服务端配置问题。