一、ICMP协议简介
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
![](https://img.haomeiwen.com/i18988397/4671e4f34df6dd94.png)
二、ICMP协议的作用
在RFC,将ICMP 大致分成两种功能:差错通知和信息查询。
![](https://img.haomeiwen.com/i18988397/34d438247f93e453.png)
ICMP协议应用在许多网络管理命令中,下面以 ping 和 tracert 命令为例详细介绍 ICMP 协议的应用。
(1) ping 命令使用 ICMP 回送请求和应答报文
在网络可达性测试中使用的分组网间探测命令 ping 能产生 ICMP 回送请求和应答报文。目的主机收到 ICMP 回送请求报文后立刻回送应答报文,若源主机能收到 ICMP 回送应答报文,则说明到达该主机的网络正常。
(2)路由分析诊断程序 tracert 使用了 ICMP时间超过报文
tracert 命令主要用来显示数据包到达目的主机所经过的路径。通过执行一个 tracert 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息,并显示每个路径所消耗的时间。
三、服务器怎么开启/关闭ICMP协议
(1)Linux服务器
首先通过SSH登录服务器,相关命令如下
打开ICMP协议(取消禁PING)
echo "0">/proc/sys/net/ipv4/icmp_echo_ignore_all
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
关闭ICMP协议(禁PING)
echo "1">/proc/sys/net/ipv4/icmp_echo_ignore_all
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
(2)Windows服务器
一般通过mstsc远程登录Windows服务器,然后打开控制面板>系统和安全>Windows防火墙>高级设置
![](https://img.haomeiwen.com/i18988397/934b6fc7be185b35.png)
再点击“入站规则”,找到"文件和打印机共享(回显请求-ICMPv4-In)",鼠标右键“启用规则”,这样就打开了ICMP协议,外部PING命令可以得到服务器的回显请求,想要禁用ICMP协议的话用同样的方法禁用就可以了。
![](https://img.haomeiwen.com/i18988397/e021278537febe26.png)
参考链接:
https://www.cnblogs.com/iiiiher/p/8513748.html
https://baike.baidu.com/item/ICMP/572452?fromtitle=ICMP%E5%8D%8F%E8%AE%AE&fromid=421332&fr=aladdin
原文链接:https://www.senyun.net/news/content/79.html
网友评论