使用 netsh advfirewall firewall 命令
添加应用程序的防火墙规则
设置程序是否可以通过防火墙的基本语法如下:
netsh advfirewall firewall add rule name=“规则名称” dir=in|out(入站规则|出站规则) action=allow|block|bypass enable=yes|no
其中的参数含义如下:
name:是规则名称,必须是唯一,不能是all。
dir:是指方向,in 表示入站,out 表示出站。
action:是对规则的操作,allow 表示允许连接,block 表示阻止连接,bypass 表示只允许安全连接。
enable:是否启用规则,默认为 yes 。
除了上面可以指定的基本参数外,还可以指定下面的一些参数:
localip:源IP地址。
remoteip:远程IP地址。
localport:指定本地端口。可以指定端口号,默认为 any,表示任何端口。
remoteip:远程地址。
protocol:协议类型 。默认为 any,可以指定 tcp、udp、icmp等等。
可以在命令提示符下输入 netsh advfirewall firewall add rule /?
来获取更详细的帮助。
添加端口的防火墙规则
使用如下命令添加一个端口规则,将本地端口的 80 开放:
netsh advfirewall firewall add rule name="规则名称" dir=in action=allow protocol=TCP localport=80
#仅允许192.168.184.128可以ping通本机网卡的192.168.184.132地址
注意一点:虚拟机如果是net网卡,那就不能用物理机的网卡去ping,只能用物理机的VMnet8这块网卡的ip地址ping
netsh advfirewall firewall add rule name=ping dir=in action=allow localip=192.168.184.132 remoteip=192.168.184.128 protocol=icmpv4:8,0
两台主机如果想要通信,没有路由的情况下,需要满足两个条件:
1、从物理层面他们的两张网卡得在一个网络环境当中
2、从逻辑层面两张网卡的IP地址得配置成同一个网络的IP地址
删除规则
下面是删除某一个规则的方法:
netsh advfirewall firewall delete rule name="规则名称"
删除规则时,如果只指定规则名称,那么将删除所有符合名称的规则,如果有多个相同名称的规则,可以添加其他的限定条件来筛选。