Ping不通的原因分析

原文链接:https://segmentfault.com/a/1190000015104686

 

背景

简介

ping是常用的网络管理命令,ping也属于一个通信协议,是TCP/IP协议的一部分,适用于windows和linux以及unix
根据reply用来检查网络是否通畅&网络连接的速度(time)

主要是端对端的,针对目标ip或者目标网址

原理

给对端(目标ip)发一个数据包,对方就要返回一个同样大小的数据包,根据reply我们可以确定目标主机的存在
在windows的dos界面可以通过 ping/?来查看其参数含义

常用命令

-t 不间断给对方发包,除非ctrl+c 退出
-l 定义数据包包长,默认是32B 可设置最大包长为65500B

两个命令组合就可以进行一个小型的网络攻击,如果目标ip带宽比较小,持续攻击会导致目标主机挂掉

-----由此引申出防火墙。防火墙的功能之一就是过滤ping发出的ICMP数据包,防止被大流量攻击使系统瘫痪

ping不通的可能原因

常见原因

a) 对方关机/ip不存在
b) 网段不同,通过路由也无法找到
c) 防火墙设置,过滤了ping发出的ICMP数据包,导致无反馈,time out
d) Ip地址设置错误,对于多个网卡的服务器来说,每个网口的ip配置必须不能在同一个网段,否则会造成路由不知选择哪一个出口
e) 网线故障
f) 未设置网关,这个对于小网128网段,走路由器的,如果未配置将无法路由

常见排查方法

  1. ping –a 命令,可探测对方,将ip地址解析为主机名。如果存在,说明该主机ip存在,从而去检查防火墙是否关闭;
  2. ping 127.0.0.1 ,若无法ping通,则本地tcp/ip协议栈有问题

    • 若提示为:no route to host,则说明网卡不能正常工作
    • 若提示为:transmit failed error code,则说明网卡驱动有问题
    • 若提示为:time out 说明路由器中有该路由,但是由于其他原因导致包无法传送
    • 若提示为:destination host unreachable 说明路由器中无该路由

防火墙关闭:

firewall-cmd --state # 查看是否running
systemctl stop firewalld #停止firewall
systemctl disable firewalld #禁止firewall开机启动

参考:

  • centos6和centos7防火墙的关闭

工作中ping不通情况及解决方案

Ping时通时不通

  • Ip地址或者mac地址冲突

解决方法同上:烧写mac地址或者重新配置ip

Ping的通但是web、ssh 、kvm等登不上

  • 服务端口被关闭

测试方法:测试云中tenet ip 端口号,举例:

telnet ip 端口号

你可能感兴趣的:(网络)