ping命令的多种玩法,以前竟然只用它来测试网速!
作为开发人员,ping命令无疑是使用比较多的工具,我们经常在需要判断与服务器的连接是否连桶时需要使用ping命令来测试。
一般情况下使用ping命令来判断路由地址是否连通,再配合使用telnet判断该地址得网络端口是否能够完成请求。今天才发现一个简单的ping命令的使用竟然有这么多的妙用。
关于ping命令的作用这里就不多讲了,大家肯定都是经常用到。我们主要来说明一下ping命令执行以后的返回结果中的值都代表着什么样的意思,这往往是大家可能忽略的地方,最后再说明一下除了我们平常使用的ping命令如果给它带上一些不同的参数命令又会有什么不一样的效果。
上面这是一个我们经常使用的ping -t的命令使用它来一直请求服务器查看网络效果,使用它来查看一下返回值中的各个字段代表的含义是什么?
bytes 值:数据包大小,也就是字节。
time 值:响应时间,这个时间越小,说明你连接这个地址速度越快。
TTL 值:Time To Live, 表示 DNS 记录在 DNS 服务器上存在的时间,它是 IP 协议包的一个值,告诉路由器该数据包何时需要被丢弃。可以通过 Ping 返回的 TTL 值大小,粗略地判断目标系统类型是 Windows 系列还是 UNIX/Linux 系列。
通过一些返回的简单的结果判断就能判定一些基本的网络及服务器的情况,这也是ping命令的基本应用,接下来看看ping命令还有哪些其他重要的参数能够帮助我们查看一些重要的信息。
直接使用万能的--help命令来显示一下ping命令到底有哪些可以使用的参数来辅助我们,然后我们挑一些比较的常用的来进行说明并测试。
ping -t
-t参数的使用在前面的实例中已经使用到了,就是可以一直的向服务器发送请求,直到服务器被强制断开才行。一般使用ping -t参数一直访问服务器可以测试很长一段时间内的网络情况。
ping -n
ping命令在默认的情况下是发送四个数据包,上面如果使用ping -t命令的话可以一直发送数据包,但是想要发送一定数量的数据包并查看反悔了多少数据包。这个时候可以使用-n参数,自定义要发送多少个数据包然后查看返回的结果数量。
从结果来看,我们发送了10个数据包并且返回了10个数据包,在一定程度上也能说明网络情况。
ping -a
-a 解析计算机名与 NetBios 名,就是可以通过 ping 它的 ip 地址,可以解析出主机名。这样相当于通过具体的IP地址反向解析出了域名,一般在内网的多个虚拟服务器上使用起来比较方便。
一般在配置了网络访问的主机名称之后,通过-a参数才能解析出来。
ping -l
可以通过-l参数指定需要向服务器发送的数据包的大小来测试发送比较大的数据包时服务器的响应情况,因为默认情况下发送的数据包的大小只有32个字节在需要特殊验证的情况下不能说明问题。
在使用-l参数时,我们将发送的数据包的大小调整到了1000个字节可以明显的看出比发送默认的32个字节时响应速度慢了将近2-3ms。发送最大的数据包可以达到65500字节,当发送最大字节的数据包时直接会time out超时,说明我家里的网络还是有待提高。
ping -r
-r参数也是特别有意思,它可以完成对发送请求过程中的路由地址的跟踪从而达到一定的监听效果简单的排查网络在哪一个层面上出了问题,一般最多只能跟踪到9个路由地址,我们使用-n指定发送一个数据包并且跟踪了一下网关。