起因是我在想一个问题:一个普通人的笔记本,到底往外暴露了多少跟无线有关的东西?这个问题平时没人会问,因为看不见。我在自己这台机器上用系统自带的命令跑了一遍,过程贴在下面,回显里涉及具体网络名和硬件地址的我都打了码,命令和结果结构是原样。
机器是台老笔记本,无线网卡 Intel Dual Band Wireless-AC 3168,系统是 Windows 10。
第一步,看当前连接状态。命令:
netsh wlan show interfaces
回显(打码后):
系统上有 1 个接口:
名称 : WLAN
描述 : Intel(R) Dual Band Wireless-AC 3168
物理地址 : 88:b1:11:**:**:**
状态 : 已连接
SSID : J**
BSSID : f8:00:a1:**:**:**
网络类型 : 结构
无线电类型 : 802.11n
身份验证 : WPA2 - 个人
密码 : CCMP
连接模式 : 自动连接
信道 : 13
接收速率(Mbps) : 86.7
传输速率 (Mbps) : 86.7
信号 : 99%
配置文件 : J**
承载网络状态 : 不可用
这里有几件事值得说。一个是无线电类型是 802.11n,不是 ac。这张卡是双频 AC 的,但连的是 2.4G 的网络,所以跑在 n 上,速率 86.7 Mbps。这不是故障,是这张卡和这个 AP 协商出来的结果。另一个是信道 13,这个在国内是合法的(国内 2.4G 开放 1—13),但同一张卡拿到只允许 1—11 的地区就会有问题,出差带机器的人偶尔会撞上这种"连不上某个网"的怪事,根子在这。
信号 99% 说明我就在 AP 旁边,这是在家测的好处也是局限——测不出远场的情况。
第二步,看这台机器记住了多少个网络。命令:
netsh wlan show profiles
回显(打码后):
接口 WLAN 上的配置文件:
组策略配置文件(只读)
---------------------------------
<无>
用户配置文件
-------------
所有用户配置文件 : J**
所有用户配置文件 : 半****_PRO
所有用户配置文件 : 半****_HiLink
所有用户配置文件 : cs** 2G ****
四个。这一步是我觉得最有价值的一步,因为大多数人根本不知道自己机器里攒了多少个网络记录。这些配置文件里存着每个网络的 SSID、认证方式、加密类型,而且在管理员权限下,一条 netsh wlan show profile name="xxx" key=clear 就能把明文密码也显示出来(这条命令我今天没跑,跑出来的东西不适合贴)。
换句话说,一台笔记本被别人拿到手五分钟,管理员权限下有,能拿走的不是"你上过哪些网"这么简单,而是这些网的凭据本身。第二个和第三个其实是同一个路由器的两个频段加一个易联扩展,第四个从名字看是个办公或者公共场所的网。这些记录会一直留着,直到你手动删。
第三步,看 WLAN 服务的全局设置。命令:
netsh wlan show settings
回显(打码后):
无线局域网配置
---------------------
显示可见网络列表中的阻止网络: 否
在配置 GP 的网络上仅使用 GP 配置文件: 否
在 WLAN 服务中允许承载网络模式: 是
允许共享用户凭据用于网络身份验证: 是
阻止时间段: 未配置。
在接口"WLAN"上已启用自动配置逻辑
已在接口 WLAN 上禁用 MAC 随机化
最后这一行是我今天要找的东西,也是我事先没料到的。
我本来以为 MAC 随机化是开着的。Windows 从某个版本开始,对新的无线网络默认用随机硬件地址连,对外广播 probe request 的时候不会带上你网卡的真实 MAC。这东西的意义在于:商场、机场、门店那些采集 probe 帧的系统,就没法用一个固定 MAC 把你的行踪串起来。
结果这台机器上是禁用的。
需要说明的是,禁用不一定是我或者谁手动关的。netsh wlan set randomization 的帮助里写得很清楚:"如果接口不支持随机化或者随机化被系统管理员阻止,则该命令将会失败。"也就是说三种可能:网卡不支持、被策略阻止、被人关掉。这张 3168 从规格上应该支持,具体是哪一种我没继续往下挖,因为要动注册表查策略,属于改配置范畴了,今天只做检查不改设置。
我把改回去的命令也确认了一遍,跑的是:
netsh wlan set randomization /?
回显:
用法: set randomization[enabled=]yes|no [interface=]<string>
参数:
标记 值
enabled - 将 MAC 随机化设置为已启用或已禁用。
interface - 必须更改其设置的接口的名称。
备注:
如果接口不支持随机化或者
随机化被系统管理员阻止,则该命令
将会失败。
两个参数都是必需的。
示例:
set randomization enabled=yes interface="Wireless Network Connection"
所以开启的命令是(接口名按自己机器的实际名称填):
netsh wlan set randomization enabled=yes interface="WLAN"
另外"在 WLAN 服务中允许承载网络模式: 是"这一条,说的是这台机器有能力开软 AP。功能本身没毛病,但意味着如果有人在你机器上放东西,可以把这台机器变成热点。承载网络状态显示"不可用",说明当前没开着。
第四步,看蓝牙。命令用的是 PowerShell:
Get-PnpDevice -Class Bluetooth | Select-Object Status,Class,FriendlyName
回显:
Status Class FriendlyName
------ ----- ------------
OK Bluetooth Bluetooth Device (RFCOMM Protocol TDI)
OK Bluetooth 英特尔(R) 无线 Bluetooth(R)
OK Bluetooth Microsoft 蓝牙 LE 枚举器
OK Bluetooth Microsoft 蓝牙枚举器
四个蓝牙设备,全部 OK。第一条 RFCOMM Protocol TDI 是蓝牙串口协议那个设备,存在说明蓝牙串口服务是启用的。我平时蓝牙是开着的,耳机和鼠标都要用。这一步没有发现问题,但记录下来是因为:蓝牙开着的时候,机器会持续向外广播。这个广播本身能被用来判断你在不在附近。
把四步合起来,这台机器的无线暴露面大概是这样:一个真实 MAC 在对外广播 probe、四个历史网络的凭据存在本地、蓝牙常开、软 AP 能力可用。每一项单独拿出来都不算严重,合在一起就是一台"能被认出来、能被跟踪、拿到手能掏出东西"的机器。
我做这次自查的几个结论,都是能立刻执行的:
一是把 netsh wlan show profiles 当成日常检查项。跑一次十秒钟,看看自己攒了多少网络。不用的删掉:
netsh wlan delete profile name="网络名"
二是确认 MAC 随机化是不是开着。netsh wlan show settings 最后那行会直接告诉你。关着的就用上面的命令开起来,开完重连一次生效。
三是蓝牙不用的时候关掉。这个没有技术含量,但最有效。
四是别在这类检查上装第三方工具。系统自带的 netsh 和 PowerShell 就够,装个来路不明的 WiFi 管理器,等于主动把权限交出去。
最后说一个我做完这次检查的体会。这些东西平时没人提,是因为它不产生"事件"——没有告警、没有中毒、没有损失,机器一直在正常用。但暴露面就是这么一点点攒起来的:连过的网记下来了,随机 MAC 不知道什么时候关了,蓝牙常年开着。真出事的时候回头查,会发现每一样都曾经是可以关掉的。
这篇里所有命令都是 Windows 自带的,回显来自本机实际执行,网络名与硬件地址已打码。过程可复现,谁想查自己机器照着跑一遍就行,不会改坏任何东西(除了最后那条开随机化的命令,那条会改设置)。
**HKTULU**
2026-10-25
|
|