如何抑制 Windows 防火墙的 Windows 安全警报?
How to suppress the Windows Security Alert for Windows Firewall?
当我根据此处找到的 ZeroMQ 指南用 C++ 创建 Hello World 示例时:
http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall-Receive
和 运行 应用程序,我收到一个 Windows 安全警报,询问我是否愿意允许该应用程序在 public 或专用网络上进行通信。
看起来像这样:
这里是事情变得有趣的地方。
我只需要我的程序在端口 5555 上侦听来自本地主机的连接,我 NOT 需要允许端口 5555 上的传入连接。这是因为我只想通信在本地主机上的应用程序之间。
客户端和服务器都运行在同一台机器上。
这是我目前的流程。我启动服务器,出现 Windows 安全警报,因为我 运行 将应用程序设置为非管理员帐户,所以我只有标准权限。然后我单击警报上的取消。
在警报上单击取消会在 HelloWorldServer.exe 的所有端口上设置明确的拒绝入站规则。这完全没问题。
然后我启动客户端。由于客户端正在连接到本地主机。我实际上不需要在本地机器之外发送消息,它的所有消息都可以很好地到达服务器。
鉴于 HelloWorldServer.exe 传入连接的明确拒绝规则,消息仍然可以从本地主机上的客户端到达。这是一个理想的结果。
现在的问题是,是否可以自动响应 Windows 安全警报以单击取消?由于不需要 allow,有什么方法可以阻止它弹出吗?
该提示是不可取的,因为它暗示应用程序需要在不需要时创建漏洞。
请假设命名管道不是 tcp 作为进程间通信方式的有效替代方法。
绑定套接字时,调用者可以指定套接字绑定到的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 防火墙配置的防火墙警告静音。
当我根据此处找到的 ZeroMQ 指南用 C++ 创建 Hello World 示例时: http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall-Receive
和 运行 应用程序,我收到一个 Windows 安全警报,询问我是否愿意允许该应用程序在 public 或专用网络上进行通信。
看起来像这样:
这里是事情变得有趣的地方。
我只需要我的程序在端口 5555 上侦听来自本地主机的连接,我 NOT 需要允许端口 5555 上的传入连接。这是因为我只想通信在本地主机上的应用程序之间。
客户端和服务器都运行在同一台机器上。
这是我目前的流程。我启动服务器,出现 Windows 安全警报,因为我 运行 将应用程序设置为非管理员帐户,所以我只有标准权限。然后我单击警报上的取消。
在警报上单击取消会在 HelloWorldServer.exe 的所有端口上设置明确的拒绝入站规则。这完全没问题。
然后我启动客户端。由于客户端正在连接到本地主机。我实际上不需要在本地机器之外发送消息,它的所有消息都可以很好地到达服务器。
鉴于 HelloWorldServer.exe 传入连接的明确拒绝规则,消息仍然可以从本地主机上的客户端到达。这是一个理想的结果。
现在的问题是,是否可以自动响应 Windows 安全警报以单击取消?由于不需要 allow,有什么方法可以阻止它弹出吗?
该提示是不可取的,因为它暗示应用程序需要在不需要时创建漏洞。
请假设命名管道不是 tcp 作为进程间通信方式的有效替代方法。
绑定套接字时,调用者可以指定套接字绑定到的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 防火墙配置的防火墙警告静音。