ping命令是各种操作系统中经常会用到的一个网络命令,也是一个通信协议,主要用来测试目标主机的连通性,检查网络是否连通。
问题:那ping不通Linux系统服务器是什么原因呢?
总结:通过以下几种方式排查。
1:ping 127.0.0.1
127.0.0.1是本地循环地址,如果本地无法ping通,则表明本机地址TCP/IP不能正常工作。
解决方法:重启。(俗话说:技术的尽头是重启)
2:排查是否开着防火墙。(Windows系统防火墙开着会阻断ping协议)
3:ping本地的IP地址
ping本地主机IP,能通,表明网络适配器工作正常,不通则是网络适配器出现故障。
解决方法:禁用-启用,或者恢复默认设置。
4:Ping同网段计算机的IP
ping一台同网段计算机的IP,不通则表明网络线路出现故障;若网络中还包含有路由器,则应先Ping路由器在本网段端口的IP,不通则此段线路有问题;通则再Ping路由器在目标计算机所在网段的端口IP,不通则是路由出现故障;通则再Ping目的机IP地址。
解决方法:线路问题的话,这个就需要自己去排查哪一步出问题了。
5:ping 网址
若要检测一个带DNS服务的网络,在上一步Ping通了目标计算机的IP地址后,仍无法连接到该机,则可Ping该机的网络名,比如Ping www.baidu.com,正常情况下会出现该网址所指向的IP,这表明本地的DNS设置正确而且DNS服务器工作正常,反之就可能是其中之一出现了故障;同样也可通过Ping计算机名检测WINS解析的故障。
解决方法:配置dns就好了。
6:有些服务器从网络安全角度出发,会屏蔽ping命令,即屏蔽ICMP协议(ping是一个命令名,不是协议名称,其底层是利用ICMP协议实现的)。
Linux服务器有一个文件/proc/sys/net/ipv4/icmp_echo_ignore_all
,当这个文件的内容是0时候,为允许ICMP协议,当为1时,为屏蔽ICMP协议。
解决方法:
打开ICMP协议:
vim /proc/sys/net/ipv4/icmp_echo_ignore_all 编辑
cat /proc/sys/net/ipv4/icmp_echo_ignore_all 查看
(把0改为1则为禁止ICMP协议)