Always On VPN 设备隧道(Device Tunnel)是 Windows 10/11 企业版和教育版中一项特殊能力,它允许计算机在没有任何用户登录的情况下,使用计算机证书自动建立 VPN 连接。与用户隧道不同,设备隧道在系统启动后、用户输入凭据之前就已经建立,因此可以用来刷新组策略、推送软件、执行开机脚本。要在生产环境中稳定运行设备隧道,证书链、NPS 策略、路由表和 ProfileXML 每一项都需要严格匹配。下面从前提条件开始,逐步配置。

一、设备隧道的前提条件与环境准备
设备隧道对客户端操作系统版本有明确限制,只有 Windows 10/11 的企业版(Enterprise)和教育版(Education)支持设备隧道,专业版不支持。客户端必须加入 Active Directory 域,并能够访问企业证书颁发机构(CA)以自动注册计算机证书。服务端方面需要一台运行 Windows Server 的 RRAS 服务器,同时安装网络策略服务器(NPS)角色。网络层面,防火墙需要放行 UDP 500 和 UDP 4500 端口,IKEv2 协议还需要允许 ESP 协议或 UDP 4500 上的 NAT-T 流量。
证书体系是设备隧道最容易出问题的地方。客户端计算机需要一张包含客户端身份验证 EKU 的机器证书,私钥必须存储在计算机的证书存储中,并且证书链完整可信。VPN 服务器需要一张服务器身份验证证书,证书的主题名称必须与客户端配置中的 VPN 服务器地址完全一致,否则 IKE 协商会直接失败。此外,证书模板的权限配置需要允许域计算机读取和注册,否则自动注册不会生效。
在开始配置前,建议先验证 PKI 健康状态:在域控制器上运行 certutil -view 查看证书模板发布情况,在客户端计算机上运行 gpupdate /force 并检查证书是否自动注册成功。设备隧道只支持 IKEv2,不支持 SSTP 或 L2TP,因此上述端口和证书要求都是围绕 IKEv2 设计的。
二、服务端配置:RRAS 与 NPS 策略
安装 RRAS 角色后,可以使用 Server Manager 或 PowerShell 进行配置。以 PowerShell 为例,先安装远程访问角色:Install-WindowsFeature RemoteAccess -IncludeManagementTools,然后使用 Install-RemoteAccess -VpnType Vpn 将服务器配置为 VPN 服务器。接下来需要配置 IKEv2 所需的服务器证书,将该证书绑定到 RRAS。在 Routing and Remote Access 控制台中,右键服务器属性,在 Security 选项卡中选择证书,确保所选证书具有服务器身份验证 EKU。
RRAS 默认只处理 VPN 连接请求,但设备隧道需要配合 NPS 进行授权。NPS 中需要创建一条网络策略,条件包括 NAS 端口类型为 Virtual (VPN),并且身份验证方法为 EAP 或 MS-CHAP v2,实际上设备隧道使用 IKE 证书认证,但 NPS 仍然需要授权域计算机组。策略中的权限设置为授予访问权限。如果 RRAS 与 NPS 部署在不同服务器上,需要在 RRAS 中配置 RADIUS 服务器和共享机密。
配置完成后,可以使用 netsh ras show conf 检查 IKEv2 端口数量,默认 IKEv2 端口为 128 个。建议根据并发设备数量调整端口数,使用 netsh ras set portstatus 或 GUI 修改。同时,在 RRAS 属性中启用 IPv4 路由和 DHCP 中继代理,为设备隧道分配内网 IP 地址。
三、客户端设备隧道 ProfileXML 配置
设备隧道的客户端配置通过 ProfileXML 下发,可以使用 Intune、SCCM 或 PowerShell 部署。ProfileXML 中根元素为 <VPNProfile>,属性 DeviceTunnel 必须设置为 true,以区分用户隧道。同时还需要指定协议为 IKEv2,并配置路由或流量过滤器。下面的示例展示了一个最小可用设备隧道配置:
<VPNProfile>
<NativeProfile>
<Servers>vpn.internal.contoso.com</Servers>
<RoutingPolicyType>SplitTunnel</RoutingPolicyType>
<NativeProtocolType>IKEv2</NativeProtocolType>
<Authentication>
<MachineMethod>Certificate</MachineMethod>
</Authentication>
<DeviceTunnel>true</DeviceTunnel>
</NativeProfile>
<Route>
<Address>10.10.0.0</Address>
<PrefixSize>16</PrefixSize>
</Route>
</VPNProfile>
上述 XML 中,<DeviceTunnel> 是设备隧道的关键标志,<MachineMethod> 指定使用机器证书认证。<RoutingPolicyType> 设置为 SplitTunnel 后,需要显式添加路由,只有匹配路由的流量才会走 VPN。如果希望所有流量都走 VPN,可以改为 ForceTunnel,但设备隧道通常用于管理流量,建议使用 SplitTunnel 减小负载。
部署 ProfileXML 可以使用 PowerShell 的 Add-VpnConnection 命令,但设备隧道不能使用该命令直接创建,必须通过 MDM CSP 或封装为配置文件。以 Intune 为例,在配置文件中选择自定义 OMA-URI:./Device/Vendor/MSFT/VPNv2/AlwaysOnDeviceTunnel/ProfileXML,数据类型为字符串,将上述 XML 压缩为一行后填入。注意 XML 中的尖括号在 Intune 控制台会按字面处理,不要手动转义。
如果使用 PowerShell 测试,可以先将 XML 保存为文件,然后使用 MDM_VPNv2_01 WMI 类写入 CSP 节点。由于 CSP 写入需要 SYSTEM 权限,通常在 MDM 或 SCCM 中操作更稳妥。
四、验证与故障排查
设备隧道配置完成后,重启客户端计算机,在用户登录界面之前打开命令提示符或使用远程管理工具,运行 Get-VpnConnection 查看 Always On VPN 连接状态。设备隧道的连接名称通常以 DeviceTunnel 或配置名称显示,状态应为 Connected。进一步运行 route print 检查路由表,确认到内网子网的流量指向 VPN 接口。使用 ping 测试内网资源是否可达,例如域控制器 IP。
如果连接失败,优先查看事件查看器中的应用程序和服务日志 -> Microsoft -> Windows -> RasClient -> Operational,常见错误码 13801 表示 IKE 身份验证失败,通常与证书或预共享密钥无关,而是证书链或 EKU 不匹配。错误 0x80092004 表示无法找到用于签名的证书,通常客户端机器证书缺失或私钥不可访问。错误 20269 表示 IKE 协商超时,需要检查 UDP 500/4500 和防火墙策略。
证书相关的排查可以使用 certutil -store My 列出当前用户证书,certutil -store Machine\My 列出计算机证书,确认设备隧道使用的机器证书存在且有效。使用 certutil -verify -urlfetch 检查证书链和 CRL 是否可访问。如果 CRL 无法访问,IKE 协商会因为无法验证证书状态而失败,建议在证书模板中配置发布 CRL 到内部 HTTP 或 LDAP 路径,并确保 VPN 客户端在连接前能够访问。
NPS 侧的问题可以通过事件查看器中的 NPS 日志查看,路径为服务器管理器中的 NPS -> 记帐,或者事件查看器中的 Security 日志。如果 NPS 没有授权设备隧道连接,网络策略的条件或权限设置有误。最后,如果客户端路由表没有内网路由,检查 ProfileXML 中的 <Route> 节点是否书写正确,以及路由策略是否与路由表匹配。
Always On VPN设备隧道ProfileXML修改时间:2026-09-23 05:30:28