设置Windows防火墙以允许被ICMP Ping(两种配置方式)

背景与目的

Ping测试常被用于测试网络中两台主机之间是否互相连通,但是,大多数Windows操作系统(包括桌面版和服务器版)默认都是只允许ping其他主机而不允许其他主机ping自己。下面演示如何在Windows系统上开启基于ICMPv4协议的Ping.

操作环境

服务器1(进行防火墙配置的主机,使用图形化界面进行配置):操作系统:Windows 7专业版 64位 Service Pack 1, IP: 192.168.10.129

服务器2(进行防火墙配置的主机,使用命令行界面进行配置):操作系统:Windows Server 2008 R2 64位 Service Pack 1, IP: 192.168.10.133

客户机(发送Ping请求的主机):操作系统:Windows 10 家庭版 64位,IP: 10.195.222.16

不同操作系统的实际操作可能会略有不同,请以实际操作环境为准。

解决方案

图形化界面方式配置方案

搜索“防火墙”,打开“高级安全 Windows 防火墙”:

图 1 打开“高级安全 Windows 防火墙”
图 1 打开“高级安全 Windows 防火墙”

选中“入站规则”,找到使用”ICMPv4″的入站规则:

图 2 找到ICMPv4入站规则
图 2 找到ICMPv4入站规则

选中右键,点击“属性”:

图 3 打开入站规则的属性设置
图 3 打开入站规则的属性设置

默认操作是“允许连接”,因此这里勾选“已启用”后点击“应用”:

图 4 启用允许连接的ICMPv4入站规则
图 4 启用允许连接的ICMPv4入站规则

关于ICMPv4的入站规则有两条,分别对应防火墙的“域”和“专用,公用”(关于防火墙的“域”和“专用,公用”见附 1),根据需要启用即可。我在操作过程中将这两条入站规则都启用了,启用完成后在客户机上ping服务器显示可以ping通:

图 5 ping测试成功
图 5 ping测试成功

命令行界面配置方案

由于在Windows 7系统下setsh firewall 这个命令已经被弃用,因此,这里我使用Windows Server 2008进行操作。

允许被Ping, 命令:

netsh firewall set icmpsetting 8

禁止被Ping, 命令:

netsh firewall set icmpsetting 8 disable

附1:关于防火墙的“域”和“专用,公用”

  • 域:一台或多台主机组成的局域网。
  • 专用:只有本机可以使用。
  • 公用:局域网内或者局域网外的其他主机也可以使用。