windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。相关的知识,希望对你有一定的参考价值。

windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。

参考技术A netsh advfirewall firewall set rule name="TEST" new remoteip=192.168.1.1,192.168.1.3,192.168.1.4-192.168.1.255

使用上述的例子进行添加,替换你需要的规则
参考技术B 技术有限只能关闭防火墙解决了 参考技术C netsh advfirewall firewall add rule name="AllowConnectIP"  protocol=TCP dir=in  remoteip="192.168.1.0/255.255.255.0,192.168.2.0/255.255.255.0"  action=allow

备注:

add rule name="AllowConnectIP"      :  添加的规则的名称

protocol=TCP                        :  使用的协议类型

dir=in                              :  添加的是入站规则,出站规则则是dir=out

remoteip=192.168.1.0/255.255.255.0  :  添加远程访问的IP,如果需要添加多个IP段,则需要将其用双引号括起来,并使用逗号分隔;

action=allow                        :  防火墙的动作,是允许还是拒绝

另外还有端口选项,更多选项可通过netsh advfirewall firewall add rule来查看

如何添加规则以阻止 chrome 或 firefox 等程序使用 Window 防火墙或 netsh advfirewall-C# 访问任何 IP 地址?

【中文标题】如何添加规则以阻止 chrome 或 firefox 等程序使用 Window 防火墙或 netsh advfirewall-C# 访问任何 IP 地址?【英文标题】:How to add rule to block program like chrome or firefox from accessing any Ip address using Window firewall or netsh advfirewall-C#? 【发布时间】:2021-11-04 09:34:11 【问题描述】:

我想使用 netsh advfirewall 防火墙添加一条规则,以阻止任何程序(如 chrome 或 firefox)访问特定 Ips?感谢您的帮助!!!

这是我尝试过的代码,但它不起作用。请指导我。

  ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = "/c netsh advfirewall firewall add rule name=Block inbound traffic from 192.168.0.2 over TCP port 4000 dir=in action=block program=C:/Program Files/Mozilla Firefox/Firefox.exe enable=yes protocol=TCP remoteip=192.168.0.2 profile=domain,private,public";
        startInfo.Verb = "runas";
        process.StartInfo = startInfo;
        process.Start();

【问题讨论】:

【参考方案1】:

我无法帮助您解决 netsh 的问题(也不知道您为什么从 C# 调用它),但 netsh 调用最明显的错误是 program=C:/Program Files/Mozilla Firefox/Firefox.exe 参数中缺少对空格的引用。由于空格被用作参数分隔符,它被解析为三个单独的参数,program=c:/ProgramFiles/MozillaFirefox/Firefox.exe。您可以在Arguments 描述中看到最简单的修复:在路径周围添加转义引号,即"... program=\"C:/Program Files/Mozilla Firefox/Firefox.exe\" ..."

其他建议:

AFAICS,你不需要cmd.exe来调用netsh,所以你可以简单地调用netsh.exe 为什么在路径中使用正斜杠?它适用于大多数东西,但不适用于所有东西,所以我建议使用反斜杠 \,因为这是 Windows 默认路径分隔符。 我推荐ArgumentList,而不是在一个字符串Arguments 中提供所有参数(并冒着被引用等微妙之处绊倒的风险)。

最后会是这样的:

  var startInfo = new ProcessStartInfo()
  
    WindowStyle = ProcessWindowStyle.Hidden,
    FileName = "netsh",
    ArgumentList =
    
      "advfirewall", "firewall",
      "add", "rule", "name=Block", "inbound", "traffic",
      "from", "192.168.0.2", "over", "TCP", "port", "4000", "dir=in", "action=block",
      @"program=C:\Program Files\Mozilla Firefox\Firefox.exe",
      "enable=yes",
      "protocol=TCP",
      "remoteip=192.168.0.2",
      "profile=domain,private,public",
    ,
    Verb = "runas",
  ;
  Process.Start(startInfo);

【讨论】:

感谢您的回复 我明白了您的意思,但我无法使用 ArgumentList,因为它显示错误 ProcessStartinfo does not contains definition of "ArgumentList",实际上我的 Windows 系统上有多个网络适配器。我想要firefox 或 chrome 使用特定的适配器因此我通过阻止 ip 尝试了上述内容,但我未能让我的浏览器访问特定的网络适配器。这必须以编程方式完成。

以上是关于windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。的主要内容,如果未能解决你的问题,请参考以下文章

win2008服务器 防火墙如何加ip地址的白名单

windows2008查看修改ip日志

win2008防火墙怎么设置开放特定端口

Windows Server 2008 IIS安装FTP

Windows批量添加和删除IP

如何在Windows Server 2008R2上面批量添加AD用户及自定义OU批量添加用户