你的 VPN 正在捐赠你的连接吗?两个需要核查的方向
使用服务商的出口和贡献自己的连接是两种不同的交易。核查哪个组件在共享、何时运行以及由谁控制。
连接到同一服务商的两个人,未必在使用彼此的家庭连接,因为在通常的部署中,两台设备都把流量发往服务商的端点,只共享出口地址。资源共享型产品可能反其道而行,让你的机器为别人的流量提供通路。方向就是全部问题,而从前面的应用里就能得到答案。接下来是提问的顺序,以及值得保留的证据。
两个方向,且只有一个需要同意
使用远程出口,意味着你的流量经由服务商离开,目的地看到的是服务商的地址。贡献出口,意味着别人的流量经由你的连接离开,目的地看到的是你的地址。两者都被叫作 VPN,但它们对运营客户端的人施加的义务截然不同。一个产品可以做前者而完全不碰后者,也可以两者同时做。
- 远程出口:你的应用把流量发往服务商的端点,目的地记录服务商的地址。
- 贡献出口:别人的流量经过你机器上的共享组件,经由你的线路离开,目的地记录你的地址。
前者是关于自身流量的隐私选择。后者是关于他人流量的决定,所以共享出口地址是声誉问题,而贡献连接是流量来源问题。这两种担忧经常被混为一谈,把它们区分开来就是分析的大部分。
在你安装的应用里读一读共享开关
打开真正安装的那个产品,在设置里搜索共享、贡献、点对点或社区访问之类的词。记下是否存在开关、启动时是否默认开启、属于哪个账户层级,然后把版本号一并截屏留存,因为支持回复会索要它。下一次更新后再复查一遍,因为默认值会在版本之间变动。任何地方都找不到共享字样的面板是有用的发现,但它本身并不是保证。
某个服务商为一个产品描述了点对点共享,却把其他版本排除在外,这就等于告诉你品牌名所掩盖的区别。这类服务的服务商常见问题把贡献型产品与非点对点版本分开,恰恰是这种区别值得自己读一遍。付费状态也不是技术描述,因为付费订阅可能包含共享组件,而没有它的正是免费层级。
窗口关闭之后还有什么在运行
浏览器扩展和单独安装的服务可以在同一个标志下承担不同任务,所以关掉窗口再看看是否有进程存活。比标签页活得更久的进程,正是你启用的功能与无需该功能仍继续工作的组件之间的区别。两者都可能是正当的,而只有一种能从标签页上看出来。
下面这段适用于 Windows。它先读进程,再读该进程拥有的套接字,第一行里的标识符正是后两行用来过滤的对象,所以要替换它,而不是运行三段互不相关的输出。把进程路径与已建立的连接放在一起读,因为单看任何一项都证明不了多少。
Get-Process | Where-Object Path -like '*VPN*' | Select-Object Name, Id, Path
Get-NetTCPConnection -State Established | Where-Object OwningProcess -eq <pid> | Select-Object RemoteAddress, RemotePort
netstat -ano | Select-String 'ESTABLISHED' | Select-String '<pid>'
中继不是文件共享
转发别人的流量,与在你机器上公开文件或服务是两种不同的许可。关于其中一项的文档并不会描述另一项,同意一条隧道也不等于同意文件共享,即使同一个安装程序把两者都配置好了。读设置页面时,请把这两个问题分开。
没有监听端口并不能证明什么都没共享,因为中继可以主动发起出站连接、从不接受入站连接,点对点系统正是这样避开防火墙麻烦的。要看连接去了哪里,而不只是看谁在监听。一条通往服务商自家端点的连接看起来像客户端,而若干条通往你无法解释的地址的连接值得进一步细看。如果看完设置和文档仍然不清楚,就向运营方提出具体问题;在工作设备或受管网络上,做决定的是管理员,而不是抱着笔记本的人。
把看到的记录下来,然后再核查一次
写下版本、各项设置状态和你观察到的套接字,并附上时间戳,因为正是这份记录把怀疑变成别人能够回答的问题。几个月后真的收到滥用通知时,你需要的就是它;聊天窗口里的备注算不上记录。
下面这段适用于 Linux 或 macOS,回答与 Windows 那段相同的问题。更新之后也要再跑一遍,因为组件布局会在版本之间变化,而新的辅助进程很容易被漏掉。套接字列表会指明所属进程,这正是让两段内容可以跨版本比较的原因。
ss -tunp | head -n 20
lsof -i -P -n | grep -i vpn
journalctl --since '1 hour ago' | grep -i -E 'vpn|relay' | tail -n 20
如果某个投诉里出现了你的地址,请记住 IP 地址本身并不能识别到人。保留通知、时间戳以及你记录的设置,然后按照服务商或管理员的举报流程处理。这并不等于驳回投诉,也确实把共享出口地址与真正从你自己连接离开的流量区分开来。