我想阻止一个程序访问本地服务器"本地主机"(在windows上)暂时的,所以我可以测试随机断开的情况…我试着在防火墙中添加一个(规则)来禁用所有网络类型的入站和出站,但程序只是被阻止访问互联网而不是本地网络
继续回答而不是评论——尽管如此,我们还是希望能提供更多关于您的用例的信息;
我认为这是不可能阻止访问本地主机,但允许互联网访问。两个原因:
- 网络在不同的层("OSI层")上工作,本地主机通信在防火墙可能过滤之前被循环回去(见)。不过我不太确定。
- 本地主机通信可能是"基本的";当应用程序想要通过网络进行通信时,这种方式是必要的。
更新OPs注释后
我假设你使用的是Windows 10,并且你知道你想要阻止的程序的可执行文件的路径。
- 打开"Windows Defender Firewall with Advanced security"。
- 在左侧选择"出站规则"。
- 然后,在右侧单击"新建规则"。
- 将打开一个新窗口;离开"Program">
- 程序路径:"是一个按钮"浏览…"-在这里选择你的项目。单击"Next…">
- 选择"阻止连接",然后选择"下一步…"。
- 选择所有三个;域名,私有和公共。
- 点击"Next…"选择合适的名称,然后单击"完成"。
- 从现在开始,您可以根据需要禁用/启用此规则。
仅根据您提供的信息很难提供详细的答案,但我认为这种情况可以通过简单的容器配置轻松测试:同时具有被测程序和"localhost";服务运行在容器中,你可以随机更新容器的网络配置来模拟连通性问题。
您可以使用Fiddler之类的反向代理来阻止来自此应用程序到localhost的所有请求。
如果我明白你的意思,那么这样做:要创建规则,请选择窗口左侧的入站规则或出站规则类别,然后单击右侧的创建规则链接。Windows防火墙提供了四种类型的规则:程序-阻止或允许程序。端口-阻止或允许一个端口、端口范围或协议。
如果你使用的是带有内置防火墙的第三方防病毒解决方案,请转到防火墙选项并将应用程序列入黑名单/禁用/阻止互联网访问
否则,禁用防火墙不会阻止任何访问,因为它将允许入站和出站流量。您可以阻止特定的端口,但禁用防火墙不仅会做前面提到的事情,而且还会使您的设备容易受到在线威胁
试试这3个简单的步骤。
- 运行程序
- 打开cmd(请检查您是否需要管理员权限,如果是,则以管理员身份运行)
- 运行以下命令查看本地主机正在侦听哪个端口。
netstat -ano | findstr:
e。g(如果您的本地主机正在监听端口3900)命令如下;
netstat -ano | findstr:3900
结果将显示在cmd控制台中,最后一列是PID(进程id)我们将终止该进程,该进程将最终停止本地主机服务器侦听来自任何源的任何请求。
taskkill/PID/F
& lt;PID在你将从上面的命令得到。
在这种情况下,只有本地主机会停止它的服务,但您的应用程序将继续与外部网络,internet通信。