默认windows防火墙阻止ping,需启用入站规则fps-icmp4-erq-in:管理员运行powershell执行set-netfirewallrule -name "fps-icmp4-erq-in" -enabled true;若规则不存在则用new-netfirewallrule创建;同时确保对应网络配置文件的防火墙已启用。
默认情况下,windows 防火墙会阻止 icmpv4 echo request(即 ping 请求),所以远程主机执行 ping 会超时。要让本机响应 ping,关键不是“开启 ping 功能”,而是**启用防火墙中对应的入站规则**——用 powershell 可以一条命令完成,无需图形界面操作。
确认当前 Ping 规则状态
先检查系统是否已存在该规则,以及是否启用:
- 以管理员身份打开 PowerShell(右键“Windows PowerShell” → “以管理员身份运行”)
- 运行:
Get-NetFirewallRule -Name "FPS-ICMP4-ERQ-In*" | Select-Object Name,Enabled,Profile - 若返回空结果,说明规则不存在;若返回
Enabled : False,说明规则被禁用;True则已就绪
启用内置的 Ping 响应规则
Windows 自带名为 FPS-ICMP4-ERQ-In 的规则(全称:File and Printer Sharing (Echo Request - ICMPv4-In))。启用它即可:
- 执行命令:
Set-NetFirewallRule -Name "FPS-ICMP4-ERQ-In" -Enabled True - 该命令作用于所有网络配置文件(域、专用、公用),如需限定范围,可加参数:
-Profile Domain,Private - 执行后无需重启,立即生效。可用另一台机器
ping 本机IP验证
如果规则不存在,手动创建
极少数精简版或策略锁定系统可能删掉了该规则。此时可新建一条:
- 命令:
New-NetFirewallRule -DisplayName "Allow ICMPv4 Echo Request" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow -Enabled True -Profile Any - 说明:
-IcmpType 8对应 Echo Request;-Profile Any表示对所有网络类型生效 - 创建后同样可用
Get-NetFirewallRule -DisplayName "*ICMP*"确认
附加建议:确保防火墙本身未被全局关闭
即使规则启用,若防火墙服务被禁用,Ping 仍不响应:
- 检查防火墙状态:
Get-NetFirewallProfile | Select-Object Name,Enabled - 若某 Profile(如 Public)显示
Enabled : False,运行:Set-NetFirewallProfile -Profile Public -Enabled True - 注意:不建议关闭整个防火墙,仅调整规则更安全











