电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Windows Firewall引起的应用程序无法运行问题


发布日期:2019/10/2
 

安装Microsoft Windows XP Service Pack (SP)后 一些应用程序可能无法在更新的操作系统上运行 这是因为默认情况下 Windows Firewall 为启用状态并屏蔽未被认可的外来连接 本文讨论了如何建立一个防火墙例外项通过将一个应用程序加入例外列表从而允许这个程序继续运行

为了提高基于Windows XP SP的计算机的安全性能Windows Firewall 屏蔽了未被认可的外来连接但是有时我们还是需要建立一个例外规则来允许一些入站的连接例如在下列情况下

通过Internet进行多人联网游戏时

要从即时通讯软件接收文件

安装了Windows XP SP客户端应用程序可能不能够成功的从服务器接收数据以下是一些例子

FTP 客户端

流媒体M播放软件

邮件客户端的新邮件提醒

同样运行在Windows XP SP上的服务器端的应用程序也可能不能成功的回应客户端请求以下是一些例子

Web服务器 如IIS

远程桌面

文件共享

Windows XP SP在默认情况下使用下面的交互式组件来实现这个例外规则

Windows Firewall 安全提醒

有时Windows Firewall在屏蔽一个应用程序的运行时会出现一个Windows Firewall 安全提醒 对话框这个对话框包含以下信息

to help protect your computer Windows Firewall has blocked this program from receiving unsolicited information from the Internet or a network

这个提醒信息显示了程序的名称和程序的开发者这个对话框包含个选择

Unblock the program

Keep blocking this program

Keep blocking this program but ask me again later

下面说明如何使用这个对话框来允许这个程序运行

允许程序运行

一些程序为了能够正常运行必须从网络上接收信息这些信息通过入站端口进入计算机Windows Firewall 要允许这些信息进入必须在计算机上打开正确的入站端口要使程序和未装SP之前一样的进行通信来允许程序正常的运行可以使用以下的任何一个方法

通过安全提醒来允许程序运行

在 安全提醒 对话框中选择 Unblock this program

单击确定

通过Windows防火墙设置来允许程序运行

如果你在安全提醒对话框中没有选择 Unblock the program这个程序将被禁止运行你可以通过配置Windows Firewall 来同样达到这个目的:

点击开始运行在打开输入框中输入 wscuicpl然后点击确定

点击Windows Firewall

在Windows Firewall对话框中选择例外选项卡然后选择添加程序

在添加程序的对话框中选择列表中的程序或者通过浏览来选定一个程序

如果你不能确定这个需要设定的程序的具体名称参见后面所述

选定程序后确定

在例外列表中确定你选中的程序项前面的选择框为选中状态确定

注意 如果你以后不想将这个程序作为例外只需要清除这个程序项的选择框

把程序添加到例外列表中有以下好处:

你不需要知道程序具体使用的哪一个端口(与此相比当你想通过打开端口方式来达到目的你必须知道程序所使用的端口号这将在后面详述)

例外列表中的程序所使用的端口仅在等待接收一个连接的时候才会打开

确定并打开端口

如果将程序加入到例外列表之后还是不能够正常运行或者是在选定例外程序时无法确定程序名称你可以手工打开端口在手工打开端口之前必须先确定程序使用了哪些端口确定程序使用端口的可靠方法当然是联系程序开发或支持厂商以获得所需的信息但这种方法多数情况下不是那么方便而且有时程序所用端口的列表不可提供时你可以使用 Netstatexe 来确定这些端口

用 Netstatexe 来确定端口

要使用 Netstateexe 来确定程序所使用的端口按照以下步骤:

运行这个出问题的程序并试图使用其网络功能如对于媒体播放程序打开一个音频流对于Web服务器启动Web服务

点击开始运行输入 cmd 确定

获取监听端口列表 - 在命令提示行中输入以下命令并回车:

netstat –ano > etstattxt

获取进程标识符来确定正在运行的进程 - 在命令提示行中输入以下命令并回车:

tasklist > tasklisttxt

注意 如果问题程序是作为服务运行的需要在输入的命令中加入 /svc 开关来得到每个进程中加载的服务:

tasklist /svc > tasklisttxt

打开 Tasklisttxt定位到需要诊断的那个问题程序记下这个进程的进程标识符

打开 Netstattxt记下关联到那个进程标识符的的所有入口同时记下所使用的通信协议(TCP或UDP)

这个进程所使用的端口号将影响到如何解决这个问题:

如果进程使用大于的端口这些端口号可能不能改变

如果端口号小于这个程序可能使用的是一个端口范围因此仅仅打开某些单独的端口可能没法解决这个问题

用 Windows Firewall 手工打开端口

要确定确切的端口号可以联系程序开发或支持厂商以获得所需的信息或者查看用户文档确定端口需要打开的端口后按以下步骤:

单击开始运行输入 wscuicpl 确定

选择 Windows Firewall

选择例外选项卡单击添加端口

在添加端口对话框中在端口号栏中输入需要打开的端口号并选择 TCP 或 UDP 类别

输入端口名称然后确定例如输入 GamePort

要显示或设定这个端口例外的范围点击改变范围然后确定

在例外选项卡中注意到新的服务已经列出要打开这个端口选中这个服务前面的选择框然后确定

上一篇:XP五个不能启动问题不再困扰Vista

下一篇:认识Windows设备管理器中的问题符号