ping
[root@51cto /]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) () bytes of data.
bytes from 61.135.169.121: icmp_seq= ttl= time=71.7 ms
bytes from 61.135.169.121: icmp_seq= ttl= time=72.1 ms
bytes from 61.135.169.121: icmp_seq= ttl= time= ms
bytes from 61.135.169.121: icmp_seq= ttl= time= ms
^C
--- www.a.shifen.com ping statistics ---
packets transmitted, received, % packet loss, time 3676ms
rtt min/avg/max/mdev = 71.735/99.181/133.310/27.659 ms
与Windows环境下ping不同,Linux环境下,如果不按Ctrl+C会一直ping下去。Windows ping只发4个数据包完事。
ttl生存时间,每过一个路由器ttl减一,ttl为0时就停止转发。这样可以防止数据包在网络上无限转发。
rtt代表往返时间
mdev代表(Mean Deviation)平均偏差,表示这些 ICMP 包的 RTT 偏离平均值的程度,这个值越大说明你的网速越不稳定。
-c 指定发送几个数据包
# ping 8.8.8.8 -c4
PING 8.8.8.8 (8.8.8.8) () bytes of data.
bytes from 8.8.8.8: icmp_seq= ttl= time=73.9 ms
bytes from 8.8.8.8: icmp_seq= ttl= time=82.1 ms
bytes from 8.8.8.8: icmp_seq= ttl= time= ms
bytes from 8.8.8.8: icmp_seq= ttl= time= ms --- 8.8.8.8 ping statistics ---
packets transmitted, received, % packet loss, time 3146ms
rtt min/avg/max/mdev = 73.913/103.372/137.647/26.263 ms
-i 指定等待几秒钟 发送一个ping包
-w ping命令执行时间,单位是秒
-t 指定数据包TTL
# ping 8.8.8.8 -t
PING 8.8.8.8 (8.8.8.8) () bytes of data.
From 192.168.80.2 icmp_seq= Time to live exceeded
From 192.168.80.2 icmp_seq= Time to live exceeded
From 192.168.80.2 icmp_seq= Time to live exceeded
From 192.168.80.2 icmp_seq= Time to live exceeded
From 192.168.80.2 icmp_seq= Time to live exceeded
^C
--- 8.8.8.8 ping statistics ---
packets transmitted, received, + errors, % packet loss, time 4261ms
通过设置ttl的值可以跟踪到目标地址的沿途路由器
-s 指定发送数据包大小,默认65字节
通过ping返回结果可以大概猜测对方是什么操作系统。如果主机A ping B,中间没有经过路由器,那么从ping返回结果上大概能猜出来B时windows还是Linux。Windows的ttl一般是128,linux的ttl一般是64。当然ttl可以在操作系统上设置,如果没设置的话,大概是可以猜出来对端是什么操作系统的。
traceroute
ping只能知道到目标主机之间的链路通还是不通,如果不通,并不知道具体是哪里断了。traceroute可以
如何安装traceroute参考方法二:【问题】This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
traceroute www.google.com
traceroute to www.google.com (216.58.211.228), hops max, byte packets
192.168.1.1 (192.168.1.1) 1.061 ms 1.709 ms 2.262 ms
* * *
10.103.5.41 (10.103.5.41) 41.594 ms 43.136 ms 44.617 ms
172.29.24.33 (172.29.24.33) 50.849 ms 51.574 ms 52.316 ms
(201.141.0.82) 2.705 ms 2.564 ms 2.680 ms
(201.118.231.14) 5.375 ms 5.126 ms 5.252 ms
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
* * *
traceroute工作原理?
通过发送一个UDP探测包,这个探测包带有很小的ttl,然后侦听来自网关的ICMP“超时”回复。开始时ttl为1,然后每次加1。每设置一个ttl值发送3个UDP探测包(用-q标志进行更改)。探测结果显示为一行,分别是网关,3次往返时间。如果在5秒之内,没有得到ICMP“超时”回复,每一个探测包用*表示(超时间隔用-w标志改变)。traceroute最多探测30个网关(使用-m标志增加最大跳数)。上面这个例子,我们最多只得到201.118.231.14的ICMP“超时”回复,后续节点直到最大跳数都没有回应ICMP数据包。