TCP/系统指纹识别到底是什么
每种操作系统实现 TCP/IP 协议栈的方式都略有差异:初始窗口大小、TTL、MSS、窗口缩放、TCP 选项的有无与排列顺序、时间戳处理方式。这些差异足够稳定,被动观察者仅凭连接最初的几个数据包就能推断出操作系统,完全不需要 JavaScript。这项技术由来已久且有充分文档,远早于反机器人行业。结果是:在你的浏览器发出第一个请求头之前,对方已经独立形成了关于你身份的第二个判断。
代理为何会造成系统不一致
几乎所有代理基础设施都运行在 Linux 上。你通过它上网时,到达网站的 TCP 握手由那台 Linux 主机产生,而不是你的电脑。因此,一个在 User-Agent 中声称 Windows 10 的配置文件,其连接的底层签名却显示“Linux 服务器”。页面内容本身并无破绽:矛盾完全发生在应用层之下——这正是它对识别代理的一方如此有用的原因。系统伪装通过重写 TCP/IP 特征以匹配配置文件声称的操作系统,从而消除这一矛盾。
在 FRProxy 如何使用
系统伪装运行在代理端,你无需安装任何东西。可在控制面板或通过 API(POST /api/v1/spoof)选择指纹,更改立即生效。可选指纹:Windows、macOS、Linux、Android 和 iOS;留空即关闭伪装,这也是默认设置。该选项在手机独享代理上启用——只有当连接由单一客户掌控时,指纹才有意义,因此我们绝不会在多个账户共享的调制解调器上启用它。有一个限制我们如实说明:在 IPv4 下,运营商、CGNAT 和 DPI 设备可能在传输途中规范化 TCP 选项,覆盖部分伪装签名。这是全行业已知的制约,并非我们服务特有。在 IPv6 下,数据包不会在途中被重写,指纹得以端到端保持一致。