要让服务器防火墙禁止其他设备 ping 自己,需阻止入站 ICMPv4 回显请求(类型 8):Windows 用 netsh 或图形界面添加入站阻止规则;CentOS 7/RHEL 7 用 firewalld 的 icmp-block 或富规则;注意云服务器还需检查安全组设置。

要让服务器防火墙禁止其他设备 ping 自己,核心是阻止入站 ICMPv4 回显请求(Echo Request,类型 8)。不同系统写法不同,关键在于“禁止响应”,而非“禁止发送”——你的服务器仍可主动 ping 别人。
Windows 服务器:禁用 ICMP 入站响应
方法一:命令行(推荐,快速生效)
以管理员身份打开 PowerShell 或 CMD,执行:
netsh advfirewall firewall add rule name="Block ICMPv4 Ping" protocol=icmpv4:8,any dir=in action=block
✅ 这条规则会明确拦截所有来自外部的 ping 请求(ICMP 类型 8),且优先级高于默认允许规则。
⚠️ 注意:不要用已弃用的 netsh firewall 命令(如 set icmpsetting 8 disable),它在 Win10/11 和 Server 2016+ 中不可靠或失效。
方法二:图形界面(适合单台调试)
- 运行
wf.msc打开「高级安全 Windows 防火墙」 - 左侧点「入站规则」→ 右键「新建规则」→ 选「自定义」
- 协议类型选 ICMPv4 → 点「设置」→ ICMP 类型填 8(回显请求),代码选「任何」
- 作用域保持默认(即所有远程 IP)
- 操作选「阻止连接」→ 名称填
Block-Ping-In→ 完成并启用
✅ 效果:其他机器
ping 服务器IP将显示“请求超时”,但服务器自身ping 外网仍正常。
宝塔Linux面板11.3.0下载宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
CentOS 7 / RHEL 7:用 firewalld 禁 ping
方式1:全局禁 ping(最常用)
# 查看当前活跃区域(通常是 public) firewall-cmd --get-active-zones # 对 public 区域永久禁 ping firewall-cmd --zone=public --add-icmp-block=echo-request --permanent # 重载配置生效 firewall-cmd --reload
方式2:富规则(精细控制,如只禁特定网段)
# 拒绝 192.168.2.0/24 网段 ping,其他放行(需配合允许规则) firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.0/24" icmp-block name="echo-request"' --permanent firewall-cmd --reload
✅ 验证:从客户端执行
ping 服务器IP,应无响应(超时);同时可运行firewall-cmd --list-all确认icmp-blocks: echo-request已存在。
补充说明
- 不是关闭防火墙:禁 ping 是策略控制,不影响 SSH、HTTP 等业务端口。
-
IPv6 要单独处理:若启用 IPv6,需额外加
--add-icmp-block=echo-requestforicmpv6,或使用firewall-cmd --add-icmp-block=echo-request --permanent --zone=public --runtime-to-permanent。 - 云服务器注意:阿里云、腾讯云等厂商的安全组(网络 ACL)可能也拦截 ICMP,需同步检查——防火墙规则生效的前提是流量先通过安全组。
不复杂但容易忽略。


















