Windows系统由于安全考虑,当开启防火墙时,默认不允许外主机对其进行ping功能,即别的电脑ping不通本机。别的主机ping不通本机是因为本机的防火墙关闭了ICMP回显功能,只要把回显功能打开就行了。今天我们探讨下如何开启或者关闭Windows系统服务器ICMP回显功能。
以管理员身份运行CMD,输入以下命令:
1 2 3 4
| #开启ICMP回显: netsh firewall set icmpsetting 8 #关闭ICMP回显: netsh firewall set icmpsetting 8 disable
|
当运行以上命令时提示 “netsh firewall” 已弃用 (如下图):
其实,此消息表示 Tableau Server 正在使用较旧的命令与防火墙进行通信。这个消息本身只意味着通知开发人员较旧的 netsh firewall 命令已替换为较新的 netsh advfirewall firewall 命令。 但是,netsh firewall 仍然是一个有效的命令。该消息可以放心地忽略,因为它指示命令成功完成,并不指示错误。当然,下面也列出了netsh advfirewall firewall命令的使用方法。
1 2 3 4 5
| #开启ICMP回显 #IPv4 netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow #IPv6 netsh advfirewall firewall add rule name="ICMP Allow incoming V6 echo request" protocol=icmpv6:8,any dir=in action=allow
|
同样道理,如果想禁止Ping,那运行如下命令即可实现:
1 2 3 4 5
| #关闭ICMP回显 #IPv4 netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=block #IPv6 netsh advfirewall firewall add rule name="ICMP Allow incoming V6 echo request" protocol=icmpv6:8,any dir=in action=block
|
注意:
当你使用netsh advfirewall firewall命令开启ICMP回显,并在开启后又使用netsh advfirewall firewall命令关闭了ICMP回显,可能会存在一个问题,netsh advfirewall firewall命令本质上是在windows防火墙中自定义了一条新的规则,而windows防火墙中的规则是存在优先级的,显式阻止规则将优先于任何冲突的允许规则,也就是说当你定义了关闭ICMP回显的规则之后,即便你再次使用netsh advfirewall firewall命令添加了开启ICMP回显的规则,还是会出现ping不通的情况,原因就是关闭ICMP回显规则的优先级要高于开启ICMP回显规则的优先级,解决方法就是可以手动更改禁用规则或者删除规则,下面介绍一下更改禁用规则的命令。
1 2 3 4 5
| #将'关闭ICMP回显'规则更改为'开启ICMP回显' #IPv4 netsh advfirewall firewall set rule name="ICMP Allow incoming V4 echo request" new action=allow #IPv6 netsh advfirewall firewall set rule name="ICMP Allow incoming V6 echo request" new action=allow
|
如果想要再次禁用ping可以使用下面的命令:
1 2 3 4 5
| #将'开启ICMP回显'规则更改为'关闭ICMP回显' #IPv4 netsh advfirewall firewall set rule name="ICMP Allow incoming V4 echo request" new action=block #IPv6 netsh advfirewall firewall set rule name="ICMP Allow incoming V6 echo request" new action=block
|