windows@网络防火墙@软件联网控制@netsh advfirewall firewall

时间:2022-12-26 18:51:33

ref

打开防火墙控制面板

常用部分

限制某个软件联网

  • 主要是限制指定软件发送请求(出站请求(outbound Request))来实现组织软件主动联网
    • 所谓的(就是主机host,一般可以理解为计算机)

利用命令行操作

powershell

netsh

权限说明

  • 执行防火墙配置,需要管理员权限
  • 因此,您应当使用管理员方式打开一个终端,以便后续操作可以顺利执行

新增防火墙规则

  • netsh advfirewall firewall add rule ?

    • Usage: add rule name=<string>
            dir=in|out
            action=allow|block|bypass
            [program=<program path>]
            [service=<service short name>|any]
            [description=<string>]
            [enable=yes|no (default=yes)]
            [profile=public|private|domain|any[,...]]
            [localip=any|<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
         .............
      
    • 自行输入上述命令查阅文档

  • 例如:禁止火狐浏览器联网

    • PS D:\Program Files\Mozilla Firefox> netsh advfirewall firewall add rule dir=out action=block program="D:\Program Files\Mozilla Firefox\firefox.exe" name="blockFirefox" description="createByNetsh"  enable=yes
      Ok.
      
防火墙规则命名建议
  • 通常,不建议建立两个同名的规则,应为防火墙配置命令是通过规则名字来区分规则,如果同名,可能会造成副作用

查看已有的防火墙规则

  • Usage: show rule name=<string>
          [profile=public|private|domain|any[,...]]
          [type=static|dynamic]
          [verbose]
    
    Remarks:
    
          - Displays all matching rules as specified by name and optionally,
            profiles and type. If verbose is specified all matching rules are
            displayed.
    
    Examples:
    
          Display all dynamic inbound rules:
          netsh advfirewall firewall show rule name=all dir=in type=dynamic
    
          Display all the settings for all inbound rules called
          "allow browser":
          netsh advfirewall firewall show rule name="allow browser" verbose
    
  • 查看已知的某个具体防火墙规则配置(比如我想查看名为blockfirefox)的防火墙规则

    • netsh advfirewall firewall show rule name=blockfirefox
      
    • Rule Name:                            blockFirefox
      ----------------------------------------------------------------------
      Enabled:                              No
      Direction:                            Out
      Profiles:                             Domain,Private,Public
      Grouping:                             
      LocalIP:                              Any
      RemoteIP:                             Any
      Protocol:                             Any
      Edge traversal:                       No
      Action:                               Block
      
      Rule Name:                            blockFirefox
      ----------------------------------------------------------------------
      Enabled:                              No
      Direction:                            Out
      Profiles:                             Domain,Private,Public
      Grouping:                             
      LocalIP:                              Any
      RemoteIP:                             Any
      Protocol:                             Any
      Edge traversal:                       No
      Action:                               Block
      Ok.
      
      
      • 上面出现了两条规则的详情,是因为我有两条规则重名了
      • 通常,如果匹配到多条规则,就应该小心,这种情况下,建议使用wf.mscGUI程序修改其中的一条规则为新的名字
  • 列举并查看所有已存在的防火墙规则配置

    • netsh advfirewall firewall show rule name=all
      

修改已有防火墙规则

  • 例如

    • PS C:\Users\cxxu\Desktop> netsh advfirewall firewall set rule name="blockFirefox" new enable=no
      
      Updated 2 rule(s).
      Ok.
      

利用GUI操作

文档参考

具体操作

  • windows@网络防火墙@软件联网控制@netsh advfirewall firewall

  • windows@网络防火墙@软件联网控制@netsh advfirewall firewall

  • windows@网络防火墙@软件联网控制@netsh advfirewall firewall

  • 注意,最后一步的名字最好取的清楚一点(只要自己能够认出这个规则是干什么的就行)

    • 这样便于找到创建的规则进行修改/删除
    • 为了便于称呼,把刚才创建的名字记为RE(上例中RE=blockSublimeText)

取消控制/禁用

  • 如果需要回复被禁止联网的软件,可以回到防火墙出站设置界面,找到RE,右键规则,进行禁用/启用规则

第三方软件控制

  • 例如第三方杀毒软件或者管家,卫士,提供的联网控制功能,甚至可以控制分配给每个软件的带宽
  • 但是可能引入额外的开销,所以如果追求简单轻量,使用自带的防火墙来控制基本的软件联网是不错的选择