零日志现在几乎成了加速器的标配宣传语,但真正从技术上做到零日志的并不多。今天就说说旋风加速器的零日志是怎么实现的,不是口号,是架构。
什么是零日志
先明确概念。零日志不是说服务器上没有任何日志——系统日志、错误日志、性能指标这些还是有的。零日志指的是不记录任何可以关联到用户个人身份的连接日志,具体包括:用户访问了哪些网站、连接了哪些IP、连接时长、数据传输量、DNS查询记录。
这些信息如果不记录,从技术上就无法知道某个用户在某个时间点做了什么。即使执法部门要求提供数据,我们也拿不出来——因为确实没有。
内存态架构:日志不留痕迹
旋风加速器服务端的核心设计是纯内存运行。所有连接状态——谁连了哪个节点、当前会话的统计信息——都存在RAM里,会话结束立刻释放。
有人问:内存掉电不就没了?对,这就是我们要的效果。服务器重启,所有历史连接信息消失。不是定时删除,不是加密存储,是物理上就不存在。
这种设计的代价是运维难度增加。传统方案有连接日志,出问题直接翻日志就行。我们现在只有实时监控,过了就没了。为此我们建了一套独立的监控体系,采集的是聚合指标:节点连接数、带宽利用率、错误率。这些指标不关联用户身份,但足够用来发现问题。
DNS处理:不留查询痕迹
加速器在连接建立时会做DNS查询,传统做法是用系统DNS或者自建DNS解析器,查询记录会落盘。旋风的做法是:DNS查询在内存中完成,结果缓存TTL到期就清除,不写任何持久化存储。
我们还提供了DNS防泄漏功能。确保所有DNS查询都走加密隧道,不会从本地ISP侧泄漏。这个用Wireshark抓包就能验证——开了旋风之后,本地网卡上看不到任何明文DNS请求。
客户端:同样不记录
零日志不只是服务端的事,客户端也不能记。旋风加速器的客户端不会保存用户的连接历史、访问记录。日志级别默认只记录错误信息(连接失败、节点不可达等),而且这些错误日志不包含具体的访问目标。
用户可以在设置里开启详细日志用于排查问题,但默认是关闭的。即使开启,日志文件也只保存在本地,不会上传到服务器。
第三方审计:自己说不算
我们每年请第三方安全公司做一次独立审计,重点就是验证零日志的实现。审计内容包括:服务器磁盘扫描(确认无连接日志文件)、内存快照分析(确认无长期驻留的连接数据)、网络流量分析(确认无数据回传行为)。
审计报告在官网公开,用户可以自己看。比光说"我们零日志"靠谱多了。
和"无日志但保留元数据"的区别
有些加速器声称"不记录用户活动",但保留了连接元数据(连接时间、断开时间、用量统计)。这些元数据虽然不包含你访问了什么,但能看出你什么时候用了加速器、用了多久。严格来说这不叫零日志。
旋风加速器连元数据都不记。付费用户的用量统计(用于计费)是独立处理的:客户端本地累计用量,到期时上报总量(只有字节数,没有时间、目标等信息),服务端只存当前计费周期的累计用量,不存历史。
总结
零日志不是一个功能开关,是一种架构选择。旋风加速器从服务端到客户端,从DNS到用量统计,每个环节都按零日志原则设计。这不是最省事的方案,但是最让用户放心的方案。