UDP 在发送到本地计算机时被 Windows XP 防火墙阻止

UDP 在发送到本地计算机时被 Windows XP 防火墙阻止

我在一家软件开发公司工作,但这个问题似乎与编程无关。

这是我的设置:

  • Windows XP Professional(带 Service Pack 3),已全部更新
  • 发送 UDP 数据报的程序
  • 接收 UDP 数据报的程序
  • Windows 防火墙设置为允许特定端口上的入站 UDP 数据报(范围:子网)

如果我在任何端口上向其他类似的机器发送 UDP 数据报,它都会通过。如果我将 UDP 数据报发送到运行发送程序的同一台计算机(无论是使用广播、本地主机 IP 还是机器的特定 IP),接收程序将一无所获。

我已将问题追溯到 Windows XP 防火墙,因为 Windows 7 没有这个问题(我不想让 Vista 沾沾自喜)。如果我在 WinXP 防火墙中为该 UDP 端口创建的例外设置为子网范围,则数据报将被阻止,但如果我将其设置为所有计算机或专门输入我的网络设置(192.168.2.161 或 192.168.2.0/255.255.255.0),它就可以正常工作。使用不同的 UDP 端口没有区别。

我尝试了不同的程序来重现这个问题(ServerTalk 发送,IP Port Spy 或 PortPeeker 接收),以确保问题不是出在我们的代码上,这些程序的数据报也被阻止了。另外,那台电脑只有一个网络接口,所以没有额外的网络异常。我从 DHCP 服务器接收我的 IP,所以这是一个简单的设置。

鉴于 Windows 7 中不会发生这种情况,我必须假设这是 Windows XP 防火墙的一个缺陷,但我认为其他人以前也会遇到过这个问题。有人遇到过类似的事情吗?有什么想法吗?

答案1

防火墙设置可能会以一种奇怪而奇妙的方式被搞砸。

您可以尝试从头开始重建所有防火墙设置,方法是单击 Windows 防火墙中高级选项卡的“恢复默认设置”按钮,然后重新执行例外。

注意:我想知道这种情况是否发生在您域中的其他 XP 计算机上。请记住,在域中,组策略设置可能会覆盖本地防火墙设置。

相关内容