适合 v2rayN 已启动、节点已选中,但浏览器仍然超时的情况。先用显式代理请求判断本地入口和节点链路,再检查系统代理、DNS、分流规则与 TLS 时间条件;安卓端另查 VPN 授权和应用分流。每次只改一项,保留测试结果,避免同时更换节点、端口和解析设置后失去判断依据。
1. 先区分“已启动”和“能访问”
客户端出现运行图标、内核日志开始输出,通常只说明本地进程已经启动。延迟测试成功也不等于目标网站可访问:TCP 探测、真实 HTTP 请求和浏览器访问检查的是不同环节。V2Ray/Xray 是内核,v2rayN 是配置与管理界面,浏览器还需要把请求交给正确的本地入口。
先记录当前节点、路由模式、系统代理状态和本地监听端口,再选一个平时可访问的 HTTPS 页面测试。下面三个端口数字用于说明各自职责,不代表所有版本的默认值。以「设置」→「参数设置」内的实际端口,以及启动日志中的监听地址为准。
- 所有网页都失败:优先检查本地监听、系统代理和节点连通性。
- 只有部分域名失败:优先检查路由命中、DNS 结果及目标网站自身状态。
- 浏览器可用,某个程序不可用:确认该程序是否遵循系统代理,而不是立即更换协议。
- 关闭客户端后也无法上网:先检查系统是否仍保留指向本地端口的手动代理。
2. 用显式代理请求定位故障层
显式指定代理能绕开“浏览器到底有没有使用系统代理”的疑问。以下命令在 Windows PowerShell 中执行,使用 curl.exe 避免同名命令别名干扰。示例请求 https://example.com/;也可换成你确认能访问的页面。10 秒是连接等待上限,20 秒是整次请求上限,不是速度测量结果。
# 先检查本文示例端口是否处于监听状态
Get-NetTCPConnection -State Listen -LocalPort 10808,10809 -ErrorAction SilentlyContinue
# 仅在 10808 确认为 SOCKS 或混合入口时执行
curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -v -o NUL https://example.com/
# 仅在 10809 确认为 HTTP 或混合入口时执行
curl.exe --proxy http://127.0.0.1:10809 --connect-timeout 10 --max-time 20 -v -o NUL https://example.com/
如果当前版本只使用一个混合端口,应将两条命令都改为那个实际端口;不要为了照抄示例额外开启监听。socks5h 会把目标域名交给代理端处理,但内核仍可能依据路由策略进行解析,因此成功或失败都需要结合日志判断。
| 测试结果 | 说明 | 下一步 |
|---|---|---|
| 立即拒绝本地连接 | 本地入口未监听,或端口填错 | 检查内核启动日志与端口占用 |
| 代理请求收到目标 HTTP 响应 | 这次请求已走通代理链路 | 检查浏览器和系统代理 |
| 出现 CONNECT 200 后仍失败 | 只建立了 HTTP 代理隧道 | 继续看 TLS 握手和后续响应 |
| 本地接入成功,随后超时 | 问题可能在节点、解析或出站路由 | 对照同一时间的内核日志 |
结论:显式请求成功后,先查代理入口
若同一目标通过显式代理能返回页面,而浏览器失败,先修正系统代理和浏览器独立代理设置;此时更换 VMess、VLESS 或传输方式通常不是有效的第一步。
3. 对齐系统代理与本地监听端口
Windows 系统代理主要服务于遵循该设置的程序,不会自动接管所有流量。浏览器扩展、程序自带代理和终端环境变量都可能覆盖它。排查时先退出其他会改写代理的程序,并暂时关闭 TUN,保留一种接管方式;若当前网络依赖其他 VPN 才能访问内网,应先保存工作并确认影响范围。
-
核对监听
在 v2rayN「设置」→「参数设置」查看本地监听端口。不同版本可能标为 SOCKS、HTTP 或混合端口;修改后重启内核,确认日志没有启动失败。
-
设置代理
在 v2rayN 主界面的「系统代理」菜单选择「自动配置系统代理」。不要把「清除系统代理」理解为仍会代理浏览器流量。
-
检查系统
打开 Windows「设置」→「网络和 Internet」→「代理」→「手动设置代理」。地址通常应是
127.0.0.1,端口应对应 HTTP 或混合入口,而非只支持 SOCKS 的入口。 -
排除覆盖
暂时停用浏览器代理扩展;若浏览器提供独立网络设置,选择使用系统代理。关闭并重新打开测试页面,再对比显式代理命令结果。
如果程序自己支持 SOCKS5,可以在该程序中填写实际 SOCKS 端口。不要把节点服务器地址和远端端口填入 Windows 手动代理;这里需要的是本机入口,不是订阅中的服务器参数。netsh winhttp show proxy 查看的是 WinHTTP 代理,不能单独用来证明浏览器系统代理是否正确。
4. 分开检查系统 DNS 与内核 DNS
DNS 故障至少分为两类:节点服务器域名无法解析,以及目标网站域名无法解析。前者会让内核连节点都失败;后者可能只影响某些网站。浏览器的安全 DNS、Windows 的 DNS、内核 DNS 不一定使用同一条路径,所以一次 nslookup 成功不能证明代理内的解析也成功。
# 查看系统解析器对测试域名的回答
nslookup example.com
# Windows:在修改系统 DNS 后清理系统缓存
ipconfig /flushdns
# 与上面的 socks5h 测试对照:此命令先在本机解析目标域名
curl.exe --proxy socks5://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -v -o NUL https://example.com/
- 本机解析失败,交给代理处理域名却成功:先检查系统 DNS 地址和网络可达性,不要直接重置节点。
- 日志提示节点域名解析失败:确认节点地址没有多余空格,检查用于解析节点地址的 DNS 是否需要一个尚未建立的代理,避免启动依赖形成循环。
- 只有浏览器失败:临时关闭浏览器自定义安全 DNS,改用系统解析后复测;测试完成再决定是否恢复。
- 修改后结果不变:清理系统缓存、重启浏览器和内核。系统缓存清理不会自动清除浏览器或内核各自的缓存。
5. 检查路由规则是否把请求送错出口
v2rayN 的「系统代理」决定程序怎样进入本地代理,「路由」决定内核收到请求后怎样选择出站。两者不是同一个开关。即使浏览器确实使用了本地端口,目标域名仍可能被直连规则或阻断规则命中。
记录当前路由方案,在主界面「路由」菜单中临时选择将目标请求交给代理出站的测试方案。不同版本的方案名称可能不同,应查看规则内容,不要仅凭“全局”两个字判断。保留必要的局域网访问规则,测试结束恢复原方案。
| 现象 | 重点核对 | 验证方式 |
|---|---|---|
| 切换测试路由后恢复 | 域名规则、IP 规则和规则顺序 | 恢复原方案,逐条停用可疑自定义规则 |
| 日志显示走 direct | 目标是否被直连规则命中 | 确认该日志对应当前测试请求 |
| 日志显示走 block | 广告或自定义阻断规则 | 只为确认误判的域名调整规则 |
| 走代理仍然超时 | 节点链路、服务端和协议参数 | 保持路由不变,换一个已知可用节点对照 |
若日志级别不够,临时提高日志详细程度再重现一次即可,排查完成后恢复。分享日志时遮住订阅地址、UUID、令牌和服务器敏感信息。VMess、VLESS 的认证信息、传输类型、TLS 的服务器名称以及 REALITY 所需参数必须与服务端配套,不能靠随意切换协议修复。
6. 按报错原文检查端口、时间与 TLS
出现报错时,记录时间点,并保留报错前后几行。下面的片段来自常见系统或网络错误表达,实际日志会附带目标地址和更多上下文;不要只看最后一个“失败”就认定是 DNS。
报错:Address already in use
原因:计划绑定的本地地址或端口已被占用。解法:查看占用进程,退出重复启动的客户端,或修改监听端口后同步更新系统代理;不要直接结束不认识的系统进程。
报错:Connection refused
原因:目标端口拒绝连接,可能发生在本地入口,也可能发生在远端。解法:先看报错地址;若是 127.0.0.1,检查监听,若是节点地址,则核对远端端口和服务状态。
报错:no such host
原因:相关域名解析失败。解法:确认报错域名属于节点还是目标网站,再分别检查节点地址解析与内核目标域名解析,不要同时替换所有 DNS 设置。
报错:x509: certificate has expired or is not yet valid
原因:系统时间不准确,或服务端证书确实不在有效期内。解法:先同步系统时间;时间正确仍报错时,联系服务提供方处理证书,不要关闭验证。
Windows 可在「设置」→「时间和语言」→「日期和时间」中开启自动设置时间,并点击「立即同步」。同时检查日期、年份和时区;时区显示错误不一定代表内部时钟错误,但手动改时间可能造成实际偏差。准确时间既影响 TLS 证书判断,也对使用时间校验的认证流程很重要。
- 证书名称不匹配:检查 TLS 的服务器名称是否与服务端要求一致,不要擅自改成节点 IP。
- 单个节点持续超时:核对订阅是否过期、流量是否用完,以及服务端是否可用。
- 所有节点同时失败:回到本地入口、基础网络和防火墙规则检查,不要批量修改节点参数。
7. 安卓与常见边界情况
v2rayNG 使用 Xray 内核,v2flyNG 使用 v2fly 内核。安卓客户端建立 VPN 接口后,通知栏图标只能证明 VPN 服务存在,不能证明每个应用都被接管。先确认系统 VPN 授权,再检查客户端的应用分流名单;系统设置名称可能随设备厂商调整。
v2rayNG 有 VPN 图标,浏览器还是不通?
打开 v2rayNG「设置」→「分应用代理」,确认浏览器是否被排除,并核对名单当前表示“代理所选应用”还是“绕过所选应用”。记录原设置后临时关闭分应用代理,重连再测同一页面。
电脑浏览器能用,终端命令却不走代理?
终端工具不一定读取 Windows 系统代理。先使用本文的 curl.exe --proxy 显式测试,再检查工具自己的代理参数,以及 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 环境变量是否残留旧端口。
开启 TUN 后才出现断网,怎么恢复?
先关闭 TUN,退回本地监听加系统代理的基线测试。若恢复,重点检查虚拟网卡、DNS 接管和其他 VPN 的路由冲突;不要同时打开多套流量接管方案来叠加测试。
退出 v2rayN 后,普通网页也打不开?
重新启动客户端,在「系统代理」中选择「清除系统代理」,再退出。若无法启动,进入 Windows「设置」→「网络和 Internet」→「代理」,关闭残留的手动代理;单位管理的代理应先咨询管理员。
在安卓上还应检查系统「设置」→「网络和互联网」→「VPN」中是否存在另一条正在接管流量的连接,以及“始终开启的 VPN”“阻止未使用 VPN 的连接”是否导致断开后仍无法访问。若只在熄屏后失效,再检查电池优化;这与一启动就打不开网页属于不同问题。
- 重新测试最初失败的同一个页面,避免把网站差异误认为设置已修复。
- 恢复临时修改的日志级别、测试路由和浏览器 DNS 选项。
- 若仍失败,整理客户端版本、系统版本、实际端口、显式代理测试结果及脱敏日志,再寻求支持。