使用 Windows 7 防火墙阻止除 Chrome 之外的所有互联网流量

使用 Windows 7 防火墙阻止除 Chrome 之外的所有互联网流量

我正在尝试阻止除 Chrome 之外的所有互联网流量。我发现了许多文章概述了如何使用 Windows 防火墙执行此操作。我按照说明操作,但它只是阻止了所有内容(Chrome 不起作用)。我将所有配置文件中的传出连接设置为阻止。这会阻止所有内容。然后我创建了一个指定我的 chrome 可执行文件的传出规则。即使创建了此规则,它仍然会阻止所有内容,我甚至在我的日志中证实了这一点。我不确定我遗漏了什么。为了清楚起见,我正在尝试设置一个“拒绝除...之外的所有”配置,其中除规则中指定的流量外,所有流量(传入或传出)都被阻止。

答案1

  • 阻止所有传出流量:

    1. 使用 Windows 防火墙控制面板:打开控制面板 > 系统和安全 > Windows 防火墙。单击“Windows 防火墙属性”。将所有“出站连接”设置为“阻止”(默认为允许)。通过选择选项卡对所有配置文件执行此操作。单击下面的“应用”按钮以应用该防火墙状态。

    2. 使用命令提示符:以管理员身份运行此命令:

      netsh advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound

  • 允许系统和 Chrome:上述设置阻止所有连接,包括来自系统和 DNS 主机服务的连接。以管理员身份使用以下命令允许系统和 Chrome。让 Chrome 可执行文件的路径为“E:\Chrome\chrome.exe”。将其替换为您自己的路径。

    netsh advfirewall firewall add rule Name=System Program=System Action=allow Dir=Out
    netsh advfirewall firewall add rule Name=Chrome Program="E:\Chrome\chrome.exe" Action=allow Dir=Out
    
  • 删除 DNS 缓存服务:由于上述防火墙状态阻止 DNS 服务,应用程序无法发送 DNS 请求。因此,通过删除 DNS 缓存服务,您可以允许所有应用程序独立发送/接收 DNS 数据包。首先从注册表编辑器备份注册表"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache"。现在以管理员身份使用以下命令删除 DNS 缓存服务。

    sc.exe stop "Dnscache"
    sc.exe delete "Dnscache"
    reg.exe delete "HKLM\SYSTEM\CurrentControlSet\Services\Dnscache" /F
    

现在重新启动 PC 以使更改生效。请参阅此Netsh AdvFirewall 防火墙命令以供进一步阅读。

答案2

我尝试了各种设置,让它正常工作。通过使用 GUI 设置规则,它会将规则创建为“%USERPROFILE%\AppData\Local\Google\Chrome SxS\Application\chrome.exe”,但如果我使用绝对路径“c:\users ....”创建规则,它就会正常工作。我不需要对 DNS 进行任何操作,但我没有对现有的默认传出规则进行任何操作,所以也许它已经在那里了

我猜 GUI 有一个错误

答案3

您使用了错误的工具;Windows 防火墙在处理事情的方式上存在很多缺陷,包括没有基于优先顺序的规则。

尝试Comodo防火墙相反;这是一个可靠的、免费的基于应用程序的 Windows 软件防火墙,具有良好的 GUI 工具和默认配置,应该可以轻松地完成您想要的操作。

相关内容