问题
Windows 报告以太网或 WiFi 链接没有互联网连接,即使用户可以成功访问互联网。 这也可能导致各种 Microsoft 功能无法正常工作,例如 Office 365 设置。
当 Windows PC 连接到 Cato 时,使用主动和被动探测的 Windows 网络连接状态指示器 (NCSI) 检查可能会失败。
环境
通过 socket 后的 Windows PC 或通过 Cato VPN 连接的 PC。
故障排除
当 Windows 连接到新网络时,它使用包含一系列任务的主动探针来检查互联网连接。 确定有互联网连接后,Windows 切换到被动探测,直到连接保持活跃。
基本故障排除
以下是针对每种探针类型的一些故障排除步骤:
1. 主动探针
Windows 使用主动探针来验证每个网络接口上是否可以实现互联网连接,然后更新网络连接状态指示器 (NCSI)。 在主动探测期间,Windows 探测多个 Microsoft DNS 服务器并使用响应来确定活跃的互联网连接。
有关更多信息,请参见:NCSI 主动探测和网络状态警报
对于 Windows 10 或更新版本:
- NCSI 发送 DNS 请求以解析
www.msftconnecttest.com的地址。 -
如果 NCSI 从 DNS 服务器接收到有效响应,NCSI 将发送简单的 HTTP GET 请求到
http://www.msftconnecttest.com/connecttest.txt。 -
如果 NCSI 成功下载文本文件,它确保文件包含 Microsoft Connect Test。
-
NCSI 发送另一个 DNS 请求以解析
dns.msftncsi.com的地址。- 如果这些请求中的任何一个失败,任务栏将出现网络警报。 如果您将鼠标悬停在图标上,您会看到类似 "无连接性" 或 "互联网访问受限" 的消息(取决于失败的请求)。
- 如果所有这些请求成功,任务栏将显示通常的网络图标。 如果您将鼠标悬停在图标上,您会看到类似 "互联网接入" 的消息。
如果您收到有关 Windows 显示无互联网连接的报告,请检查上述连接中的任何一个是否失败。 捕获 PCAP 和检查事件/流量是验证的一种方法。
NCSI 检查日志记录
也可以使用以下方法记录主动 NCSI 检查:
- 通过发出命令来开始跟踪:
netsh trace start scenario=NetConnection tracefile=noint.etl
- 现在重现问题(断开然后重新连接客户端),然后使用命令停止跟踪:
netsh trace stop
- 以下是跟踪文件中可以找到的信息示例:
阻止主动探测的 Windows 注册表设置
主动探测可能会被 Windows 注册表设置阻止,在这种情况下,Windows 将完全依赖于被动探测。
验证以下密钥是否具有默认 Windows 值:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"WinHttpSettings"=hex:18,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00
在下面的示例中,系统代理通过 GPO 修改了 "WinHttpSettings" 注册表键,从而导入了覆盖 Windows 自动设置的默认值的十六进制注册表值。 这将导致主动探测失败。
2. 被动探测
捕获和分析实时网络流量,而不干扰网络,即不发送任何数据包。 被动探测查看 TCP/UDP 数据包的 IP 头中的 TTL(时间),可确定数据包到达计算机的“跳数”。 具有超过 8 次跳跃的数据包被视为具有互联网连接性。
Cato 的 TCP 代理将在 IP 头中设置 TTL 为 96,如下所示。 可以在 Windows 机器上执行数据包捕获,以验证接收到的 TTL 值。
解决方法:
以下是在现场已证明可以解决问题的一些潜在解决方法: -
- 设置以下注册表键以使用 WinTAP(第 2 层)适配器而不是 WinTUN(第 3 层):
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\CatoNetworksVPN\UseWintun=0(DWORD) - 更改以下注册表键以切换到不删除原始路由的新模式。
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\CatoNetworksVPN\RTNoRemoveMode=1(DWORD)
以下是编辑/添加注册表键值的步骤:
-
打开注册表编辑器:
- 按
Win + R打开运行对话框。 - 键入
regedit并按回车。 这将打开注册表编辑器。
- 按
-
导航到键:
- 在注册表编辑器中,导航至
HKEY_LOCAL_MACHINE\SOFTWARE。 - 如果
CatoNetworksVPN键不存在,您需要创建它。 右键单击SOFTWARE键,选择新建,然后选择键。 将键命名为CatoNetworksVPN。
- 在注册表编辑器中,导航至
-
创建 DWORD 值:
- 右键单击刚刚创建的
CatoNetworksVPN键。 - 选择
新建,然后选择DWORD(32 位)值。 - 将新的 DWORD 值命名为
UseWintun或RTNoRemoveMode。
- 右键单击刚刚创建的
-
设置值数据:
- 双击
UseWintunDWORD 值。 - 在适当的“值数据”字段中输入
0或1(不带引号)。
- 双击
-
确认和关闭:
- 点击
确定来保存变更。 - 关闭注册表编辑者。
- 点击
-
重启您的VPN客户端:
- 重启VPN客户端以使注册表键生效。
0 条评论
请登录写评论。