无日志到底是什么意思?我怎么判断一家VPN在说真话

6 分钟阅读

凌晨两点,我在 Windows 上挂着 VPN 跑 CI,手机上还开着 NekoBox 看点东西。第二天邮箱来了一封“异常登录提醒”,附带一个时间点和一个国家。问题是,那段时间我压根没开浏览器。

别迷信。

所谓“无日志”,很多时候就像“无糖”一样,得看配料表。

“无日志”到底在躲什么日志

先把话说直:VPN 想做到“什么都不留下”,难度很高,且不一定合理。运营商要防滥用、要抗攻击、要排障,完全零记录通常只能靠文字游戏。

常见会被叫作“日志”的东西,大概分这几类(名字各家写法不一样):

  • 连接日志:你什么时候连上、断开,用了哪个入口 IP、分配了哪个出口 IP
  • 流量/访问日志:你访问了什么域名、URL,甚至 SNI、HTTP 头(这类最敏感)
  • 诊断/崩溃日志:客户端报错、握手失败原因、版本号、设备型号
  • 计费/风控记录:账号、套餐、支付信息、同时在线数、滥用标记

很多厂商宣传“no-logs”,指的是第二条不记,甚至“我不看你访问了什么网站”。但第一条他们可能还会留一段时间,理由是“防止刷流量、处理投诉”。这就会出现一个尴尬点:只要连接日志里能把“账号”和“出口 IP 的某个时间窗口”对应起来,在外部拿到网站日志的人,还是能做关联分析。

看细节。

技术上真能不记吗,还是嘴上说说

我更愿意把问题拆成两块:服务端是否“能不产生”,以及产生了能否“自动消失”。

先说服务端。无论你用 WireGuard 还是 VLESS+REALITY,机器都要处理会话。WireGuard 天生是 UDP,内核态/用户态怎么实现不展开,但它确实会维护 peer 状态,否则包都不知道往哪送。VLESS+REALITY 这类走 TLS 外观的方案,握手、重放、防探测也需要状态。你说完全不留下任何痕迹,听起来就很玄。

更现实的坑是系统层面的:

  • 默认 syslog、journald 会把进程输出收进去
  • 反向代理(比如为了跑在 443 端口伪装 TLS)一不小心就开了 access log
  • 防火墙/DoS 组件可能会记下五元组,排障时尤其常见

所以我更看重的是“默认不记录敏感字段 + 短期缓冲 + 可验证的流程”。比如有些服务会强调日志只在 RAM 里,重启就没;或者把诊断日志做成只包含错误码,不带源 IP;再比如明确写清楚保留多久、谁能访问、什么情况下会导出。写不出来,多半就是没认真做。

这部分很烦。

我平时怎么判断一家VPN是不是在讲人话

我不会只看一句“no-logs”。我会翻他们的隐私政策、FAQ,甚至看客户端有没有奇怪的遥测开关。比较实用的检查点我一般抓四个:

1) 定义写得够不够具体:不记录“浏览活动”不等于不记录“连接时间和出口 IP”。我想看到明确的字段级描述。

2) 有没有第三方审计或公开事件:审计不代表绝对安全,但至少说明他们愿意被检查。更关键的是公开披露:发生过执法请求时怎么处理、能提供什么、提供不了什么。

3) 客户端行为:iOS 的 Shadowrocket、Android 的 V2RayNG/Hiddify、桌面端的 macOS/Windows 客户端,有没有把诊断日志默认上传?有没有一键导出日志还带 IP?这些小细节经常露馅。

4) 支付和账号体系:如果你用实名支付、邮箱还绑定主账号,那“无日志”只能保护一半。反过来,有些服务就算真不记流量,账号侧还是能把你框得很死。

还有个容易被忽略的点:你用 OpenWrt 路由器全家走 VPN 的时候,日志往往在路由器上。你以为“服务商没记录”,结果家里 syslog 把域名解析失败、重连次数记得明明白白。

你以为是VPN泄漏,其实是你自己的 DNS 和系统在出卖你

很多“我开了 VPN 但还是被识别”的案例,跟服务商日志没直接关系。

DNS 是头号嫌疑人。系统可能还在用运营商的 DNS,或者某些 App 自己内置 DoH/DoT 绕过系统设置。WebRTC 也会捣乱,尤其在浏览器里。移动网络更麻烦,信号一抖就丢包,VPN 断线重连,出口 IP 跳来跳去,风控系统更容易盯上你。

我自己的习惯是:第一次装好就用浏览器测一下 DNS 泄漏,再看客户端有没有 kill switch(断线就断网)和分应用代理。Android 上尤其要小心省电策略,后台一挂,隧道就断;你看到的“无日志不靠谱”,其实是手机把连接掐了。

如果你只是想省事,少折腾协议和订阅管理,我最近给朋友推荐过 DuduVPN,用他们的机器人 https://t.me/duduvpnsbot 把订阅和节点拉起来就能用,剩下的时间拿去把系统 DNS 和 kill switch 配好更划算。

连上之后先跑一次 DNS 泄漏测试,再把断线保护打开。

相关文章