如何抑制Windows防火墙的Windows安全警报? [英] How to suppress the Windows Security Alert for Windows Firewall?

查看:18
本文介绍了如何抑制Windows防火墙的Windows安全警报?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我从下面的ZeroMQ指南中用C++创建Hello World示例时: http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall-Receive

运行该应用程序时,我收到一条Windows安全警报,询问我是否允许该应用程序在公用网络或专用网络上通信。

如下所示:

这里是事情变得有趣的地方。

我只需要我的程序在端口5555上侦听来自本地主机的连接,而不需要允许端口5555上的传入连接。这是因为我只想在本地主机上的应用程序之间通信。

客户端和服务器都在同一台计算机上运行。

以下是我当前的流程。我启动服务器,出现Windows安全警报,因为我是以非管理员帐户运行应用程序,所以我只有标准权限。然后,我在警报上单击取消。

单击警报上的Cancel(取消)会在HelloWorldServer.exe的所有端口上显示拒绝入站规则。这完全正常

然后启动客户端。因为客户端正在连接到本地主机。我实际上不需要将消息发送到本地计算机之外,并且它的所有消息都可以很好地到达服务器。

给定对到HelloWorldServer.exe的传入连接的显式拒绝规则,消息仍可以从本地主机上的客户端到达。这是理想的结果。

现在的问题是,是否可以自动响应Windows安全警报以单击Cancel?由于不需要允许,有什么方法可以阻止它弹出吗?

该提示不可取,因为它暗示应用程序需要在不创建漏洞时创建漏洞。

请假定命名管道不是作为进程间通信方式的有效替代方案。

推荐答案

绑定套接字时,调用方可能会指定套接字绑定到的IP地址。ZeroMQ提供的编码示例指定

socket.bind ("tcp://*:5555"); 

其中*似乎是指定所有可能的地址(在BSD套接字派生术语中为INADDR_ANY),这些地址将触发Windows防火墙,因为它允许远程和本地地址。

使用本地主机地址127.0.0.1调用socket.bind

socket.bind ("tcp://127.0.0.1:5555"); 

限制允许连接到本地计算机的套接字,并应对大多数Windows防火墙配置禁用防火墙警告。

这篇关于如何抑制Windows防火墙的Windows安全警报?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆