在Windows 10和Windows 11上,你可以通过设置Windows防火墙来限制外网访问,同时保持局域网的访问不受影响。以下是具体操作步骤:

在Windows 10和Windows 11上,你可以通过设置Windows防火墙来限制外网访问,同时保持局域网的访问不受影响。以下是具体操作步骤:

方法 1:使用Windows防火墙设置限制

  1. 打开防火墙设置

    • 按 Win + R 打开运行对话框,输入 wf.msc 并按回车,打开“Windows 防火墙高级安全”窗口。
  2. 创建新的出站规则

    • 在左侧菜单中,选择“出站规则”。
    • 在右侧面板中,点击“新建规则”。
    • 选择“自定义”,然后点击“下一步”。
  3. 选择要阻止的程序或端口

    • 你可以选择要限制访问的特定程序,或选择阻止特定端口。
    • 例如,如果你想阻止所有外网访问,可以选择“所有程序”并继续。
  4. 设置阻止条件

    • 在“此规则应用于”的部分,选择“仅限此方向的连接”(即“出站连接”)。
    • 在规则操作选择页面,选择“阻止连接”。
  5. 配置规则

    • 在配置规则时,可以设置仅允许局域网通信。例如,可以通过设置仅允许局域网IP(如192.168.0.0/16)的地址范围来确保局域网的设备仍然能够互相通信。
    • 如果你要阻止的是所有的外网访问,确保没有选择允许外部IP范围,只有局域网IP(例如:192.168.x.x)。
  6. 完成并应用规则

    • 点击完成,完成设置后,你的Windows系统将限制外网的访问。

      使用 PowerShell 来自动化 Windows 防火墙规则的设置,以下是一个示例代码,它将创建一个出站规则,允许局域网(LAN)通信并阻止外部网络访问:

      PowerShell 脚本示例

      powershellCopy Code
      # 定义局域网 IP 范围
      $LANIPRange = "192.168.0.0/16"  # 根据需要修改为你的局域网 IP 范围
      
      # 创建出站规则:允许局域网通信
      New-NetFirewallRule -DisplayName "Allow LAN Traffic" -Direction Outbound -Action Allow -LocalAddress $LANIPRange -Profile Any -Enabled True
      
      # 创建出站规则:阻止外网通信
      New-NetFirewallRule -DisplayName "Block Internet Access" -Direction Outbound -Action Block -RemoteAddress "any" -Profile Any -Enabled True

      脚本解释

      1. 定义局域网 IP 范围

        • $LANIPRange 变量指定了允许访问的局域网地址范围。在此示例中,192.168.0.0/16 是一个常见的局域网 IP 范围,你可以根据你的实际局域网地址修改它。
      2. 允许局域网通信

        • New-NetFirewallRule 创建一个新的防火墙规则,允许指定局域网范围的通信。
        • -Direction Outbound 表示这是一个出站规则。
        • -Action Allow 表示允许符合条件的流量。
        • -LocalAddress $LANIPRange 指定局域网 IP 范围,确保只有该范围的设备可以通信。
      3. 阻止外网访问

        • 创建第二个规则来阻止所有出站流量访问外部网络。
        • -RemoteAddress "any" 表示所有外部 IP 地址。
        • -Action Block 表示阻止符合条件的流量。

      运行脚本

      1. 打开 PowerShell,确保以管理员身份运行。你可以右键点击 PowerShell 图标并选择“以管理员身份运行”。
      2. 复制并粘贴上面的代码到 PowerShell 窗口中,然后按回车执行。

      调试和验证

      • 执行后,你可以通过 Get-NetFirewallRule 命令来查看和验证这些防火墙规则是否已经成功创建。
      • 可以尝试访问外网网站,验证是否被阻止,同时在局域网中的设备应能正常互通。

      这样,你就通过 PowerShell 实现了对外网访问的限制,并允许局域网通信。

      CMD 批处理文件中自动化 Windows 防火墙规则的设置,创建出站规则以允许局域网通信并阻止外部网络访问,你可以使用 netsh 命令。netsh 是 Windows 提供的一个命令行工具,可以用来配置和管理网络设置,包括防火墙规则。

      下面是一个示例的批处理脚本,它可以实现你的要求:

      批处理脚本示例

      Copy Code
      @echo off
      REM 设置局域网 IP 范围
      set LAN_IP_RANGE=192.168.0.0/16
      
      REM 创建允许局域网通信的出站规则
      netsh advfirewall firewall add rule name="Allow LAN Traffic" dir=out action=allow remoteip=%LAN_IP_RANGE% profile=any enable=yes
      
      REM 创建阻止外部网络通信的出站规则
      netsh advfirewall firewall add rule name="Block Internet Access" dir=out action=block remoteip=any profile=any enable=yes
      
      echo 防火墙规则已成功设置
      pause

      脚本说明

      1. 定义局域网 IP 范围

        • set LAN_IP_RANGE=192.168.0.0/16 设置局域网 IP 地址范围。你可以根据自己的网络配置修改该范围。此示例中的 192.168.0.0/16 是一个常见的私有网络地址。
      2. 创建允许局域网通信的出站规则

        • netsh advfirewall firewall add rule name="Allow LAN Traffic" dir=out action=allow remoteip=%LAN_IP_RANGE% profile=any enable=yes 添加一个防火墙规则,允许通过指定的局域网 IP 范围(remoteip=%LAN_IP_RANGE%)的出站通信。
      3. 创建阻止外部网络通信的出站规则

        • netsh advfirewall firewall add rule name="Block Internet Access" dir=out action=block remoteip=any profile=any enable=yes 添加一个防火墙规则,阻止所有出站通信到任何外部网络(remoteip=any)。
      4. 完成提示

        • echo 防火墙规则已成功设置 用于输出成功设置防火墙规则的信息。
        • pause 用于暂停脚本执行,以便你可以看到命令行窗口中的输出。

      使用方法

      1. 将上述代码保存为 .bat 文件(例如:setup_firewall_rules.bat)。
      2. 右键点击批处理文件并选择“以管理员身份运行”,因为修改防火墙规则需要管理员权限。

      调试和验证

      • 你可以通过以下命令来查看防火墙规则是否已正确设置:

        Copy Code
        netsh advfirewall firewall show rule name="Allow LAN Traffic"
        netsh advfirewall firewall show rule name="Block Internet Access"
      • 尝试访问外网以验证外部网络访问是否被阻止,同时检查局域网中的设备是否可以正常通信。

      这样,你就可以通过批处理文件自动化防火墙规则的设置,允许局域网通信并阻止外部网络访问。

方法 2:使用网络共享和限制Internet访问

如果你有多个计算机,并且通过共享网络连接来上网,你可以通过以下方式来限制外网访问:

  1. 设置Internet共享

    • 你可以通过“网络共享中心”设置将Internet连接共享到局域网内的其他设备。
    • 通过这种方法,限制主机访问外网的同时,局域网内的其他计算机可能不会受影响。
  2. 配置路由器规则

    • 如果你有一个路由器,可以在路由器的防火墙或访问控制设置中,限制来自计算机的外网流量,但允许局域网流量。这样可以避免修改Windows设置,直接通过路由器控制。

方法 3:使用第三方软件

除了Windows自带的防火墙之外,你也可以使用第三方网络管理软件,如 NetLimiterGlassWire,这些软件可以让你精细地控制每个程序的网络访问,包括外网与局域网的区分。


通过这些方法,你可以有效地在Windows 10或11中实现限制外网访问,同时保持局域网通信不受影响。

posted @ 2024-12-01 09:59  suv789  阅读(308)  评论(0编辑  收藏  举报