【问题标题】:How to Disable access to localhost (internal network and internet)如何禁用对本地主机的访问(内部网络和互联网)
【发布时间】:2021-11-14 04:24:17
【问题描述】:

我想暂时阻止程序访问本地服务器“本地主机”(在 Windows 上),以便我可以测试随机断开连接的情况......我尝试向防火墙添加(规则)以禁用入站和出站所有网络类型,但程序刚刚被阻止访问互联网而不是本地网络

【问题讨论】:

  • 您使用的是什么操作系统?此外,如果您能详细介绍您的用例,那就太好了。我只能想到有更好解决方案的场景(比如 docker)。

标签: windows firewall windows-firewall windows-networking


【解决方案1】:

继续回答而不是发表评论 - 不过,非常感谢您提供有关您的用例的更多信息;

我认为不可能阻止对 localhost 的访问但允许访问 Internet。两个原因:

  • 网络在不同的层(“OSI 层”)上工作,并且 localhost 通信在防火墙可能过滤之前被环回(参见 参考资料)。不过不太确定。
  • localhost 通信可能是“基本”的,因为应用程序需要通过网络进行通信。

更新在 OP 评论后

我假设您使用的是 Windows 10,并且您知道要阻止的程序的可执行文件的路径。

  • 打开“具有高级安全性的 Windows Defender 防火墙”。
  • 在左侧,转到“出站规则”。
  • 然后,在右侧单击“新规则...”。
  • 将打开一个新窗口;选择“程序”并点击“下一步”。
  • “此程序路径:”旁边是一个“浏览...”按钮 - 在此处选择您的程序。点击“下一步...”
  • 选择“阻止连接”,然后选择“下一步...”。
  • 选择所有三个;域、私有和公共。
  • 点击“下一步...”后选择合适的名称,然后点击“完成”。
  • 从现在开始,您可以根据需要禁用/启用此规则。

【讨论】:

  • 对不起......我的意思是阻止本地和互联网......就像我说添加(Windows)防火墙规则只阻止互联网。
  • 如果您知道阻止互联网和本地的方法,请更新您的答案。
  • 我已经说过我试过了,这只会禁用对互联网的访问而不是本地主机。
  • 本地网络和本地主机之间存在巨大差异。我描述了您将如何阻止它访问本地网络(和互联网),因为您在之前的评论中说“我的意思是阻止本地和互联网”。 AFAIK 你不能阻止对本地主机的访问。
  • 我假设您当然是通过本地网络访问 localhost ......这有点奇怪,没有办法(完全隔离)程序访问(任何形式的)网络。跨度>
【解决方案2】:

仅凭您提供的信息很难提供详细的答案,但我认为可以通过简单的容器配置轻松测试这种情况:在容器中运行被测程序和“localhost”服务,您可以随机更新容器的网络配置来模拟连接问题。

【讨论】:

    【解决方案3】:

    您可以使用 Fiddler 之类的反向代理并阻止来自该应用程序的所有请求到 localhost。

    【讨论】:

      【解决方案4】:

      如果我明白你的意思,那么这将是: 要创建规则,请选择窗口左侧的入站规则或出站规则类别,然后单击右侧的创建规则链接。 Windows 防火墙提供四种类型的规则: 程序 – 阻止或允许程序。端口 – 阻止或允许端口、端口范围或协议。

      如果您使用带有内置防火墙的第三方防病毒解决方案,请转到防火墙选项并黑名单/禁用/阻止互联网访问您的应用

      否则,禁用防火墙不会阻止任何访问,因为它会允许入站和出站流量。您可以阻止特定端口,但禁用防火墙墙不仅会执行前面提到的操作,还会使您的设备容易受到在线威胁

      【讨论】:

        【解决方案5】:

        试试这 3 个简单的步骤。

        1. 运行你的程序
        2. 打开 cmd(请检查您是否需要管理员权限,如果是则以管理员身份运行)
        3. 运行以下命令查看 localhost 正在侦听的端口。

        netstat -ano |查找字符串:

        例如(如果您的本地主机正在侦听端口 3900,则命令如下;

        netstat -ano | findstr :3900

        结果将显示在 cmd 控制台上,最后一列是 PID(进程 ID) 我们将终止该进程,该进程最终将停止 localhost 服务器以侦听来自任何来源的任何请求。

        taskkill /PID /F

        ,您将从上述命令中获得。

        在这种情况下,只有 localhost 会停止它的服务,但您的应用程序将继续与外部网络 Internet 通信。

        【讨论】:

          猜你喜欢
          • 2017-11-22
          • 1970-01-01
          • 2016-11-06
          • 2015-02-12
          • 1970-01-01
          • 2013-09-19
          • 2017-03-04
          • 2019-10-02
          • 1970-01-01
          相关资源
          最近更新 更多