近日,多名虚拟化技术爱好者在社区反映,在使用Oracle VirtualBox搭建的内部网络环境中,两台Windows 11虚拟机(VMs)之间通过WinRM(Windows远程管理)和SMB(服务器消息块协议)进行身份验证时,始终返回错误代码86(ERROR_LOGON_FAILURE,即登录失败)。该问题出现在工作组模式下(无域环境),且主机间直接通信,但无论采用何种凭据配置,认证均告失败。该现象已引发广泛讨论,普通用户甚至部分高级技术人员均表示难以理解。

问题重现:看似简单的网络为何“认不出”用户?

据用户描述,测试环境为两台Windows 11 22H2及以上版本虚拟机,均安装于VirtualBox 7.0.x。网络模式选择“内部网络”(Internal Network),确保两台虚拟机处于同一子网,且能够相互ping通。工作组名称统一设置为“WORKGROUP”,未加入任何域。当尝试从VM-A通过WinRM连接VM-B(如使用Enter-PSSessionInvoke-Command),或者通过SMB访问共享文件夹(如net use)时,系统立即返回错误86:“登录失败:未知的用户名或错误密码”。即使反复核对用户名与密码(包括使用内置管理员Administrator账户、本地普通账户,甚至尝试完全相同的凭据),故障依旧。

更令人困惑的是,在相同虚拟机配置下,若使用桥接网络或NAT模式,则认证通常可正常完成。仅当切换至“内部网络”时,问题凸显。这表明该错误并非简单的凭据输入错误,而可能与VirtualBox内部网络的特定机制或Windows 11的安全策略有关。

错误86背后:潜在的技术“暗礁”

错误86在Windows中通常对应“用户名或密码错误”,但在此场景中,凭据本身无误,因此原因需从更深层挖掘。社区中已有多种分析:

  1. 虚拟网卡与网络位置类型冲突:VirtualBox内部网络默认将虚拟网卡识别为“未识别网络”,Windows 11可能因此将其标记为“公共网络”。公共网络下,WinRM和SMB的防火墙规则和认证策略会变得异常严格,如禁止空密码、禁止管理员远程登录等。即使手动将网络配置文件改为“专用”,有时也无法持久生效。

  2. 凭据管理器与Kerberos协议的“误会”:工作组环境下,Windows默认使用NTLM认证。但Windows 11可能在某些情况下尝试Kerberos,而Kerberos需要DNS解析或域控制器支持。内部网络中缺乏DNS服务器,导致认证回退失败,最终报错86。部分用户通过组策略强制使用NTLMv2成功解决了问题。

  3. VirtualBox Guest Additions与网络驱动兼容性:有用户指出,未安装或版本过旧的Guest Additions可能导致虚拟网卡驱动无法正确处理Windows的认证请求包,尤其是SMB签名和加密协商环节。

  4. Windows Defender防火墙与高级安全设置:虽然用户已添加允许WinRM和SMB的入站规则,但内部网络接口上可能启用了“Windows Defender防火墙:允许本地主机的流量通过”的额外限制,导致认证流量被静默丢弃。

临时变通方案:社区摸索出的“处方”

面对这一顽固问题,社区已尝试多种临时解决方案,部分用户反馈有效:

  • 强制使用NTLMv2:在虚拟机中运行secpol.msc,进入“安全设置”→“本地策略”→“安全选项”,找到“网络安全:LAN管理器身份验证级别”,将其修改为“发送NTLMv2响应。拒绝LM和NTLM”。然后重启服务。

  • 修改网络位置为专用:通过PowerShell运行Set-NetConnectionProfile -InterfaceAlias “以太网” -NetworkCategory Private,并确保该设置重启后保留。

  • 关闭SMB签名与加密:在注册表HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters中创建DWORD值RequireSecuritySignature=0,并重启Server服务。注意:这会降低安全性,仅建议测试环境使用。

  • 使用IP地址而非主机名:在WinRM或SMB连接时,直接使用IP地址,并添加-SkipCACheck-SkipCNCheck参数(如Enter-PSSession -ComputerName 192.168.56.101 -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck))。

  • 更新VirtualBox及Guest Additions:Oracle已在VirtualBox 7.0.12中修复部分网络认证相关问题,建议用户升级至最新版。

官方尚未回应,用户期待根本性修复

截至发稿,Oracle官方尚未就该问题发布正式声明。在VirtualBox论坛及GitHub Issue区,类似报告已积累数百条,多数用户呼吁开发团队深入研究内部网络模式下Windows 11认证失败的根因。有分析认为,这可能与Windows 11 22H2引入的“增强型安全认证”功能有关,该功能在内部网络环境下意外激活了更严格的认证检查。

对于依赖VirtualBox内部网络进行开发测试、培训机构实验或安全研究的技术人员而言,该问题已严重干扰工作流。临时方案虽可迂回通过,但非长久之计。我们建议受影响的用户持续关注VirtualBox版本更新,并尝试在Windows 11中调整“网络访问:本地账户的共享和安全模型”为“经典——对本地用户进行身份验证,不改变其本来身份”,该设置可能缓解部分冲突。

技术进步的路上,兼容性荆棘常在。Windows 11与VirtualBox内部网络的这场“认证拉锯战”何时落幕,让我们拭目以待。