先把结论放在前面:验证 VPN 是否生效,不需要任何专业工具,只需要按顺序确认三件事——外部站点看到的出口 IP 变了没有、域名解析由谁完成、目标应用的实际流量走了哪条路。三步里任何一步没走线路,就不能算生效,哪怕客户端界面一直显示「已连接」。
客户端显示「已连接」只是本机状态
点下连接按钮之后,客户端界面会立刻变成「已连接」。这个状态说明的是本机进程已经加载配置、和线路对端建立了会话,它并不等于你的流量真的从那条线路出去了。中间还隔着两个环节:系统有没有把流量交给隧道,以及域名解析是不是也跟着走了。
把「生效」拆成三层来看,问题会清楚很多:
- 本机状态:进程在运行,界面显示已连接,没有报错提示。
- 隧道接管:虚拟网卡或系统代理设置把目标流量送进隧道,而不是从本地网卡直接出去。
- 出口与解析:外部站点看到的来源地址是线路出口,域名解析也由隧道一侧完成。
三层里任何一层没接上,都会出现「客户端说连上了,实际没走线路」的情况。客户端的工作模式决定了接管范围:系统代理模式只作用于读取系统代理设置的程序,多数浏览器在列,但命令行工具和一些自带网络栈的应用不一定在;虚拟网卡模式接管整机流量,或者按分流规则接管指定流量,覆盖面更完整,也是后面三步验证能对得上的前提。
| 验证层级 | 看什么 | 通过标准 | 常见误判 |
|---|---|---|---|
| 本机状态 | 客户端进程与连接角标 | 显示已连接、无报错 | 把「已连接」当成整条链路都正常 |
| 隧道接管 | 路由表与虚拟网卡 | 存在指向隧道的默认路由,或规则命中目标流量 | 系统代理模式下只有浏览器走了代理 |
| 出口 IP | 外部回显的地址与归属地 | 与所选线路所在地区一致 | 只测了浏览器,没测其他程序 |
| DNS 解析 | 解析请求由谁发出 | 解析器归属与出口地区一致 | 出口变了,解析仍由本地递归解析器完成 |
| 分应用 | 目标程序的实际出口 | 该走线路的应用确实走了线路 | 分流规则只匹配了域名,漏掉进程或 UDP 流量 |
第一步:查出口 IP,确认流量从哪出去
出口 IP 是最直接、也最不容易自欺的一项:外部站点看到的来源地址,要么是你的本地网络,要么是线路出口,两者不会含糊。测之前先断开连接记录一次基线,再连接线路复测一次,两次结果对比即可。
浏览器打开回显类页面可以快速看到结果,但浏览器可能装了代理类扩展,也可能缓存了上一次的响应。要更干净,用命令行查询,它不受浏览器设置影响:
# macOS / Linux
curl -4 https://api.ipify.org
curl -6 https://api64.ipify.org
# Windows PowerShell
Invoke-RestMethod -Uri "https://api.ipify.org?format=json"
完整的操作顺序是:
- 断开连接,记录本地出口 IP、归属地与运营商(ASN),作为基线。
- 连接线路,重新查询,确认地址与归属地都发生了变化。
- IPv4 与 IPv6 各查一次,两边都应该指向线路出口,而不是一边走线路、一边直连。
- 换一个回显站点再测一次,排除单个站点判断偏差。
出口 IP 的归属地取决于你实际选中的是哪一条线路。同一国家可能有多条线路,城市与运营商不同,回显的 ASN 也不同。归属地与预期不符时,先在客户端里确认选中的节点,再判断是不是验证方法的问题。
第二步:查 DNS 泄漏与解析归属
出口 IP 换了,域名解析却可能还留在本地:解析请求没有进隧道,而是由本地网络提供的递归解析器完成。结果是外部站点看到你的地址在境外,但通过域名判断你的位置时又得到本地答案,表现为内容地区不对、部分服务要求二次验证,或者某些站点干脆打不开。
怎么查解析走了谁
先访问任意 DNS 检测页面,看返回的解析器地址与归属;再用命令行做一次交叉验证。下面两条命令都会返回处理这次查询的解析器地址,把它和出口 IP 对比即可:
# macOS / Linux
dig +short TXT whoami.ds.akahelp.net
# Windows
nslookup -type=TXT whoami.ds.akahelp.net
解析没走隧道的三个常见原因
- 系统或浏览器开了加密 DNS:DoH / DoT 打开后,解析请求直接发往指定的公共解析器,绕过了隧道下发的 DNS 设置。
- 隧道只接管了 TCP 流量:DNS 查询默认走 53 端口的 UDP,如果规则只覆盖 TCP 80 / 443,解析就会从本地出去。
- 分流规则把解析判成了直连:规则按域名或 IP 匹配时,解析请求命中了直连分支。
浏览器里的「安全 DNS / 加密 DNS」和系统里安装的第三方 DNS 工具,都会让解析结果看起来和隧道的真实行为不一致。先把它们关掉再测,测出来的结论才有意义。
处理方式按平台略有差别:桌面端在客户端里开启「DNS 走隧道」或使用隧道内置解析,然后重测;Android 上如果开了系统的「私人 DNS」,解析会交给指定的加密解析器完成,结果可能与隧道下发的解析器不同,验证前先设为「自动」;iOS 上如果装了带 DNS 设置的配置描述文件,检查它是否覆盖了客户端的解析设置。
第三步:分应用验证,只让该走的走
前两步都对,仍然可能遇到「浏览器正常、某个应用不走线路」。原因是分流规则:它按域名、IP 段或进程名决定哪些流量进隧道,规则写对了不代表目标应用就命中。分应用验证的目的,就是把这个环节单独拎出来测。
- 临时把客户端切到全局模式(所有流量走线路),打开目标应用确认能否正常使用。
- 全局下正常、规则模式下异常,说明问题在规则,不在线路本身。
- 回到规则模式,逐项补齐:目标域名、必要的 IP 段,以及进程名。
- 语音、联机、直播类应用要确认规则覆盖 UDP,否则会出现「网页能开、语音连不上」。
- 测完把模式改回日常档位,不要长期停在全局。
这里容易踩的坑是协议与 UDP。Shadowsocks、VMess、Trojan、VLESS 能否转发 UDP,取决于服务端与客户端的具体实现;Hysteria2 与 TUIC 基于 QUIC,本身就跑在 UDP 上,转发 UDP 流量更自然。如果规则只代理 TCP,浏览器基于 QUIC 的请求(UDP 443)要么回退到 TCP,要么直接走直连,表现出来就是「连接是通的,某个站点的行为却像没走线路」。
看起来连上了其实没走:六种典型情况
把三步验证里最容易出问题的表现整理成一张对照表,遇到异常时按行排查即可。
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 客户端显示已连接,出口 IP 与断开时完全相同 | 系统代理模式只接管了浏览器,或规则没有命中当前程序 | 切到全局模式重测,确认接管范围后再回到规则模式 |
| 网页能打开,语音、联机或直播连不上 | UDP 流量没有进隧道,QUIC 与语音都走 UDP | 确认协议与规则覆盖 UDP,必要时先关闭浏览器的 QUIC 再测 |
| 出口 IP 已变,部分站点仍显示本地内容 | DNS 解析没有走隧道 | 关掉系统与浏览器的加密 DNS,改用隧道内解析后重测 |
| 重启客户端后又回到本地出口 | 路由被其他虚拟网卡、防火墙或安全软件改写 | 退出冲突软件,重连后复查路由表 |
| 只有某一个应用不走线路 | 分流规则按域名或进程匹配,漏掉了它 | 在规则里补上对应域名或进程,或临时用全局模式验证 |
| IPv6 站点显示本地地址 | 隧道只接管了 IPv4,IPv6 从本地直连出去 | 关闭 IPv6,或改用支持双栈的线路 |
六种情况都排除之后,用这份清单确认一遍,全部通过才叫真的生效:
- ✅ 断开与连接两次的出口 IP 不同,归属地与所选线路一致
- ✅ IPv4 与 IPv6 查询返回同一方向的出口
- ✅ DNS 解析器归属与出口地区一致
- ✅ 目标应用在全局模式下可以正常使用
- ✅ 回到规则模式后,目标应用仍然走线路
- ❌ 只测了浏览器就下结论
- ❌ 隧道开着,IPv6 站点仍显示本地地址
各平台的验证方式差异
三步验证的顺序在所有平台上都一样,区别在于你能拿到多少系统信息。桌面系统可以查路由与解析状态,移动端主要靠外部回显页面和客户端内的连接诊断。
Windows
系统代理模式与虚拟网卡模式的差异在 Windows 上最明显:前者只影响读取系统代理的程序。route print 可以查看默认路由是否指向隧道网卡,ipconfig /all 能确认虚拟网卡状态;浏览器如果开着 QUIC,需要单独关闭后再测 UDP 相关场景。
macOS
scutil --dns 查看当前生效的解析器顺序,networksetup -getwebproxy Wi-Fi 确认系统代理是否被接管;配合 curl -4 与 curl -6 就能把出口验证做完。
iOS 与 Android
移动端没有命令行,验证靠浏览器回显页面加客户端内的连接状态。Android 上如果开了「私人 DNS」,先设为「自动」再测;iOS 上如果装了带 DNS 设置的配置描述文件,检查它是否覆盖了客户端的解析设置。
Linux
ip route 看默认路由、resolvectl status 看解析器、curl 查出口,三条命令覆盖全部三步验证。
各平台客户端界面不同,但都通过订阅链接导入线路:登录后在面板里获取订阅地址,导入客户端,再按出口 IP → DNS → 分应用的顺序验证一遍。订阅链接等同于账号凭据,不要截图外发或在公开场合粘贴。
验证通过之后要做什么
验证本身只花几分钟,但把结果留下来,下次遇到问题能省更多时间。
- 记下基线:断开时的出口 IP、连接后的出口 IP 与解析器归属,各记一行。异常时直接对照,能立刻判断是哪一层出了问题。
- 换环境后复测:换网络、系统大版本更新、安装新的安全软件之后,重走一遍三步验证。
- 地区不符先换节点:不同线路的出口归属不同,先换节点,再判断是不是客户端设置的问题。
- 保管好订阅链接:它等同于账号凭据,泄露后应在面板里重置。
本服务提供 120+ 国家、180+ 线路,不限台数,30 天无理由退款。线路状态可以在服务器页面查看;如果三步里某一步始终过不去,也可以先对照故障排查文档逐项核对。