问题描述:
ping是最常见的网络命令,用来测试和远程机器是否连通的方法。
我们常常会遇到一个问题:无法ping一台远程主机。
原因分析:
ping不通远程机器,最常见的原因有:
1、自己所在机器本身处于断网状态;
2、远程机器处于断网状态;
3、远程机器处于联网状态,但是屏蔽了ping命令。
解决方案:
如何判断是哪个原因导致ping不通呢?
-
首先排除情况1:自己所在机器本身处于断网状态
办法:使用ping命令测试是否和公网服务器相通。例如:
ping www.sina.com.cn -
其次排除情况2:远程机器处于断网状态
办法:通过其他手段登录到远程服务器,从服务器端ping公网服务器地址。 -
最后排除情况3:远程机器处于联网状态,但是屏蔽了ping命令
办法(以Linux服务器为例):
有些服务器从网络安全角度出发,会屏蔽ping命令,即屏蔽ICMP协议(ping是一个命令名,不是协议名称,其底层是利用ICMP协议实现的)。
Linux服务器有一个文件/proc/sys/net/ipv4/icmp_echo_ignore_all,当这个文件的内容是1时候,为允许ICMP协议,当为0时,为屏蔽ICMP协议。
解决方法很简单:
如果想打开ICMP协议:echo “1”>/proc/sys/net/ipv4/icmp_echo_ignore_all
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
如果想禁止ICMP协议:
echo “0”>/proc/sys/net/ipv4/icmp_echo_ignore_all
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
(命令行很简单,第一句话就是向文件写内容,第二句就是查看文件内容)
本文介绍了当遇到无法Ping通远程主机的问题时,如何逐一排查本地断网、远程主机断网及远程主机屏蔽Ping命令这三种常见原因,并提供了具体的解决步骤。
928





