概要 本文描述了 Microsoft Windows XP Service Pack 2 (SP2) 中 Windows 防火墙对 Microsoft Windows UPnP 框架的影响,还介绍了 Microsoft 为将这些影响降到最低限度而在 Windows XP SP2 中所做的更改。 注意:本文适用于熟悉 UPnP 体系结构和协议的技术用户和设备制造商。
简介 默认情况下,在安装 Windows XP SP2 后,Windows 防火墙是打开的。Windows 防火墙可能对 Windows UPnP 框架产生如下影响:• UPnP 框架可能找不到联网的 UPnP 设备。 • UPnP 框架可能无法控制联网的 UPnP 设备,或者无法向联网设备发送事件和接收这种设备发来的事件。 • UPnP 控制点可能无法找到位于 Windows XP SP2 计算机上的设备。
背景 由于在安装 Windows XP SP2 后,Windows 防火墙是打开的,因此您必须了解以下 Windows 防火墙默认设置:• Windows 防火墙只阻挡不请而至的传入消息,不阻挡外发的消息。应要求传入的数据包(如通过端口 80 的 HTTP 或通过端口 110 或 25 的邮件)无一例外,均可通过。 • 在 Windows XP SP2 中,Windows 防火墙支持例外的概念。在启用例外设置后,它会按程序或功能的要求打开防火墙端口。您不必知道相关联的端口号。Windows 防火墙包括一个打开 UDP 端口 1900 和 TCP 端口 2869 的 UPnP 框架例外设置。 • 默认情况下,对于工作组中的计算机,某些用于文件及打印机共享和用于 UPnP 框架的端口仅限本地子网使用。在 Internet 连接共享主机上为本地子网打开这些端口时,不会在 Internet 连接共享公共接口上打开这些端口。我们建议您不要在全局范围内打开这些端口,因为这样做会在 Internet 连接共享公共接口上打开它们。有关更多信息,请访问下面的 Microsoft 网站: http://www.microsoft.com/china/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx (http://www.microsoft.com/china/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx) 这只适用于连接到工作组的计算机。对于在 Active Directory 目录服务环境下的域计算机,其连接取决于组策略。 • 如果计算机属于某个域,组策略设置可能会重写本地计算机的防火墙端口设置,甚至会关闭防火墙。因此,即使在安装 Windows XP SP2 后,组策略也可能会打开 UPnP 框架的端口。这种情况下,Windows 防火墙不影响 UPnP 框架的操作。反过来,即使在本地防火墙允许访问 UPnP 端口时,组策略也可能会关闭这些端口。 • UPnP 框架使用 UDP 端口 1900 和 TCP 端口 2869。简单服务发现协议 (SSDP) 使用多播搜索来发现 UPnP 设备。多播搜索是使用动态传出端口发送到 UDP 端口 1900 的。Windows 防火墙可接受多播搜索开始后三秒内收到的匹配的多播搜索回复。此后,即使多播搜索回复与搜索请求相匹配,防火墙也会阻挡它们。
UPnP 端口受阻产生的影响当 Windows 防火墙阻挡实现 UPnP 功能所需的端口时,会出现以下情况: • UPnP 框架无法找到已进行自我公告的 UPnP 联网设备。防火墙会阻止这些传入的公告。 • 其他计算机上运行的控制点无法找到或控制 Windows XP SP2 计算机上运行的 UPnP 设备。防火墙阻挡传入的、与 UPnP 设备相关的消息。 如果由于未选中 UPnP 框架防火墙例外设置而导致框架所需的防火墙端口被阻挡,则 UPnP 框架不会尝试向网络发送与 UPnP 相关的设备发现消息,或从网络接收与 UPnP 相关的设备发现消息。 • 这可以避免以下问题:框架发出多播搜索并发现了联网的设备,但由于防火墙阻挡 SSDP 活动消息,该联网设备在超时后消失。在 Windows XP SP2 计算机上运行的控制点无法搜索或找不到联网的 UPnP 设备。 • 在具有多个网络适配器的 Windows XP SP2 计算机上,您可以将 Windows 防火墙配置为在某些适配器上阻挡 UPnP 端口,而在另外一些适配器上打开它们。UPnP 框架会单独处理每个适配器的端口设置。因此,如果在某个适配器上打开了端口并且 UPnP 框架例外设置处于不活动状态,该框架将仅在打开的适配器上发送多播搜索和设备通知消息。该框架将不会在被阻挡的适配器上发送多播搜索和设备通知消息。但是,如果 UPnP 框架例外设置处于活动状态,该框架就会在所有适配器上发布多播搜索和通知消息。 • 在同一台 Windows XP SP2 计算机上运行的 UPnP 设备和控制点能够彼此通信,即使阻挡了 UPnP 所需的防火墙端口也无妨。
UPnP 框架的 Windows 防火墙增强功能升级到 Windows XP SP2 时
如果在升级到 Windows XP SP2 之前使用 UPnP 设备,则升级不会导致系统故障。但是,如果符合以下情况之一,Windows XP SP2 安装程序将在升级过程中自动启用 UPnP 框架防火墙例外设置: • 在计算机上安装并注册了一个承载的 UPnP 设备。 • 安装了可选的 UPnP 用户界面 (UI) 组件。注意:不可能检测所有的 UPnP 功能。例如,承载的控制点不必注册到框架。因此,框架就不会注意到这些控制点。
升级到 Windows XP SP2 后UPnP 框架包括可以手动安装的可选 UI 组件。这些组件在“网上邻居”文件夹中显示任何已发现的 UPnP 设备的图标,并提供演示文稿页。您可以双击一个图标以显示该设备的演示文稿页。如果您选择在已经升级到 Windows XP SP2 的计算机上安装可选的 UI 组件,安装程序将启用 UPnP 框架防火墙例外设置。当您选择 UPnP 用户界面安装程序项时,将显示帮助文本,通知您在安装过程中将要打开的端口。如果删除 UI 组件,将禁用 UPnP 框架防火墙例外设置。但是,如果安装了承载的 UPnP 设备,删除 UI 不会清除例外设置。承载的设备会继续正常运行。
安装和删除 UPnP UI 组件注意:您必须以管理员身份登录到计算机,才能安装可选的 UPnP UI 组件或更改 Windows 防火墙端口状态。要安装可选 UPnP UI 组件并打开所需的 Windows 防火墙端口,请使用下列方法之一。注意:如果删除可选的 UPnP UI 组件,并且未将任何承载的 UPnP 设备注册到计算机上,卸载程序将禁用 UPnP 框架防火墙例外设置。但是,如果将承载的 UPnP 设备注册到了计算机上,UPnP 框架防火墙将保持活动状态以使设备继续运行。
方法 1:使用“控制面板”可以使用“控制面板”安装 UPnP UI 组件并打开所需的 Windows 防火墙端口。为此,请按照下列步骤操作: 1. 单击“开始”,然后单击“控制面板”。 2. 单击“添加或删除程序”。 3. 单击“添加/删除 Windows 组件”。 4. 在“组件”列表中,单击以选中“网络服务”复选框,然后单击“详细信息”。 5. 在“网络服务的子组件”列表中,单击以选中“UPnP 用户界面”复选框,然后单击“确定”。注意:要删除 UPnP UI 组件,请单击以清除“UPnP 用户界面”复选框。 6. 在“Windows 组件向导”中,单击“下一步”。
方法 2:使用“网上邻居”可以使用“网上邻居”安装 UPnP UI 组件并打开所需的 Windows 防火墙端口。为此,请按照下列步骤操作: 1. 单击“开始”,然后单击“控制面板”。 2. 单击“网络和 Internet 连接”。 3. 在“其它位置”下,单击“网上邻居”。 4. 在“网络任务”下,单击“显示联网的 UPnP 设备的图标”。 5. 您会收到以下消息: 为帮助保护您的计算机,Windows 防火墙已经阻止 UPnP 设备软件从网络接收信息。需要此信息显示图标。 您想打开 Windows 防火墙端口设置吗? 这样软件可以检测联网的 UPnP 设备?如果您单击“否”,图标将不显示。如果您单击“否”,将不会显示图标、不会安装 UPnP UI 组件,而且会退出安装程序。如果单击“是”,则安装 UPnP UI 组件,并启用 UPnP 框架防火墙例外设置。要使用“网上邻居”删除 UPnP UI 组件,请按照下列步骤操作: 1. 单击“开始”,然后单击“控制面板”。 2. 单击“网络和 Internet 连接”。 3. 在“其它位置”下,单击“网上邻居”。 4. 在“网络任务”下,单击“隐藏联网的 UPnP 设备的图标”。 5. 您会收到以下消息: 您已经选择隐藏 UPnP 设备图标。同时这也将关闭 Windows 防火墙端口,这样 UPnP 设备软件不再发现联网的 UPnP 设备。 要继续吗?如果单击“否”,则不删除 UPnP UI 组件并且退出安装程序。如果单击“是”,则删除 UPnP UI 组件。此外,还会禁用 UPnP 框架防火墙例外设置,除非安装了承载的 UPnP 设备。
手动启用 UPnP 框架的 Windows 防火墙例外设置要手动打开 UPnP 框架所需的 Windows 防火墙端口,必须启用 UPnP 框架例外设置。要启用例外设置并打开 UDP 端口 1900 和 TCP 端口 2869,请按照下列步骤操作: 1. 依次单击“开始”、“控制面板”和“安全中心”,然后单击“Windows 防火墙”。 2. 在“常规”选项卡上,确保选中了“启用(推荐)”选项。注意:如果选中了“启用(推荐)”选项和“不允许例外”选项,UPnP 框架端口将仍保持关闭,即使完成了此过程中的其他步骤也是如此。 3. 在“例外”选项卡上,单击以选中“UPnP 框架”复选框。注意:这会将所有网络适配器上的 UDP 端口 1900 和 TCP 端口 2869 设置为仅接受来自本地子网的消息。要更改此设置,请单击“UPnP 框架”,然后单击“编辑”。完成防火墙配置后,单击“确定”,设置即生效。例如,可能要更改设置以便接收来自所有 IP 地址的消息。 重要说明 • 您可以将 Windows 防火墙手动配置为仅阻挡 UPnP 框架所需的一个端口。但是,我们建议您不要执行此操作。 • 如果禁用了 Windows 防火墙,或者组策略重写了本地计算机的防火墙设置,则可能无法更改例外设置。如果组策略重写了设置,即使您可以进行更改,该设置也可能无效。 • 打开 Internet 连接共享功能后,它将只自动启用专用接口上的 UPnP 框架端口。 • 如果打开了 Internet 连接共享功能,则不应手动启用例外设置。这将关闭所有网络接口上的 UPnP 端口的防火墙保护,包括 Internet 连接共享公用接口。这就会使计算机直接暴露在 Internet 中。
UPnP 设备和控制点供应商当安装承载的 UPnP 设备或控制点时,UPnP 供应商应检查 Windows 防火墙端口的状态。供应商应编写设备和控制点安装程序,以便这些安装程序检查 UPnP 框架防火墙例外设置的状态。编写安装程序时请遵循以下原则: • 如果例外设置处于活动状态,则继续安装。 • 如果例外设置处于不活动状态,并且端口被阻挡,安装程序应确认用户希望在安装过程中打开端口。 • 如果用户同意打开端口,安装程序应启用例外设置,并继续安装。 • 如果用户拒绝打开端口,安装程序则不应启用例外设置或打开任何端口。注意:如果用户拒绝,由供应商决定是否继续安装。不过,我们建议安装程序取消安装。 • 如上所述,如果正在运行 Internet 连接共享,则不应启用 UPnP 框架例外设置。这适用于 UPnP 设备和控制点安装程序以及最终用户。要以编程方式确定是否正在运行 Internet 连接共享,您的安装程序可以使用 IEnumNetSharingPublicConnection 和 IEnumNetSharingPrivateConnection 应用程序编程接口。如果既找到了公用连接,又找到了专用连接,则表明正在运行 Internet 连接共享,安装程序不应启用 UPnP 框架例外设置。(出处:http://www.sheup.com)