麒麟OS需通过防火墙拦截ICMP请求以隐藏主机:firewalld用富规则拒绝指定局域网段ICMP,ufw可全局或按网段禁用,内核参数仅临时生效。

麒麟OS默认允许局域网内其他设备通过ICMP协议ping通本机,这会暴露主机在线状态并增加被扫描风险,必须通过防火墙规则主动拦截入站ICMP请求才能实现真正隐藏。
用firewalld永久拒绝局域网ICMP请求
该方法适用于银河麒麟V10桌面版与服务器版,利用firewalld富规则精准匹配源网段并丢弃ping包,规则持久化、不依赖图形界面。
第一步:确认当前默认区域名称,执行命令:sudo firewall-cmd --get-default-zone,通常返回public;若为trusted或internal,需先切换:sudo firewall-cmd --set-default-zone=public。
第二步:添加富规则,拒绝来自192.168.1.0/24网段的全部ICMP请求:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" protocol value="icmp" reject'。注意替换192.168.1.0/24为你实际使用的局域网子网,如10.0.0.0/8或172.16.0.0/12。
第三步:重载firewalld配置使规则生效:sudo firewall-cmd --reload。这一步不可省略,否则规则仅写入配置文件但未加载进运行时策略。
第四步:验证规则是否已激活:sudo firewall-cmd --list-rich-rules | grep icmp,输出应包含刚添加的那条规则。
用ufw快速封禁所有ICMP入站流量
如果你已启用ufw且习惯Debian系语法,此方法最简捷,适合桌面用户快速建立基础防护。
方法一:直接拒绝所有ICMP入站包
执行sudo ufw deny proto icmp。这条命令会立即拦截任何来源的ping请求,包括本机环回和局域网。
方法二:仅限制局域网ICMP(更精细)
执行sudo ufw deny from 192.168.1.0/24 to any proto icmp。同样请将192.168.1.0/24替换为你的实际子网。
【注意】若此前未设置默认入站策略,ufw可能仍放行ICMP——务必先执行sudo ufw default deny incoming再添加该规则,否则无效。
临时禁用ICMP(仅测试用)
当firewalld或ufw异常无法启用时,可直操作内核参数临时屏蔽,但重启即失效,仅作验证用途。
执行echo 1 | sudo tee /proc/sys/net/ipv4/icmp_echo_ignore_all。该命令将系统级ICMP响应开关设为关闭,此后所有ping请求均无回应。
若需恢复响应,执行echo 0 | sudo tee /proc/sys/net/ipv4/icmp_echo_ignore_all即可。











