这个问题听起来像是一道是非题,而诚实的答案是:取决于问的人是谁。你接入的 Wi-Fi 网络仍然看得到设备在那条链路上使用的地址,无论有没有 VPN。而普通网站通常从一开始就收不到你的 Wi-Fi 地址。五项检查把这两类观察者分开,并告诉你哪一个才是你真正在意的。

检查 1:接入点看到了什么?

即使浏览器的流量在加密隧道里传输,酒店网络仍然可以列出你接入的设备。两种观察同时成立,因为网络必须与本链路上的设备通信,并不需要读取你的网页才能做到。

它看到的地址,可能是烧录在网卡里的硬件地址,也可能是操作系统生成的私有地址。如果你为了上网提供了房间号或访客账号,那条登记记录就与设备记录并列存放,而且比你的 VPN 会话存活得更久。

更换 VPN 服务器对这些本地记录毫无影响。它们在任何隧道出现之前就已经生成。

检查 2:网站看到了什么?

路由器在链路之间转发 IP 数据包,而你的 Wi-Fi 上使用的链路层地址并不是一个原封不动送到每个目的地的信封。对于经 VPN 出去的流量,网站通常看到的是出口的公网 IP 地址。

它仍然可以收到 Cookie、已登录的会话,以及能识别客户端软件的浏览器特征。指纹识别是一种真实的追踪手段,这与从 Web 请求里读取 Wi-Fi MAC 并不是一回事。

所以,如果你的威胁模型是「网站把多次访问关联起来」,那么相关的面就是 VPN 出口和浏览器状态。Wi-Fi 网卡的地址不在那场对话里。这就是为什么 VPN 可以改变网站对你的认知,而本地网络看到的东西却完全不变。两个层次,两类观察者,并不矛盾。

检查 3:VPN 是桥接还是路由?

大多数消费级 VPN 采用路由方式:TUN 接口承载 IP 数据包,客户操作系统的虚拟网卡拥有自己的寻址上下文。你的 Wi-Fi 帧没有任何部分到达对端。

有些私有网络 VPN 改用 TAP 接口桥接以太网帧。在这种设计里,MAC 层信息可以进入远端网段,所以「任何 MAC 地址都不可能穿过任何 VPN」这种一概而论的说法太强了。

如果你在调试这类配置,请说清地址属于哪个接口:物理 Wi-Fi 网卡、虚拟网卡,还是远端桥接网段。这是三个不同的答案,人们却经常混为一谈。

检查 4:你想要不同的本地标识吗?

Apple 和 Android 都支持私有或随机化的 Wi-Fi 地址。该功能减少了对持久无线标识的依赖,具体行为因设备、网络和软件版本而异。Apple 的文档描述了受支持系统上的按网络地址与持久化选项。

它做不到的是隐藏当前正在使用的地址。接入点仍然需要一个地址来发送帧,所以私有地址改变的是连续性,而不是可见性。请把这项设置理解为针对跨网络追踪的隐私控制,而不是在正在使用的网络上变得匿名的方法。这是两种不同的承诺,而只有前者是它提供的。

如果受管理的网络拒绝接纳使用私有地址的设备,先查看该网络公开的要求,再断定是 VPN 的问题。VPN 无法修复设备在获得正常网络接入之前就发生的故障。

检查 5:你到底想防住什么?

把目标写成一句话。如果目标是让这家咖啡馆明天认不出我的设备,那么控制手段是私有地址,VPN 无关紧要。如果目标是让这个网站看不到我家的地址,那么控制手段是 VPN 出口,MAC 从来就不重要。

如果目标是让远端私有网络学不到我的网卡地址,那就检查隧道是否桥接,因为只有这种设计下这个问题才有真正的答案。

用公网 IP 检查来看出口路径,用设备的私有地址设置来看本地无线身份。它们回答的是不同的问题,而Apple 关于私有 Wi-Fi 地址的文档是第二个问题很好的参考。两种设置都不会让正在使用的设备对它所接入的网络隐身,也没有任何 VPN 能改变接入点已经记录下来的内容。

相关文章