Windows VPN 适配器上的“未识别的网络”:它意味着什么
这个标签来自 Windows 的网络位置识别,而不是隧道本身。在动适配器之前,先读配置文件、地址和路由。
Windows 会给任何无法归类到某个位置的接口打上“未识别的网络”,而 VPN 适配器是常见的对象,因为它往往没有自己的默认网关。这个标签是防火墙分类,并不说明隧道是否通过认证,也不说明你的应用能否到达任何地方。把它当成错误提示,正是人们最后 重置一个本来正常的适配器 并丢掉原本没问题的会话的原因。两条命令就能判断这个标签是否值得理会。
这个标签是防火墙分类,不是状态指示灯
网络位置识别决定接口属于域、专用网络还是公用网络,防火墙随后套用该类别的规则集。分类失败时结果就是“未识别”,通常会把接口放进公用配置文件。公用配置文件正是默认拦截大部分入站流量的那个。
公用是限制性配置,所以实际问题在于你的服务在那里是否被允许。隧道完全可以健康,却仍然显示这个标签,因为分类取决于接口的形态,而不是连接的状态。
这个区别解释了最令人困惑的报告:昨天还能用、今天不能用的文件共享,适配器没人动过,只因为某条规则限定在专用配置下,而接口现在处于公用。
改动之前先读三件事
按顺序检查分类、地址配置和到目标的路由。如果资源能用,这个标签对你就只是表面现象,诚实的答案是别动它。
下面这些命令会打印当前配置文件、接口清单以及单个适配器的配置:
Get-NetConnectionProfile
Get-NetAdapter | Format-Table Name,InterfaceIndex,Status
Get-NetIPConfiguration -InterfaceAlias "My VPN Adapter"接口索引很重要,因为配置文件 cmdlet 按索引寻址接口,而一台同时有物理适配器、Wi-Fi 适配器和隧道的笔记本就有三个。读错了,就会对没人使用的网络给出自信的诊断。
适配器为什么会显示为未识别
分类会寻找接口属于某处的证据:能到达的域控制器、表现得像家庭网络的网关,或可解析的身份。隧道接口往往既没有网关条目也没有广播域,探测就无从下手。
全隧道客户端有时通过指定网关或携带分类探测能跟随的路由来避开这个标签。分离隧道客户端更常出现它,因为隧道只承载配置过的前缀,其余流量从别处出去。
这些都不是缺陷。这是分类引擎在描述一个看起来不像局域网的接口,而隧道正是如此。
标签开始有影响的地方是策略。按配置文件选择的管理工具、终端代理或防火墙规则会把未识别接口当作公用,由此产生的拦截是真实的,哪怕原因只是一个标签。
更改分类会有后果
把接口标记为专用是一个信任决定,它把专用规则集套用到到达该适配器的流量上。如果隧道终止于你无法控制的提供商,或者设备能加入不受信任的网络,这个改动就扩大了从该接口可以到达的范围。它还会让设备在你可能并不拥有的网段上可被发现。为了一个表面标签,代价太大了。
把每个未识别接口都设成专用的宽泛脚本更糟,因为它把同样的信任套用到你从未检查过的适配器上。在受管理的设备上,改动还可能在下次刷新时被策略覆盖,留下的修复能用,直到它不能为止。
修失败的那条链路,而不是名字
从具体故障出发:打不开的共享、加载不了的站点、找不到的打印机。然后拆开原因——名称解析、路由选择、防火墙范围和用户权限各有不同的失败方式,也给出不同的提示。
如果故障在名称,就从该适配器而不是整台机器去测试解析。如果是路由,打印到确切目标的路由。如果是防火墙,读取生效的配置文件和本应放行流量的规则,再判断限定到程序的一条窄规则是否比更改分类更合适。
只有排除这三者之后,分类才成为可能的原因;即便那时,修复也应当是最小的、能让所需链路跑起来的那一个。目标不是更熟悉的网络名字,而是在已批准的规则下能用的共享。