系统代理不生效怎么办:浏览器与命令行终端分开排查

开了系统代理但流量没走客户端?浏览器与终端遵循代理设置的机制不同,本文按两条路径分别给出检查顺序与对应修法。

本文速览

本文适合 v2rayN 已显示节点连接正常、系统代理也已经开启,但浏览器或命令行仍然直连、超时或无法访问的情况。排查重点分为三层:先确认本地代理端口确实监听,再判断应用是否读取系统代理,最后检查 DNS、路由规则与终端环境变量。完成这些步骤后,可以明确问题发生在客户端、本机代理设置还是具体应用内部。

先分清系统代理影响哪些流量

“启动了 v2rayN”和“应用流量已经进入代理”是两件事。v2rayN 运行 Xray 内核后,会在本机回环地址上建立 SOCKS、HTTP 或混合入站端口;系统代理则把其中一个端口写入操作系统设置。只有主动读取该设置的应用,才会把请求交给本地端口。节点显示已连接,只能说明客户端具备出站条件,不能证明浏览器、终端或其他程序已经使用它。

以 v2rayN 7.x 的常见配置为例,本地 SOCKS 端口可见为 127.0.0.1:10808,HTTP 端口可见为 127.0.0.1:10809。实际端口应以「设置」→「参数设置」中的本地监听配置为准;如果改过起始端口,测试命令也要同步修改。把 HTTP 请求发到 SOCKS 端口,或把 SOCKS 地址写成 HTTP 地址,都会表现为连接失败。

应用发起请求读取代理设置连接本地端口规则匹配分流节点代理出站
应用类型 通常读取的设置 首先检查的位置
Chromium 系浏览器 通常跟随 Windows 系统代理,但可能受企业策略或浏览器扩展影响 系统「网络和 Internet」→「代理」
Firefox 可选择系统代理,也可保存独立代理配置 浏览器「设置」→「网络设置」
PowerShell、curl、包管理工具 依工具实现读取环境变量或命令参数,不应假定自动跟随系统设置 HTTP_PROXYHTTPS_PROXY 与工具配置
v2rayNG、v2flyNG 在 Android 上通过系统 VPN 服务接管所选应用流量 应用代理开关、分应用设置与路由规则

结论:先判断应用有没有进入本地端口

只要浏览器与终端的结果不同,就优先检查两者各自的代理入口,不要反复更换同一个节点。节点、订阅和协议参数完全相同时,应用是否读取代理设置才是最常见的分界线。

先验证 v2rayN 本地端口是否可用

开始检查浏览器之前,应先排除客户端端口未监听、端口被占用或内核没有成功启动。将 v2rayN 切换到准备使用的节点,查看主界面或运行日志是否出现启动成功信息,再核对当前 Core 类型。VMess、VLESS 等节点参数由核心处理,系统代理本身不会修正服务器地址、端口、传输层或用户标识填写错误。

  1. 确认核心启动

    在 v2rayN 主界面选中节点并设为活动服务器,打开运行日志。正常情况下会看到核心启动与本地入站监听信息;如果窗口持续显示重启或退出,应先处理日志中的配置错误。

  2. 核对监听端口

    进入「设置」→「参数设置」,记录本地 SOCKS 与 HTTP 端口。本文示例使用 SOCKS 10808、HTTP 10809,不要直接套用与界面不一致的数字。

  3. 设置系统代理

    打开 v2rayN 的「系统代理」菜单,选择自动配置系统代理。随后进入 Windows「设置」→「网络和 Internet」→「代理」,确认地址指向 127.0.0.1,端口与客户端当前 HTTP 监听一致。

  4. 测试回环连接

    在 PowerShell 中执行 Test-NetConnection 127.0.0.1 -Port 10809。结果中的 TcpTestSucceeded 应为 True;若为 False,问题仍在本地监听或端口占用。

  5. 做显式代理测试

    执行 curl.exe --proxy http://127.0.0.1:10809 -I https://example.com。一次正常的本机测试中,回环建连时间通常低于 0.01 秒;远端响应耗时则取决于节点线路。

报错: curl: (7) Failed to connect to 127.0.0.1 port 10809

原因与解法:指定端口没有程序监听,常见原因是核心未启动、HTTP 端口填写错误或端口已被其他程序占用。回到「设置」→「参数设置」核对端口,重启核心后再次测试。

报错: failed to start app/proxyman/inbound: failed to listen TCP

原因与解法:本地监听端口发生冲突。关闭占用该端口的程序,或在参数设置中改用未占用端口,例如将 HTTP 端口由 10809 调整为 10909,然后让系统代理同步到新端口。

节点延迟测试可能通过客户端内部请求完成,即使系统代理地址写错也能得到结果。排查系统代理必须直接测试 127.0.0.1 的实际监听端口,并用显式代理请求确认数据可以经过核心。

浏览器不走代理的检查顺序

如果显式 curl 代理请求成功,而浏览器访问仍然直连,说明节点和本地端口大概率可用,下一步应聚焦浏览器读取代理设置的方式。先完全退出浏览器再重新打开,避免旧进程保留连接池或启动时读取的代理状态。仅关闭一个标签页通常不足以重建所有网络进程。

Chromium 系浏览器通常调用 Windows 系统代理,但独立代理扩展、受管理策略和启动参数可能覆盖系统设置。Firefox 则可以在自己的网络设置中选择“不使用代理”“使用系统代理设置”或“手动代理配置”。若只在 Firefox 中失败,应进入「设置」→「常规」→「网络设置」,选择使用系统代理,或者按 v2rayN 当前端口填写 HTTP 与 SOCKS 地址。

  • 确认系统手动代理地址是 127.0.0.1,而不是已经失效的局域网地址。
  • 确认端口与 v2rayN 当前配置一致,尤其注意切换配置目录后端口可能恢复默认值。
  • 暂时停用会改写代理规则的浏览器扩展,再重启整个浏览器进程测试。
  • 检查 Windows 代理设置中的例外列表,目标域名若被加入绕过清单,会直接连接。
  • 分别测试普通窗口与隐私窗口;结果不同通常说明扩展权限或浏览器配置文件存在差异。
  • 不要用已经缓存的单个页面判断结果,可打开开发者工具并测试一个新的 HTTPS 请求。

报错: ERR_PROXY_CONNECTION_FAILED

原因与解法:浏览器已经尝试使用代理,但无法连接配置中的本地地址。核对 Windows 系统代理端口与 v2rayN HTTP 监听端口,并确认核心进程仍在运行。

报错: ERR_TUNNEL_CONNECTION_FAILED

原因与解法:浏览器连到了 HTTP 代理,但 HTTPS 隧道未能建立。先用同一端口执行显式 curl 请求,再查看运行日志中是否存在节点超时、TLS 参数错误或路由阻断。

报错: PR_CONNECT_RESET_ERROR

原因与解法:连接在建立过程中被重置,不能只凭该提示判断系统代理失效。将 Firefox 改为使用系统代理后重试,并对照 v2rayN 日志确认请求是否进入核心。

为什么一个浏览器能打开,另一个打不开?

先比较两者的代理来源。一个可能跟随 Windows 系统代理,另一个保存了手动端口。将独立配置改为 127.0.0.1 与当前 HTTP 端口,彻底退出两个浏览器后再测。

关闭扩展后还是显示直连怎么办?

检查浏览器快捷方式是否附带代理启动参数,并查看系统代理例外列表。随后执行显式 curl 代理测试;显式测试成功而浏览器失败时,应继续排查浏览器策略与配置文件。

开了系统代理后局域网页面打不开?

在系统代理的绕过列表中保留本地地址,或在 v2rayN 路由规则中让私有地址直连。常见私有网段包括 10.0.0.0/8172.16.0.0/12192.168.0.0/16

浏览器重启后代理又消失了?

检查 v2rayN 的系统代理模式是否为“不改变系统代理”,并确认退出客户端时是否清除了系统设置。需要常态使用时,在客户端启动后重新选择自动配置系统代理。

命令行终端要单独配置代理

命令行工具不能统一视为“自动读取系统代理”。同一个终端中,curl、PowerShell 模块、运行时包管理器和独立下载程序可能采用不同策略。最可靠的验证方法是先给单条命令显式传入代理地址,再决定是否设置当前会话的环境变量。这样可以避免把工具配置问题误判为 v2rayN 节点故障。

HTTP 代理地址应使用 v2rayN 的 HTTP 监听端口,例如 http://127.0.0.1:10809。需要使用 SOCKS 时,可写成 socks5h://127.0.0.1:10808;其中 socks5h 表示让代理端解析目标域名,可减少本地 DNS 解析与代理出站结果不一致的问题。具体工具是否支持该写法,应以命令自身的代理参数为准。

# 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"

# 显式测试 HTTP 代理
curl.exe --proxy http://127.0.0.1:10809 -I https://example.com

# 显式测试 SOCKS,并让代理端解析域名
curl.exe --proxy socks5h://127.0.0.1:10808 -I https://example.com
:: 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
现象 判断 处理方式
浏览器成功,curl 直连 curl 没有采用系统代理 使用 --proxy 或设置当前会话环境变量
显式 HTTP 代理成功,环境变量失败 变量名、作用域或工具读取规则有误 同时设置大写与工具要求的变量,重启对应终端进程
HTTP 端口失败,SOCKS 端口成功 HTTP 入站端口错误或未监听 核对参数设置,不要把 1080810809 混用
本机地址也被代理 缺少绕过配置 设置 NO_PROXY=localhost,127.0.0.1

报错: curl: (5) Could not resolve proxy: 127.0.0.1:10809

原因与解法:代理变量格式可能被写错,例如把地址与协议拆成了不可识别的值。将变量完整写为 http://127.0.0.1:10809,清除多余引号与空格后重开终端。

报错: curl: (97) connection to proxy closed

原因与解法:常见于代理协议与端口类型不匹配。HTTP 地址应连接 HTTP 端口,SOCKS 地址应连接 SOCKS 端口;核对后再分别执行两条显式测试命令。

结论:终端排查以显式参数为基准

单条带 --proxy 的命令成功,说明本地端口与节点链路已经可用。此后应修正环境变量或具体工具配置,而不是继续切换订阅、协议或路由规则。

端口正常仍无法访问时检查 DNS 与路由

本地端口可连接,只能证明应用成功到达代理入口。请求进入 Xray 后,还会经过域名解析、路由匹配和代理出站。若规则把目标域名送往直连出口,外部观察结果仍可能显示本地网络;若节点服务器域名解析失败,则所有经该节点转发的请求都可能超时。此时应在复现问题的同时观察运行日志,而不是只看浏览器错误页。

先把测试范围缩小到一个节点、一个浏览器和一个显式 curl 命令。临时停用复杂的自定义路由,保留私有地址直连,其余测试请求交给代理出站。如果这样恢复,问题通常位于规则顺序、域名集合或出站标签;如果仍失败,则检查订阅中的服务器地址、端口、VMess 或 VLESS 用户参数、TLS 与传输方式是否和服务端一致。

  1. 在 v2rayN 运行日志中找到测试时间点,确认能看到目标域名或目标地址。
  2. 看到请求但显示直连时,检查路由规则命中的出站标签与规则优先级。
  3. 看到 timeout 时,区分连接节点服务器超时和连接最终目标超时。
  4. 看到域名解析失败时,核对节点服务器地址拼写,并切换到可用 DNS 后重启核心。
  5. 完全看不到请求时,返回应用代理设置继续排查,不要先修改节点协议参数。

报错: failed to find an available destination

原因与解法:核心没有得到可用的目标地址,可能是域名解析失败或路由结果不可用。检查节点服务器地址拼写、DNS 配置与路由出站标签,修改后重启核心。

报错: dial tcp: i/o timeout

原因与解法:到节点服务器或最终目标的 TCP 连接超过等待时间。先换同订阅中的另一个节点做对照,再核对服务器端口、本机时间和网络是否允许该连接。

报错: invalid user

原因与解法:节点身份参数未被服务端接受,常见于订阅内容过期或手动编辑时填错用户标识。这与系统代理开关无关,应更新对应订阅分组并重新选择节点。

系统代理依赖应用主动读取代理设置,TUN 模式则通过虚拟网卡接管更广范围的 IP 流量。浏览器与终端问题可以先用系统代理和显式端口完成定位;只有明确遇到不支持代理配置的应用时,再评估是否启用 TUN,并同步检查管理员权限、DNS 与路由规则。

按结果选择对应修法

排查结束后,不必同时修改所有设置。最有效的方法是保留一个已知可用节点,以测试结果决定下一步:回环端口失败就处理核心与端口;显式代理成功但浏览器失败就处理浏览器代理来源;浏览器成功但终端失败就处理命令参数和环境变量;所有应用都能进入日志但出站失败,再检查 DNS、路由与节点配置。

改完端口后系统代理还是旧数字?

先在 v2rayN 的「系统代理」菜单中清除系统代理,再重新选择自动配置。随后到 Windows「设置」→「网络和 Internet」→「代理」确认新端口已经写入。

退出 v2rayN 后浏览器全部打不开?

系统仍可能保留指向本地端口的代理设置,而客户端已经停止监听。重新启动客户端,或在系统代理菜单中执行清除,再确认 Windows 手动代理已关闭。

只有终端里的某个工具不工作?

先查该工具是否支持 HTTP_PROXYHTTPS_PROXY 或独立代理参数。用 curl 显式代理成功后,问题已经缩小到该工具自身配置,不需要重装 v2rayN。

更新订阅后突然全部超时?

手动更新对应订阅分组,重新选择节点并检查运行日志。若本地端口仍可连接但多个节点同时超时,应对照订阅参数、系统时间与当前网络环境。

Android 上也要设置 127.0.0.1 端口吗?

通常不需要照搬桌面系统代理步骤。v2rayNG 与 v2flyNG 通过 Android 的 VPN 服务接管流量,应检查应用连接状态、分应用代理、路由模式与运行日志。

最终判断:用三次测试锁定故障层

依次执行本地端口测试、显式代理请求和应用内访问。前一步失败就停在该层修复,前两步成功而第三步失败时只检查具体应用。这个顺序能避免在端口错误时反复改路由,也能避免在终端未设置代理时误删可用节点。

下载客户端 查看四平台版本