背景
在调试板子的网络,突然发现板子无法ping通开发机(出现request timed out,
),而电脑却可以ping通板子。
而scp、ssh以及nfs等工具却可以正常使用。
原理
找了一些资料,这是因为Ping是基于ICMP实现的,因此,当防火墙拦截了有关ICMP包以后,就会导致对端收不到ping的返回。
大多数Windows操作系统(包括桌面版和服务器版)默认都是只允许ping其他主机而不允许其他主机ping自己。
为什么有些主机会关闭ICMP?可能基于以下两种情况考虑:
1、ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。
2、向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理。
Windows电脑启动ICMP配置
控制面板(小图标)
-> Windwos Defender 防火墙
-> 高级设置
,入站规则
1、找到文件和打印机共享(回显请求 - ICMPv4-In)
2、右键,启用规则。
关于ICMPv4的入站规则有两条,分别对应防火墙的“域”和“专用,公用”(关于防火墙的“域”和“专用,公用”见附 1),根据需要启用即可。
附1:关于防火墙的“域”和“专用,公用”
- 域:一台或多台主机组成的局域网。
- 专用:只有本机可以使用。
- 公用:局域网内或者局域网外的其他主机也可以使用。
ref :