虚拟定位还是 VPN:该选哪个

“用 VPN 就行”是对想让某个服务看到其他位置的人最常见的建议。但它有一半的时候不起作用,因为 VPN 和虚拟定位改变的是不同的东西:前者改变网络地址,后者改变手机提供给应用的坐标。下面说明两种情况下应用具体看到什么、为什么二者不能互相替代,以及如何判断您需要哪一个。

简短回答

VPN 改变的是您的 IP 地址:流量经由另一个国家的服务器,所有通过网络判断位置的东西看到的都是服务器的地址,而不是您的。您的坐标仍然是真实的:手机上的地图依旧显示您所在的位置。

虚拟定位改变的是坐标:应用在 Android 中注册为测试位置来源,系统把所选位置提供给所有询问“用户在哪里”的应用。IP 地址则完全不变。

所以“哪个更好”这个问题没有意义,正确的问题是:某个具体服务是根据什么特征判断您在哪里的。

对比:VPN 改变 IP 地址和网络路由,虚拟定位改变系统提供的坐标

应用从哪里得知您的位置

共有四个渠道,它们的表现各不相同。

GNSS 卫星、附近的 Wi-Fi 热点和移动基站由手机自身处理,结果通过系统的位置接口提供给应用。模拟会替换通过这条路径传来的一切:应用得到的是您选择的位置,除了一个标记(下文详述)之外,无法分辨其来源。

IP 地址则由应用自行查询:从网络连接中获取,绕过定位系统。任何坐标模拟应用都影响不了它,这里只有 VPN 能起作用。

手机的四种位置来源:卫星、Wi-Fi、基站和 IP 地址

什么时候需要 VPN

当服务通过网络判断您所在的地区时:按国家提供不同内容的网站;把您当作外国访客的服务;完全没有位置权限的应用,如果没有授予权限,它就只剩下 IP 可用。

判断方法很简单:如果服务在浏览器中运行,而且没有请求位置权限,那它几乎肯定是看 IP。

什么时候需要虚拟定位

当应用请求位置权限,并在地图上把您显示为一个点时。地图和导航、天气、附近搜索、配送、在不同地址测试应用,这些都使用坐标,VPN 对它们没有任何影响。

检查只需几秒钟:打开应用,看看它是否在地图上显示您的位置。如果显示,它使用的就是坐标。

什么时候两者都需要

当服务会把二者相互比对时。有些应用会把坐标与 IP 所属地区进行比对,不一致就视为可疑:坐标在莫斯科而运营商地址在另一个国家,看起来就很奇怪,反之亦然。这种情况下只有一致的画面才有用:使用相应国家服务器的 VPN,再加上同一地区的坐标。

这并不能保证成功:服务还可以参考其他特征,包括模拟来源标记。

二者都做不到什么

Android 会给来自测试提供程序的坐标加上“来自模拟来源”的标记,任何应用都可以读取它。银行、配送和企业考勤系统正是这样做的:对它们来说,无论叠加多少层 VPN,模拟都清晰可见。Mock Location 不会隐藏这个标记,原因见此。

而 VPN 也不会隐藏手机型号、系统语言、时区以及您已登录的账号,这些通常足以让服务判断出您在哪里。

冷静的结论是:两种工具各自解决特定的任务(按网络判断地区、应用中的坐标),哪一个都不能让您隐身。

如何检查实际改变了什么

最简单的方法是分别测量两者。任何 IP 查询服务都会显示地址和国家:开启 VPN 后确认它们已经改变。浏览器中的定位检查页面会显示坐标:开启模拟后将其与所选位置进行比对。

详细的坐标检查方法见如何确认虚拟定位生效这篇使用说明。

Mock Location — 免 root 的 Android 虚拟定位

免费,不经 Google Play 分发。安装前可以核对文件校验和。

下载 APK