客户端显示「已连接」,浏览器里的目标站点却依旧打不开;或者页面能打开,但查询出口地址时显示的仍是本地运营商的归属地。这类情况在排查记录里出现频率很高,而且多数不是线路故障,而是流量根本没有走进隧道。判断 VPN 是否真的生效,不能看界面上的连接状态,要看两个可验证的指标:出口 IP 有没有换、DNS 解析有没有跟着换。

本文给出三步验证法:查出口 IP、查 DNS 泄漏、分应用对比测试,并拆解六种「看起来连上了其实没走」的典型情况与对应修法。整套流程覆盖 Windows、macOS、iOS、Android 与 Linux,不需要安装额外的检测工具,用到的都是浏览器页面和系统自带命令。

2 必查项:出口 IP 与 DNS 解析器归属地
3 验证步骤:查 IP → 查 DNS → 分应用对比
1 判断标准:出口地址改变才算生效

为什么「已连接」不等于已生效

客户端里的连接状态,只说明客户端进程与线路入口之间的握手成功了,它不保证系统里其他程序的流量会走这条隧道。真正决定「生效」的是接管层级:客户端用哪种方式把流量导向隧道,以及 DNS 与 IPv6 有没有被一并接管。

接管层级:扩展、系统代理与 TUN

接管方式覆盖范围典型失效表现
浏览器扩展 / 单应用代理 装了扩展的浏览器,或单独配置过代理的应用 其他软件查询出口 IP 时仍是本地地址
系统代理(PAC / 手动设置) 读取系统代理设置的 HTTP(S) 应用 命令行工具、UDP 类应用、部分桌面软件直接绕过
TUN / 虚拟网卡接管 系统级路由,通常同时覆盖 IPv4 与 IPv6 分流规则命中「直连」;IPv6 未接管时仍走本地

三种方式没有绝对优劣。系统代理部署轻、对系统改动小,但覆盖面窄,只对读取系统代理设置的应用有效;TUN 接管覆盖面广,代价是需要更高权限:Windows 上要安装虚拟网卡驱动,macOS 与 Linux 上要授权网络扩展或以相应权限运行。如果你的目标是让所有程序都走线路,应先确认客户端处于 TUN / 全局接管模式,而不是系统代理模式。

另一个常被忽略的层面是 DNS。即使流量已经走进隧道,解析请求仍可能发给本地网络下发的解析器,拿到被就近调度或被替换的结果,表现就是「连上了,但域名打不开,或者打开的是另一个区域的版本」。所以验证必须同时看 IP 和 DNS,缺一不可。

第一步:查出口 IP,看流量有没有换出口

这一步的目标很简单:拿到连接前后的两个出口地址做对比。按下面的顺序做一遍,基本就能定性。

  1. 断开客户端,先测一次,记录出口 IP、归属地与运营商(ASN)。
  2. 连接客户端,确认当前使用的是哪条线路、哪个地区。
  3. 用同一个查询服务再测一次,对比 IP 与归属地是否发生变化。
  4. 单独查一次 IPv6 出口。IPv6 常被忽略,它是「连上却没走」的高发区。
  5. 换一个查询服务复测一次,排除页面缓存造成的误判。

查询服务本身也可能受 CDN 影响:部分查询站点走 CDN,返回的归属地是 CDN 节点所在位置,而不是你的真实出口。遇到「IP 变了但归属地看着不对」的情况,换一个查询服务,或者直接看 ASN 字段再判断。

# 当前出口 IPv4
curl -4 -s https://api.ipify.org

# 当前出口 IPv6(没有输出通常说明本机没有 IPv6 出口)
curl -6 -s https://api.ipify.org

# 带归属地与 ASN 的查询
curl -s https://ipinfo.io/json

判断标准只有一条:出口 IP 变了,才算流量真的走了线路。客户端里的连接状态、实时速率、延迟读数都不能替代这一步。

第二步:检查 DNS 泄漏,确认解析也走了线路

DNS 查询发生在建立连接之前。如果解析请求发给了本地网络下发的解析器,那么即使后续流量走了隧道,你也可能拿到被就近调度或被替换的解析结果,表现为「连上了但打不开」「打开的是错误区域版本」「时快时慢」。这类情况通常被统称为 DNS 泄漏,它和线路质量无关,属于接管范围的问题。

DNS 检测结果怎么读

检测页会列出本次解析使用的解析器 IP、归属地与运营商。判断方法:解析器归属地应与线路出口一致,或至少属于同一服务商网络。如果显示的是你本地宽带或移动网络的运营商名称,那就是泄漏;如果解析器地址与出口 IP 同网段或同 ASN,属于正常。

浏览器自带的加密 DNS(DNS over HTTPS)会绕过系统 DNS 设置,检测页可能显示浏览器自己的解析器。这不算泄漏,但它同样绕过了线路侧的解析策略;排查时先在浏览器里关掉「安全 DNS」,再重新检测。

处理方式按优先级排列:

# Windows:查看系统当前使用的 DNS 服务器
ipconfig /all

# macOS:查看系统解析器配置
scutil --dns

# Linux:查看当前解析配置
cat /etc/resolv.conf

# 返回的地址就是解析器出口,可与出口 IP 对比
nslookup whoami.akamai.net

第三步:分应用、分场景对比测试

出口 IP 和 DNS 都对,仍然可能有个别应用不走线路。这一步的目标是把「哪个应用没走」定位出来,而不是笼统地归因于线路。

  1. 浏览器:用无痕窗口或清一次缓存后访问目标站点,记录结果。
  2. 命令行:用 curl 查出口 IP,与浏览器结果对比。命令行工具默认不读系统代理,需要显式设置 http_proxy / https_proxy 环境变量,或者依赖 TUN 接管。
  3. 桌面应用:在客户端的分应用代理列表里确认该应用被标记为走线路;以 UDP 为主的软件在系统代理模式下通常不会被代理。
  4. 移动端:Android 上确认 VPN 权限已授予、客户端在省电白名单里;iOS 上确认 VPN 配置处于已连接状态,没有被按需连接规则提前断开。
  5. 交叉验证:在同一账号的另一台设备上复测。VPNDX 不限台数同时在线,换设备复测不需要额外操作。

按平台差异逐项确认

排查时不要同时改动多个设置项。一次只改一项:先换接管模式,再动 DNS,最后看分应用列表。否则即使问题消失了,也无法判断是哪一步起了作用,下次复现仍然要从头再来。

六种典型「连上却没走」的情况与修法

把上面三步的结果对照下表,基本可以直接定位到原因。

现象可能原因处理方式
出口 IP 与断开时完全一样 客户端处于系统代理模式,当前软件不读系统代理 切换到 TUN / 全局接管模式,或在应用内单独填写代理地址
浏览器出口变了,命令行没变 只有浏览器读取了系统代理 同上;确认是否需要全局接管,而不是逐个应用配置
IPv4 走了线路,IPv6 还是本地 客户端未接管 IPv6 路由 在客户端开启 IPv6 接管,或在客户端 / 路由器侧关闭 IPv6
出口 IP 正常,域名打不开或解析异常 DNS 仍由本地解析器处理 开启客户端 DNS 接管,检查浏览器加密 DNS 设置
只有某个应用不走线路 分应用代理列表没把该应用列为走线路 把应用加入走线路列表,或改用全局接管模式
换到另一个网络后失效 网络切换后路由与代理设置未重建 断开重连客户端;必要时重启客户端进程再测

六种情况里,前四种可以用同一套动作解决:把接管层级从系统代理换成 TUN,并确认 DNS 与 IPv6 一并被接管;剩下两种属于配置遗漏,逐项核对即可。

什么时候必须重新验证

三步验证不是一次性动作。下面这些时点之后,接管状态可能已经变化,建议重新走一遍。

三步验证通过后,把当时的出口 IP 与解析器地址记下来作为基线。下次出现访问异常时,只要对比这两个值,就能立刻分清是本地接管失效,还是线路侧发生了变化。

把出口 IP 查询页加入书签,三步走完通常不超过两分钟。多数「线路故障」在这一步就能定性:是本地接管没生效,还是线路侧确实异常。VPNDX 提供 120+ 国家 / 220+ 线路,涵盖 IEPL 专线与中转、直连线路,不限台数同时在线,客户端覆盖 Windows、macOS、iOS、Android、Linux,使用军工级加密,注册无需邮箱地址,支持支付宝、微信与 USDT 付款,并提供 30 天无理由退款。站内线路页可以查看线路状态,与本地验证结果对照,能更快判断问题出在哪一端。

先验证本地,再怀疑线路。出口 IP、DNS 解析器、分应用三条全部通过,才说明流量确实走了线路;任何一条不通过,问题都在本地接管环节,换线路不会解决。