这份清单适合已经导入节点、v2rayN 内核能够启动,但网页或终端命令仍然连接失败的情况。排查时先确认本地代理端口确实在监听,再分别验证浏览器和命令行工具,最后检查 DNS、路由规则与远端节点;完成后可以明确问题停在应用、系统代理、本地入站还是远端出站。
先建立可复现的本地代理基线
“系统代理已开启”只说明操作系统保存了一组代理地址,不代表 v2rayN 的本地端口正在工作,也不代表每个应用都会读取这组设置。一次有效排查至少要确认三个环节:内核处于运行状态、本地入站端口正在监听、测试应用确实把请求发到了该端口。
以 v2rayN 7.x 的常见配置为例,HTTP 代理可能监听在 127.0.0.1:10809,SOCKS 代理可能监听在 127.0.0.1:10808。这些数字只是常见示例,实际值应以客户端界面中的本地监听设置为准。升级版本、导入备份或手动修改端口后,旧教程中的端口未必仍然适用。
- 在 v2rayN 主界面确认目标节点已设为当前活动服务器,内核状态没有停留在启动失败或反复重启。
- 打开「设置」→「参数设置」,记录本地 HTTP、SOCKS 监听端口以及监听地址。若菜单文字随版本调整,应查找包含“本地端口”或“入站设置”的页面。
- 从托盘菜单选择“设置系统代理”对应的启用状态,不要选成“清除系统代理”或“保持系统代理不变”。切换后关闭并重新打开测试浏览器。
- 暂时选择一个延迟测试能够完成的节点,并将路由切到便于验证的代理模式。基线测试通过后,再恢复原来的分流规则。
浏览器路线:确认系统代理是否真的被读取
多数桌面浏览器默认读取操作系统代理,但浏览器内部仍可能保留独立代理策略、扩展设置或旧进程。修改系统代理后只刷新页面并不总是足够,因为后台进程可能继续使用启动时读取的配置。完整退出浏览器再重新打开,可以排除这类缓存状态。
测试时先使用普通窗口,暂停会改变代理方式的浏览器扩展,并选择一个此前没有打开过的地址。若普通网页能够访问而特定域名失败,说明本地代理链路大概率已经接通,下一步应检查路由命中、DNS 解析与远端目标,而不是反复切换系统代理开关。
| 观察结果 | 更可能的问题位置 | 下一步操作 |
|---|---|---|
| 所有网页立即提示连接被拒绝 | 本地端口未监听或端口填错 | 核对 v2rayN 本地端口,检查内核启动日志 |
| 页面长时间等待后超时 | 节点出站、网络连通或路由规则 | 切换已知可用节点,查看出站超时记录 |
| 一个浏览器可用,另一个不可用 | 浏览器独立代理设置或后台进程 | 选择“使用系统代理”,完整退出后重开 |
| 域名失败,直接访问测试 IP 有响应 | DNS 查询路径或域名规则 | 检查客户端 DNS 设置与域名分流规则 |
| 浏览器可用,终端命令直连失败 | 终端工具没有读取系统代理 | 为当前终端设置代理环境变量 |
结论:浏览器成功不等于所有程序都已接管
浏览器测试通过只能证明“浏览器→系统代理→本地入站→远端出站”这条路线可用。终端、后台服务和自行管理网络连接的程序仍需单独确认代理来源。
浏览器仍然直连时检查什么
- 打开浏览器网络设置,确认选择的是“使用系统代理”,而不是手工填写的旧地址。
- 检查系统代理地址是否为
127.0.0.1,端口是否与 v2rayN 当前 HTTP 端口一致。 - 关闭可能覆盖代理设置的扩展,再用普通窗口重复测试。
- 确认系统时间与时区准确。时间偏差过大会导致 TLS 连接失败,其表现可能被误认为代理失效。
- 查看 v2rayN 运行日志。刷新网页时完全没有新增连接记录,通常说明请求根本没有进入本地代理。
终端路线:用环境变量或显式参数指定代理
命令行终端只是启动程序的容器,它本身不会自动把所有网络连接转交给系统代理。真正决定是否使用代理的是具体工具:有些读取 HTTP_PROXY 与 HTTPS_PROXY,有些只接受命令参数,还有些需要写入自己的配置文件。因此“浏览器能打开,终端却超时”通常不是节点突然失效,而是两者走了不同网络路径。
对于支持 HTTP 代理环境变量的工具,可以先在当前终端会话中临时设置。代理地址中的协议仍写 http://,即使访问目标是 HTTPS 站点,工具也会通过 HTTP 代理建立 CONNECT 隧道。下面继续使用 10809 作为示例,执行前应替换为界面显示的真实端口。
Windows PowerShell 临时设置
$env:HTTP_PROXY="http://127.0.0.1:10809"
$env:HTTPS_PROXY="http://127.0.0.1:10809"
$env:NO_PROXY="localhost,127.0.0.1"
这三行只影响当前 PowerShell 进程及其随后启动的子进程。关闭窗口后设置自然消失,适合排查而不适合长期依赖。查看当前值可执行 $env:HTTPS_PROXY,清除时使用 Remove-Item Env:HTTP_PROXY 与 Remove-Item Env:HTTPS_PROXY。
Windows 命令提示符临时设置
set HTTP_PROXY=http://127.0.0.1:10809
set HTTPS_PROXY=http://127.0.0.1:10809
set NO_PROXY=localhost,127.0.0.1
macOS 与 Linux 当前 Shell 临时设置
export HTTP_PROXY="http://127.0.0.1:10809"
export HTTPS_PROXY="http://127.0.0.1:10809"
export NO_PROXY="localhost,127.0.0.1"
若工具支持 SOCKS5,可以使用显式参数验证 10808 端口。socks5h 中的字母 h 表示让代理端解析目标域名,这对区分“本地 DNS 失败”和“代理链路失败”很有帮助。并非所有程序都读取 ALL_PROXY,所以显式参数通常更适合做第一轮验证。
curl -v --proxy socks5h://127.0.0.1:10808 https://example.com/
curl -v --proxy http://127.0.0.1:10809 https://example.com/
- 显式代理命令成功、普通命令失败:工具没有读取系统代理,应保留命令参数或配置环境变量。
- HTTP 代理成功、SOCKS5 失败:核对 SOCKS 端口和本地入站类型,不要把两个端口互换。
- 两种显式代理都失败:返回 v2rayN 检查监听状态、活动节点与运行日志。
- 命令能连接但下载中途断开:关注远端连接重置、节点稳定性和目标服务限制,不要只检查本地端口。
按真实报错把问题定位到具体一层
终端的详细输出比“无法访问”更有价值。使用 curl -v 时,先看它连接的是不是 127.0.0.1 和预期端口,再看代理是否成功建立到目标站点的隧道。若第一步就失败,问题在本地;若本地连接成功后才超时,问题通常已经移动到路由或出站。
报错:curl: (7) Failed to connect to 127.0.0.1 port 10809
原因与解法:本地 HTTP 端口没有监听,或命令使用了错误端口——打开「设置」→「参数设置」核对端口,确认 v2rayN 内核已成功启动。
报错:curl: (5) Could not resolve proxy: 127.0.0.1:10809
原因与解法:代理变量格式可能写错,工具把整段内容当成代理主机名——将值写成 http://127.0.0.1:10809,并清除多余引号、空格或重复协议头。
报错:Proxy CONNECT aborted
原因与解法:HTTP 代理已收到请求,但隧道没有成功建立——确认端口类型没有填成 SOCKS,再检查 v2rayN 的出站日志和活动节点。
报错:connection refused
原因与解法:目标地址主动拒绝连接——若拒绝地址是 127.0.0.1,检查本地监听;若日志显示远端服务器拒绝,应核对节点地址、端口和协议参数。
报错:context deadline exceeded
原因与解法:请求在限定时间内没有完成——先切换另一条已知可用节点,再分别检查 DNS、网络丢包以及路由是否把目标错误送往直连出站。
运行日志应按什么顺序看
- 入站:执行测试命令时是否出现来自本机的新连接。完全没有记录,说明应用没有走代理或端口写错。
- 路由:目标域名或 IP 被送往代理、直连还是阻断出站。分流模式下,规则命中结果比节点延迟更重要。
- 出站:是否出现连接超时、连接拒绝、域名解析失败或认证参数错误。这里的错误才直接关联远端节点。
- 返回:隧道建立后是否很快被重置。若只有特定目标发生,还需考虑目标服务的连接策略。
浏览器可用但部分命令失败:检查 DNS 与分流
同一域名在浏览器和终端里可能采用不同解析路径。浏览器可能使用自身的安全 DNS 设置,终端工具通常调用操作系统解析器;使用 socks5:// 时可能先在本地解析,使用 socks5h:// 时则把域名交给代理端处理。解析位置不同,得到的地址和路由命中结果也可能不同。
分流规则同样会制造“有的程序能用、有的程序不能用”的表象。V2Ray 或 Xray 内核会依据域名、IP、端口和入站标签选择出站。若目标域名被归入直连规则,即使应用已经连接本地代理,请求仍可能从直连出口离开。此时系统代理没有失效,真正需要修正的是路由判断。
- 先把测试目标换成一个稳定且确认可访问的地址,避免把单个站点故障当成代理故障。
- 使用
socks5h://127.0.0.1:10808与http://127.0.0.1:10809各测试一次,比较是否只有本地解析路线失败。 - 在 v2rayN 路由设置中查看目标域名命中的规则,临时切换到更简单的代理模式进行对照。
- 若只在启用自定义规则后失败,逐条检查域名后缀、IP 网段与规则顺序。靠前的规则可能提前截获请求。
- 修改 DNS 或路由后重启内核,再启动新的终端窗口,避免旧连接和旧环境变量干扰结果。
结论:先判断请求有没有进入本地入站
运行日志没有新连接时,检查应用代理设置;有入站却没有可用出站时,检查路由与节点。用这条分界线排查,比连续更换节点更容易得到稳定结论。
常见问题与恢复方法
完成测试后应把临时修改收拢,避免下一次启动时出现旧变量、旧端口和新配置相互覆盖。尤其是长期写入环境变量的设置,即使 v2rayN 已退出,命令行工具仍会继续尝试连接原来的本地端口,最终表现为持续的连接拒绝。
系统代理开关已启用,浏览器为什么还是直连?
先完整退出浏览器,再确认浏览器网络设置选择“使用系统代理”。刷新页面时同时观察 v2rayN 日志;没有新增入站记录,说明请求仍未进入本地代理。
浏览器正常,为什么 curl 一直超时?
先执行带 --proxy http://127.0.0.1:10809 的命令。显式代理成功后,再为当前终端设置 HTTP_PROXY 与 HTTPS_PROXY。
HTTP 端口和 SOCKS 端口可以混用吗?
不可以。HTTP 客户端要连接 HTTP 入站,SOCKS5 客户端要连接 SOCKS 入站。若示例端口分别为 10809 和 10808,填写时还要以客户端实际设置为准。
关闭 v2rayN 后终端无法联网怎么办?
清除当前会话或系统中保存的代理环境变量,再打开新终端。若工具还有独立代理配置,也要删除指向 127.0.0.1 旧端口的条目。
只有一个域名打不开,需要重装客户端吗?
通常不需要。先查看该域名的 DNS 结果和路由命中,再用简单代理模式对照。其他目标正常时,本地监听和基础代理链路一般已经可用。
排查结束后的收尾清单
- 把临时切换的全局代理模式恢复为原来的路由分流设置。
- 清除仅用于测试的
HTTP_PROXY、HTTPS_PROXY或ALL_PROXY环境变量。 - 确认系统代理端口仍与 v2rayN 当前本地 HTTP 端口一致。
- 保存一份有效节点、端口号、测试命令和关键报错的文字记录,下次可以直接从失败层继续检查。
- 若更换节点后恢复,继续观察一段时间,区分短暂网络波动与节点配置错误。