浏览器指纹是什么?Canvas、WebGL、字体、时区等指纹逐项讲清
浏览器指纹由网络层、设备层和浏览器层几十个信号组成。本文逐项讲清 IP、WebRTC、Canvas、WebGL、字体、时区、UA 等暴露了什么,指纹浏览器能改什么、改不了什么,以及怎么自测。
清掉 Cookie、换个 IP,网站还是能认出"你又来了"——这背后通常就是浏览器指纹。它不是某一项数据,而是浏览器在访问网页时主动或被动暴露的几十个特征的组合。单看每一项都很普通,组合起来就可能足够独特。
理解指纹,有两个实际用处:一是保护隐私,二是在团队需要合法地分开多个工作环境时,知道该让哪些信号保持一致。
浏览器指纹是什么
网站可以通过两种方式收集指纹:
- 被动收集:每次请求自带的信息,如 IP 地址、HTTP 请求头里的 User-Agent 和 Accept-Language。
- 主动收集:页面里的 JavaScript 调用浏览器 API 读取信息,比如屏幕尺寸、时区、显卡型号,或让浏览器画一张图再计算哈希。
这些信号可以按来源分成三层。
网络层:IP、DNS、WebRTC、时区
| 信号 | 暴露了什么 |
|---|---|
| IP 地址 | 所在国家 / 城市、运营商,以及是家庭宽带还是机房 IP |
| DNS 解析 | 实际使用的 DNS 服务器,可能和代理所在地不一致(即"DNS 泄漏") |
| WebRTC | 用于音视频通话的协议,可能在未经代理的情况下暴露真实公网或内网 IP |
| 时区 | JavaScript 可读取系统时区,与 IP 所在地对比是否吻合 |
网络层最常见的问题是不一致:IP 在美国,DNS 却走国内运营商,时区还是北京时间。检测方法见《代理 IP 质量怎么查》;DNS 在 HTTP 与 SOCKS5 代理下的区别见《SOCKS5 和 HTTP 代理的区别》。
设备层:Canvas、WebGL、音频、字体、屏幕、硬件
- Canvas:页面让浏览器用 Canvas API 绘制文字和图形,再导出图像数据计算哈希。不同显卡、驱动、系统和字体渲染会产生细微差异。
- WebGL:同样基于绘图,还可以读取显卡厂商和渲染器名称(例如某型号集成显卡)。
- 音频(AudioContext):用 Web Audio API 处理一段信号,不同设备输出存在细微差别。
- 字体:通过测量文字渲染宽度,推断系统安装了哪些字体。装了中文字体的"美国用户"会显得不寻常。
- 屏幕:分辨率、可用区域、色深、像素比。
- 硬件:CPU 逻辑核心数(hardwareConcurrency)、内存档位(deviceMemory)、是否支持触屏等。
这些 API 的定义可以在 MDN 文档中查到。它们本身都有正常用途,指纹只是"副作用"。
浏览器层:UA、Client Hints、语言、扩展
- User-Agent:浏览器名称、版本和操作系统。
- User-Agent Client Hints:Chromium 系浏览器提供的新机制,通过 Sec-CH-UA 系列请求头和 JavaScript 接口提供品牌、版本、平台等信息,需要和 UA 字符串对得上。
- 语言:Accept-Language 请求头与 JavaScript 读取的语言列表。
- 扩展与插件:部分扩展会修改页面或注入元素,从而被间接识别。
- 其他特征:是否开启"请勿追踪"、Cookie 是否可用、各种 API 是否存在等。
指纹浏览器能改什么、改不了什么
AdsPower 提供基于 Chrome 的 SunBrowser 和基于 Firefox 的 FlowerBrowser 两个内核;GoLogin 提供桌面版和云端浏览器。这类工具的核心作用是为每个环境生成一套独立、内部一致的浏览器指纹,并隔离 Cookie 与存储。
| 能管的 | 管不了的 |
|---|---|
| UA、Client Hints、系统平台 | 账号注册资料、手机号、邮箱 |
| Canvas、WebGL、音频等噪声 | 付款方式、银行卡、收款账户 |
| 时区、语言、地理位置(跟随代理) | 收货地址、公司主体信息 |
| WebRTC 行为、Cookie 隔离 | 操作行为、登录时间规律、内容相似度 |
| 绑定的代理 IP | IP 本身的质量和历史 |
所以要明确:平台还会通过账号资料、付款信息和行为关联账号,这些没有任何浏览器能改变。指纹浏览器解决的是"同一台电脑上多个工作环境互相串号"的问题,不是让违规操作变得安全。选工具可参考《指纹浏览器怎么选》。
另外,"一致"比"随机"重要。参数随机得互相矛盾(例如 Windows 系统配 Mac 字体),反而更显眼。
怎么自测
- 用 BrowserLeaks 这类检测网站逐项查看 IP、WebRTC、DNS、Canvas、WebGL、字体等信息。
- 用 CreepJS 这类开源项目查看指纹的整体一致性,以及哪些项目看起来被修改过。
- 对比几项关键信息是否互相吻合:IP 国家、时区、语言、DNS 所在地。
- 在指纹浏览器里新建两个环境,分别检测,确认 Canvas、WebGL 等值不同,但每个环境内部保持合理。
上手操作可以看《AdsPower 使用教程》和《GoLogin 使用教程》,两篇都包含首次打开环境后的自检步骤。
小结
浏览器指纹是网络、设备、浏览器三层信号的组合。保护隐私或分隔工作环境时,目标是让每个环境真实、一致、互不串联,同时记住:账号资料、付款与行为同样会被平台用于识别,这部分只能靠遵守平台规则来解决。
本站部分链接为推广链接,通过它们购买我们可能获得佣金,但不会影响你的价格与我们的评价。





