
隐身模式当然有用。
只是它能做的事情,比“隐身”这两个字听起来要少得多。
打开 Chrome 的无痕窗口、Firefox 的隐私浏览,或者 Edge 的 InPrivate,本质上都是新开一个相对独立的浏览会话。
这个会话里的浏览记录不会像普通窗口那样保留下来,Cookie 和部分站点数据也会和日常浏览环境隔开。窗口关闭后,这些临时数据通常也会被清理掉。
但有些东西并不会跟着消失。
你的公网 IP 还在。
你还是在用同一台电脑、同一个操作系统、同一块显卡和同一个屏幕。
浏览器能够暴露出来的很多环境信息,也依然存在。
所以更准确地说:
隐身模式改变的是“浏览器在本地留下什么”,不是“网站能看到什么”。
隐身模式真正隐藏了什么
它最擅长处理的是本地浏览痕迹。
比如你在一台共用电脑上临时登录账号,或者只是想打开一个不带原有 Cookie 的新会话,这时候隐身模式就很实用。
通常来说,它会让这些信息和普通浏览环境隔开:
- 浏览历史;
- 当前隐身会话产生的 Cookie;
- 部分站点数据;
- 表单和搜索记录;
- 一部分临时缓存。
不同浏览器的具体实现会有差别,但思路差不多:
结束这个隐身会话后,尽量不要把这一轮浏览活动继续留在本地。
这确实是一种隐私保护。
但它保护的主要是“这台设备之后还记不记得你做过什么”。
网站看到的东西,并不会因此全部消失
网站并不需要读取你的浏览历史,才能知道当前是谁在访问。
只要你打开网页,网站依然可以获得这次连接本身带来的信息。
比如公网 IP。
也可以读取浏览器正常暴露出来的一些环境特征,例如:
- 浏览器和操作系统;
- 屏幕尺寸;
- 语言;
- 时区;
- WebGL;
- Canvas;
- 浏览器支持的功能;
- 其他设备和渲染相关信息。
隐身模式可能会改变某些浏览器行为,不同浏览器在隐私模式下提供的跟踪保护也不完全一样。
但它不会因为你点了一下“新建无痕窗口”,就把当前设备重新变成另一台电脑。
隐身模式不会隐藏你的 IP
这个最好理解。
IP 属于网络连接这一层。
隐身模式主要处理的是浏览器本地的会话和存储。
它并不会帮你换一条网络线路。
所以你在普通窗口里打开一个网站,再用隐身窗口打开同一个网站,对方通常看到的还是同一个公网 IP。
如果你想改变网站看到的 IP,需要改变网络出口,比如:
- 切换网络;
- 使用 VPN;
- 使用代理。
这和隐身模式处理的不是一件事。
新的隐身窗口,不等于新的浏览器环境
很多人打开隐身模式以后,会发现网站要求重新登录、购物车没了、推荐内容也变了,于是很容易觉得:
网站是不是已经不认识我了?
很多时候,只是因为原来的 Cookie 没有进入这个新的会话。
浏览器本身其实还是原来的浏览器。
你仍然在使用:
- 同一个操作系统;
- 同一个显示器;
- 同一块显卡;
- 同一个浏览器内核;
- 同一台设备。
这意味着不少浏览器侧的特征依然可能非常接近。
所以:
清掉 Cookie 和改变浏览器指纹,并不是一回事。
Cookie 是网站存到浏览器里的数据。
浏览器指纹则更多来自网页运行时能够读取到的环境特征。
前者被隔开了,不代表后者也跟着消失。
更多关于 IP 与指纹分层的内容,可看 换 IP 会改变浏览器指纹吗?。
普通模式和隐身模式,到底差在哪
放在一起看会更直观。
| 信息 | 普通浏览 | 隐身 / 无痕浏览 |
|---|---|---|
| 本地浏览历史 | 通常会保存 | 会话结束后通常不保留 |
| 普通窗口已有 Cookie | 可用 | 通常隔离 |
| 隐身会话产生的 Cookie | 正常存在 | 会话结束后通常删除 |
| 公网 IP | 网站可见 | 仍然可见 |
| ISP / ASN | 网站可见 | 仍然可见 |
| 浏览器版本 | 网站可见 | 通常仍然可见 |
| 屏幕信息 | 网站可见 | 通常仍然可见 |
| WebGL 信息 | 可能可见 | 仍可能可见 |
| 语言和时区 | 网站可见 | 通常仍然可见 |
| 登录账号 | 登录后可见 | 登录后仍然可见 |
这里需要注意一个词:
通常。
因为不同浏览器的隐私模式并不完全一样。
有些浏览器会在隐身模式下增加额外的第三方 Cookie 限制和跟踪保护,所以不能简单说“普通模式和隐身模式下所有指纹信号都完全一样”。
但这不影响核心结论:
隐身模式并不会让整个浏览器环境消失。
为什么网站仍然可能把两次访问联系起来
网站判断访问者,并不只有 Cookie 这一种办法。
它还可能使用:
- 账号登录状态;
- IP 和网络信息;
- 浏览器指纹;
- 本地存储;
- 账号历史;
- 风控和行为数据。
比如你打开隐身窗口以后,又登录了和之前相同的账号。
这时候其实根本不用讨论浏览器指纹。
账号本身已经把两次访问联系起来了。
即使你没有登录,网站依然可以看到当前 IP,以及浏览器在这一轮访问里暴露出来的环境信息。
当然,这不代表每个网站都能百分之百识别每一个隐身会话。
浏览器指纹本身也不是一个绝对唯一的身份证号码。
真正需要理解的是:
隐身模式减少了一部分可用的识别信息,但没有把所有信号清零。
如果想先理解浏览器指纹本身,可以看 什么是浏览器指纹。
隐身模式为什么经常让人感觉像“新用户”
因为很多网站非常依赖 Cookie。
一旦进入隐身窗口:
- 原来的登录状态没有了;
- 购物车可能没了;
- 推荐历史没了;
- 有些网站重新显示 Cookie 弹窗;
- 页面看起来像第一次访问。
这种体验很容易让人误以为:
网站已经看不到之前的我了。
更准确的解释其实是:
网站没有拿到原来的 Cookie。
“新的 Cookie 会话”和“新的设备”并不是同一回事。
网站仍然可能看到:
- 相同的 IP;
- 相同的浏览器;
- 相同的屏幕;
- 相同的语言和时区;
- 相似的 WebGL 和其他环境信息。
隐身、VPN、清 Cookie,解决的不是同一个问题
这几个东西经常被放在一起讲,但它们实际上处理的是不同层面。
| 操作 | 本地记录 / Cookie | 公网 IP | 浏览器环境 |
|---|---|---|---|
| 打开隐身模式 | 隔离、临时保存 | 通常不变 | 大部分仍来自同一设备 |
| 清除 Cookie | 被删除 | 不变 | 基本不变 |
| 使用 VPN | 基本不受影响 | 改变 | 基本不变 |
| 使用代理 | 基本不受影响 | 改变 | 基本不变 |
| 更换浏览器 | 使用独立数据 | 通常不变 | 更多信号发生变化 |
| 更换设备 | 完全独立 | 可能变化 | 大量信号发生变化 |
所以并不存在一个简单的“重置身份”按钮。
更容易理解的方法,是把问题拆成三个:
- 浏览器在本地保存了什么?
- 网络向网站暴露了什么?
- 网页还能从浏览器和设备读取什么?
隐身模式主要解决的是第一个问题。
隐身模式能阻止浏览器指纹吗
不能简单这么理解。
很多浏览器指纹信号,并不是从以前保存的 Cookie 里拿出来的。
而是在网页运行时,从当前浏览器和设备环境中读取。
例如:
- 图形渲染;
- WebGL;
- 屏幕属性;
- 浏览器能力;
- 语言;
- 时区;
- 其他环境信息。
不同浏览器可能会在隐私模式下限制其中一些信息,所以不能说任何情况下普通窗口和隐身窗口的指纹都完全一致。
但更大的事实没有变:
隐身模式的设计目标,并不是给你的设备生成一个全新的浏览器指纹。
如果你真正关心的是浏览器指纹,就应该直接看浏览器暴露了哪些信号,而不是看到右上角出现一个“隐身”图标,就默认整个环境已经换了。
可以在普通窗口和隐身窗口各跑一次 EnvTrace 浏览器指纹检测,对比结果。
隐身模式什么时候真的有用
说到这里,并不是说隐身模式没有价值。
它非常适合这些场景:
- 不希望一轮浏览记录留在普通历史里;
- 在共用电脑上临时登录账号;
- 想绕开普通窗口里已有的 Cookie;
- 临时登录另一个账号;
- 想从一个比较干净的本地会话开始访问网站。
这些都是很实际的用途。
问题只在于:
“隐身浏览”和“匿名浏览”并不是同一个承诺。
不要只看浏览记录有没有消失
如果你想知道隐身模式到底改变了什么,只看关闭窗口以后历史记录还在不在,其实只看到了设备这一侧。
还可以继续看网站这一侧。
比如:
- IP 有没有变化;
- 浏览器信息有没有变化;
- WebGL 还能看到什么;
- 屏幕、语言、时区是否还在;
- 整个浏览器和网络环境是否发生了明显变化。
这也是 EnvTrace 更关注的角度。
我们不希望把在线隐私简单缩成一个 IP,或者一个所谓的“指纹编号”。
更有意义的是把网络和浏览器放在一起看:
到底什么变了,什么没变,网站还能看到什么。
隐身模式会给你一个更干净、更独立的浏览会话。
但它不会给你一台新的电脑。
理解这一点,基本也就理解了隐身模式到底能隐藏什么,又隐藏不了什么。