你的端点查看器把一个 VPN 进程列在一家广告公司的域名旁边,而这种配对开启了一个数据无法支撑的故事。那个名字是画在数值端点之上的一次反向查询,查询一变,它就会变。经得起推敲的列是地址、连接状态,以及持有该套接字的 PID。

套接字表格里没有任何东西描述连接内部经过了什么。任何带域名的东西,都已经替你先解读过了。

解析出的名字是翻译,不是字段

查看器请解析器把一个地址变成名字,方式与 DNS 里的 PTR 查询相同。答案可能来自本地缓存、hosts 文件里的条目、邻居发现公告,或者来自上周把该地址交给别人的服务商,而工具没有办法区分这些来源。两台机器观察同一条连接,可能为同一个对端地址打印出不同的名字;如果你相信名字是从线路上来的,这就很难解释。请把标签当作给人眼看的便利,而不是关于谁收到字节的陈述。

TCPView 文档描述了端点、状态和进程这几列,也记录了如何关闭已解析的名字;在从域名里读出任何含义之前,值得先这样做。关掉解析是把不确定性变得可见,而不是把它创造出来:你手里仍然是一个地址,而判断它意味着什么的工作,只是回到了你这边。

按顺序读取数值列

从左往右看,在第一个回答你问题的列停下来。本地端点显示进程绑定了什么,远端端点显示是否真的存在对端,状态显示这条关联是否还活着,而 PID 把这一行与一个可执行文件连起来。

下面三条观察是示意性的形态,而不是在这里任何机器上抓到的输出。它们按各自能支撑什么来分组,因为那才是人们真正会向一行套接字提出的问题:

What the row showsWhat it rules outWhat it cannot show
An open listener with no peer addressAny remote party; nothing beyond this host has reached the portWhether the local service is well configured, or who is allowed to use it
An association in the open stateThat the entry is cosmetic; a peer address exists and was acceptedWhich application data crossed it, or whether that peer is trustworthy
An association whose counters moveThat the conversation is idle or already staleWhat was requested, what came back, or who started it

一个别的机器够不到的、绑定在回环地址上的开放监听,正是许多 VPN 客户端暴露自身控制通道的方式。通配绑定意味着进程在所有接口上都接受了连接,而这是否危险取决于主机防火墙,而不是这一行本身。只有真实存在并带着计数器的那种关联,才像人们通常想提出的指控;即便是那一行,也在载荷之前就停住了。

在点名之前先核实归属

进程身份正是大多数指控真正失败的地方。PID 会被复用,更新程序和浏览器辅助进程会生出短命的子进程,而 VPN 客户端可能把自己的流量交给一个有特权的系统服务。请比较可执行文件的路径和父进程,而不是显示名称,因为显示名称是由构建该二进制的人挑选的。

tcpvcon -n -a
Get-Process -Id 4188 | Select-Object Id, ProcessName, Path

同样的读法在 Linux 上也存在:当你有足够权限查看其他用户的套接字时,套接字统计可以带上进程信息。查询绑定到或来自 443 端口的已建立套接字,可以把输出收窄到真正重要的那些行:

ss -tunp state established '( sport = :443 or dport = :443 )'

把时间戳和这一行一起记下来。单独的 PID 是一个会移动的参照物,因为等你打开进程管理器时,套接字可能已经属于后继进程,而你查看的路径也可能并不是当初持有连接的那个。把端点对、状态和 PID 记成同一条观察,这样结论才能经得起重启或第二意见。

名字还有什么价值

域名并非毫无价值的证据。它记录了有人在某个时刻把那个地址和那个名字关联过。当该地址属于一家服务成千上万互不相关客户的服务商时,这种关联值得注意。它比目的地更弱,而这也是标签唯一能支撑的主张。

当名字看起来不对时,把地址与服务商公布的范围对照一下,然后问那一刻进程在做什么:检查更新、调用许可证、发送遥测,还是做隧道握手。这些活动留下的连接形态各不相同,把形态与时刻对上,比把名字与你怀疑的公司对上更有信息量。

在终止一个共用辅助程序或卸载任何东西之前,先把这一行保存下来。站得住的结论只覆盖一个被观察到的端点、它的状态和它的所有者;建立在已解析标签之上的全品牌判决不是证据,而「熟悉的下载主机一定无害」这种安慰同样不是证据。

相关文章