背景
简介
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网段,走路由器的,如果未配置将无法路由
常见排查方法
- ping –a 命令,可探测对方,将ip地址解析为主机名。如果存在,说明该主机ip存在,从而去检查防火墙是否关闭;
- 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开机启动
参考:
工作中ping不通情况及解决方案
Ping时通时不通
- Ip地址或者mac地址冲突
解决方法同上:烧写mac地址或者重新配置ip
Ping的通但是web、ssh 、kvm等登不上
- 服务端口被关闭
测试方法:测试云中tenet ip 端口号,举例:
telnet ip 端口号