【问题标题】:How do I block a loopback connection to some port on Windows?如何阻止与 Windows 上某个端口的环回连接?
【发布时间】:2015-08-15 21:00:29
【问题描述】:

为本地端口 80 和地址 ANY、127.0.0.1 或 0.0.0.0 添加入站 Windows 防火墙规则(通过 C++ 的 COM)不会阻止本地浏览器访问在端口 80 上运行的本地 Web 服务器。用于调试/测试目的,我需要模拟在同一台计算机上运行的两个程序之间的网络连接丢失。有没有办法以编程方式、在命令行上或使用工具来执行此操作?

在这个问题中,他们说据称在 Windows 防火墙中没有办法做到这一点:

How do I block localhost connections with the Windows 7/2008R2 firewall?

除了 Windows 防火墙之外,还有其他方法可以模拟同一台计算机上运行的程序之间的网络连接丢失吗?

【问题讨论】:

  • 我会尝试不通过 127.0.0.1 来寻址您自己的计算机,而是通过它的真实 (LAN) IP 地址。真实 IP 和环回的处理通常通过非常不同的路径进行,因此您可能能够通过真实 IP 阻止您的连接,尽管您仍然在同一台机器上。另请注意,通过防火墙,您只能模拟一种类型的连接丢失(很可能是“黑洞”式丢失)。
  • 使用“网络丢失模拟器代理”可能更容易,它侦听端口 A,随机丢弃数据包并将其余数据包转发到端口 B。将您的网络浏览器指向端口 A,并将网络服务器配置为B港。
  • 也许在一对虚拟机中运行程序?

标签: c++ windows tcp network-programming loopback


【解决方案1】:

WIPFW -- FreeBSD 的 IPFW 的 Windows 端口。但是,我未能阻止本地主机连接。也许你会有更多的运气。

或者,您可以尝试破解。如果您的程序使用localhost 主机名而不是直接通过 127.0.0.1 IP 地址建立连接,您可以更改您的hosts file 以将localhost 名称指向某个不存在或无法访问的地址。

【讨论】:

    猜你喜欢
    • 2019-09-04
    • 2014-01-15
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 2011-03-28
    • 2015-09-19
    相关资源
    最近更新 更多