兑换站到底能看见什么:指纹、DNS 泄漏与 WebRTC(2026 实测)
我们把兑换站能打分的三层都测了一遍:浏览器首个请求 14 个头 636 字节,curl 只有 80 字节;Chrome 八次连接得到八个不同 JA3;伪造的 UA 被自己的 client hints 揭穿;SOCKS 本地解析漏了 4 个 DNS 包(出口解析是 0 个);一条 STUN 地址三秒返回真实 IP。
兑换站不是在「认出你」,是在给这一次连接打分。 它能下的每一个判断,都来自三层信号。网络层给它你的 IP、这个 IP 的 ASN 以及它的历史。传输层给它你的 TLS ClientHello——那是浏览器在收到任何一个字节 HTML 之前就写好的东西。应用层给它请求头、JS 能读到的设备字段,以及你在一段时间里的行为。今天我们对着自己的监听器和 veilswap.io 把这三层都测了一遍。人们以为自己暴露的量,和实际可观测到的量,差距很大,而且方向和大多数教程说的相反。
网络层:你的 IP 是带着简历来的。 Cloudflare 自己的文档写明,它的 bot score 依据 IP 声誉、请求特征和 TLS 指纹,而本站就在 Cloudflare 后面,所以这套打分在我们的代码跑起来之前就已经发生了。今早我们用来实测的这台机器是机房地址 64.118.134.27,对 /exchange 发了三次请求、换了三个 UA——curl/8.5.0、Windows 的 Chrome 141、以及 HeadlessChrome 151。三次全部 200、全部 43,014 字节、没有一个挑战标记。「机房 IP」本身在这个站不是拒绝条件。源站真正记下的是 CF-Connecting-IP 头,真正执行的是一条速率:每 IP 每小时 6 单、全站每小时 120 单,以及以 IP+走廊+金额+收款地址为键的 90 秒重复窗。
DNS 泄漏是现成最便宜的一个错误。 06:02 UTC,我们清掉本地解析器缓存,用 `--socks5` 经 Tor 的 SOCKS 端口取 veilswap.io。在回环网卡上抓包,记到四个 UDP 53 端口的数据包:两个查询从 127.0.0.1 发往本地存根 127.0.0.53,两个应答回来。这次请求耗时 5.95 秒。把参数换成 `--socks5-hostname`(把域名交给出口节点去解析,而不是在本地解析),抓到 0 个 DNS 包,耗时 2.75 秒。同一个网址、同一个出口、同一个工具。这种泄漏在页面上看不见、在浏览器里看不见,但跑你解析器的人看得一清二楚——家用宽带下,那通常就是你的运营商。 (Tor 换币安全吗)
传输层:ClientHello 比 UA 诚实。 我们起了一个监听器,在本地 TLS 端口上记录原始 ClientHello 字节。Chromium 151 给出 TLS 1.3、16 个密码套件、17 个扩展;在八次独立连接里,密码套件的顺序逐字节一致,扩展集合排序后也完全一致。但这八次得到了八个不同的 JA3 哈希——因为 Chromium 有意随机化扩展顺序。curl(OpenSSL)给出 31 个套件、11 个扩展,两次连接哈希相同:77f696ec…。所以拿 JA3 做比对,两个方向都不牢:Chrome 每次连接都像一个新客户端,而稳定的客户端看着又「稳得可疑」。
伪造 UA 只会把画面弄得更糟。 我们把同一个浏览器换成 Windows Chrome 141 的 UA、en-US 语言、America/New_York 时区重启。UA 变了,旁边三样没变:`navigator.userAgentData.brands` 仍是「Chromium/151」「Not=A?Brand/99」,`navigator.platform` 仍是「Linux x86_64」,请求头 `sec-ch-ua` 仍写着 151,而 `sec-ch-ua-platform` 已被改成「Windows」。真正的 Windows Chrome 141 发出的一组值是自洽的;伪造的那一组发出的是任何真实浏览器都不会产生的矛盾。如果你的目标是「看起来普通」,UA 切换器恰好是唯一能稳定让你看起来不普通的工具。
页面不用任何库还能读到什么。 同一台机器跑两次,返回的是:platform 为 Linux x86_64、languages 为 en-US 与 en、hardwareConcurrency 4、deviceMemory 4、maxTouchPoints 0、vendor 为 Google Inc.、屏幕 1280×720 / 24 位色 / devicePixelRatio 1、时区 UTC,以及一段点名为 ANGLE、底层是 SwiftShader 软件设备的 WebGL renderer 字符串。用宽度测量探了 12 个字体名,命中 6 个:Arial、Courier New、Times New Roman、DejaVu Sans、Liberation Sans、Noto Color Emoji。4 核、上报 4 GB 内存、720p、软件光栅化——这是一台云容器的形状,不是笔记本。有一个字段我们如实失败:canvas 哈希在无头上下文里抛错,所以这里写「取不到」,而不是编一个值。
WebRTC 用一行 JS 换回你的真实地址。 不配置 STUN 服务器时,Chromium 151 只回报一个被混淆成 `.local` mDNS 名的主机候选,本地网卡地址是藏住的。加上一条 `stun:stun.l.google.com:19302`,三秒内就返回了 server-reflexive 候选 64.118.134.27——这台机器的真实公网地址,而 HTTP 请求本身走的是 SOCKS 代理。这就是最被低估的机制:WebRTC 跑在 UDP 上,根本不看代理设置。代理藏住的是你的 HTTP 路径,不是你的网络路径。Tor Browser 默认关掉 WebRTC 就是为了这个。 (Tor 换币安全吗)
站点自己那一侧,其实没收什么。 /exchange 的响应零 Set-Cookie、也没有 Content-Security-Policy;它给了严格来源的 referrer 策略、nosniff、SAMEORIGIN 防嵌框,以及一条直接禁掉摄像头/麦克风/地理位置的 permissions policy。HTML 是 43,014 字节、31 个 script 标签,其中 18 个是 Next.js 分块。但那段标记里坐着两个第三方:项目号 yyim3c5trv、带 ref=bwt 的内联 Microsoft Clarity 加载器;以及从 spst2.com 子域预加载的 ustat.js。这两家各自直接看到你的 IP、UA 和点击路径,不经过我们的日志。「我们不留日志」和「这次访问没有被记录」是两句不同的话。
八个替对面把活干完的习惯。(1)只改 UA,制造上面那个矛盾。(2)换了 IP 却不换时区、不改语言。(3)用 `--socks5` 而不是 `--socks5-hostname`,泄漏 DNS——实测 4 个包对 0 个包。(4)代理开着却留着 WebRTC,三秒交出真实地址。(5)用日常浏览器配置文件下单,扩展、字体、回放脚本一个不落。(6)Tor 上建单、明网付款,把两条路径焊在同一个入金地址上。(7)一个兑出地址反复用;上游的入金地址有时也会复用,我们数到两个地址分别被用了 4 次和 7 次。(8)把订单链接存成书签——它是能力令牌,不是参考资料。 (Tor 换币安全吗)
真正站得住的顺序,以及这些数字的边界。 独立的浏览器容器;Tor Browser 默认关 WebRTC、域名远端解析;每单一个全新的兑出地址;订单链接只在需要的那几分钟里保留。我们刻意没有去测某一家兑换站如何给这些信号打分:那是私有模型,写一段猜测就是编造。可核实的东西很窄,但够用——4 个 DNS 包对 0 个包、8 次连接 8 个 JA3 哈希、伪造的 UA 被自己的 client hints 揭穿、一个 STUN 服务器三秒返回真实地址。截至写作时(2026-11-01 约 06:05 UTC),站内报价 100 USDT-TRC20 兑 0.14544658 XMR(约 687.54 USDT/XMR);1,000 兑 1.633163、5,000 兑 8.167982,都在 612 上下;1 XMR 兑 599.32 USDT,走两条路由、优势 196 bps。目录显示 430 个资产、62 条网络,其中 53 个稳定币、6 个需要 tag。汇率按秒在动,页面的实时报价才算数。 (Tor 换币安全吗)