帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Centos 6、7 操作系统中,如何开启或关闭ICMP协议

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

2019-01-23 21:38:55 8096

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

说在前面

说起ICMP这个协议,可能有些小伙伴对此有点陌生,不知道这个协议有什么作用,什么时候会用到? 但是如果说起ping ,和Tracert 这些检查网络连通性的命令,相信搞运维或者IT的大部分人会对这个比较熟悉。其实,ping以及Tracert这两个命令就是基于ICMP协议实现的。

ICMP的全称是 Internet Control Message Protocol ,从技术的角度来看,ICMP就是一个“错误侦测与回报机制”,这个协议在网络安全和网络连接健康状态的判断有着非常重要意义。今天我们的主要内容是说下,在在Centos 6和Centos 7 中,ICMP协议的开启与关闭的方法。对于ICMP安全方面的知识,例如ICMP网络攻击方面,本文不做讨论。

Centos 6、7 操作系统中,如何开启或关闭ICMP协议


说明

影响ping的主要有两方面因素:一个是内核参数,一个是防火墙规则配置。只有两个参数同时允许,才可以ping通,任意一个因素配置不被允许则不允许ping通。在centos 6 或者7中修改其实是没有什么差异的。


内核参数开启方法

# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
回显两种结果,0表示允许,1代表禁止。此处为1,继续执行下一步

Centos 6、7 操作系统中,如何开启或关闭ICMP协议


1.临时开启ping,则执行如下命令

# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all

Centos 6、7 操作系统中,如何开启或关闭ICMP协议


2.永久开启,执行命令:

# vim /etc/sysctl.conf 
 net.ipv4.icmp_echo_ignore_all=0 //增加这一行内容(如果此行已经存在,则确认后面参数为0)

:wq 保存退出配置文件

# sysctl -p //执行此命令使配置生效

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

永久开启,执行命令

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

sysctl -p

内核参数关闭ping方法

临时关闭执行:

# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all

永久关闭:

# vim /etc/sysctl.conf 
 net.ipv4.icmp_echo_ignore_all=1
# sysctl -p

防火墙规则

允许ping:

# iptables -I INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j ACCEPT

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

可以通过iptables -nvL查看防火墙规则

禁止ping

# iptables -I INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j DROP

最后测试,就可以ping通目标主机了

Centos 6、7 操作系统中,如何开启或关闭ICMP协议

测试ping百度为例


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: