一、Ping 命令
1.Ping 命令用法和参数
Ping 命令的主要作用是检查网络的连通情况和检测网速。
在 Windows 的命令行中输入:
ping/?
会列出 ping 命令的命令格式还有参数的说明:
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [-j host-list]|[-k host-list] [-w timeout] [-R] [-S srcaddr] [-c comartment] [-p] [-4] [-6] target_name
这么多参数,看着有些迷糊,实际上,日常中最常使用的命令就是:
ping target_name
其中,target_name 代表着目标主机。
目标主机可以是域名,也可以是 IP 地址。
比如:
ping www.baidu.com
PS: 身边的很多朋友对我说,百度对于他们最大的作用就是用来检测网络是否畅通,在这里心疼百度3秒钟……
-t参数:
除了上面这个不带任何参数的命令,最常使用的参数应该是 -t,Windows 文档对于这个参数的说明是:
Ping 指定的主机,直到停止。
若要查看统计信息并继续操作,请键入 Ctrl+Break;
若要停止,请键入 Ctrl+C
也就是说,假如使用命令
ping www.baidu.com -t
或者
ping -t www.baidu.com
就会不间断地向 www.baidu.com 发送数据包,直到强迫其停止。
-a参数
将地址解析为主机名。
-n count参数
要发送的回显请求数
这个通俗一点说就是向目标 IP 发送数据包的次数,默认为 4 次。
如果使用下面的命令:
ping -n 10 www.baidu.com
就会向目标主机发送 10 次数据包之后自动停止。
-l size参数
发送缓冲区大小。
这个参数就是定义发送数据包的大小,默认为 32 字节 ,它最大可以定义到 65500 字节。
在相同的网络环境下,发送的数据包越大,得到的返回结果时间就越长。
利用这个也可以大概估算你的电脑现在的网速,网速 ≈ 发送的字节数/返回的时间(毫秒)。
PS: 由此可以引出另一个问题,那就是带宽和网速的关系。很多朋友家里牵的光纤50M或者100M,但实际下载速度却远没有那么高,这是为什么呢?其实原因很简单,50M 或者 100M 的带宽,指的是 50Mb 或者 100 Mb,而下载速度通常单位都是 MB。b 和 B 是两个不同的概念,B 指的是 Byte,b指的是bit,1 Byte = 8 bit。所以网速应该是带宽除以 8 的数值。
-f参数
在数据包中设置“不分段”标记(仅适用于 IPv4)。
-i TTL参数
生存时间。
-v TOS参数
服务类型(仅适用于IPv4。该设置已被弃用,对IP标头中的服务类型字段没有任何影响。)
-r count参数
记录计数跃点的路由(仅适用于 IPv4)。
发送的数据包都是经过一个一个路由来送达到目标主机的,这个参数就是查看经过了哪些路由,不过最多只能查看9个。
-s count参数
计数跃点的时间戳(仅适用于 IPv4)。
这个跟 -r 参数差不多,但是不记录数据包返回的路由,上限是 4 个。
-j host-list参数
与主机列表一起使用的松散源路由(仅适用于 IPv4)。
-k host-list参数
与主机列表一起使用的严格源路由(仅适用于 IPv4)。
-w timeout参数
等待每次回复的超时时间(毫秒)。
-R参数
同样使用路由标头测试反向路由(仅适用于 IPv6)。
根据 RFC 5095,已弃用此路由标头。
如果使用此标头,某些系统可能会丢弃回显请求。
-S srcaddr参数
要使用的源地址。
-c comartment参数
路由隔离舱标识符。
-p参数
Ping Hyper-V 网络虚拟化提供程序地址。
-4参数
强制使用 IPv4
-6参数
强制使用 IPv6。
2.Ping 命令返回值
下面是使用 ping www.baidu.com得到的返回值示例:
正在 Ping www.a.shifen.com [220.181.111.188] 具有 32 字节的数据:
来自 220.181.111.188 的回复: 字节=32 时间=13ms TTL=54
来自 220.181.111.188 的回复: 字节=32 时间=6ms TTL=54
来自 220.181.111.188 的回复: 字节=32 时间=6ms TTL=54
来自 220.181.111.188 的回复: 字节=32 时间=23ms TTL=54
其中字节 = 32 表示 ICMP 报文中有32个字节的测试数据,时间 = 13ms 表示的是往返时间。
上面所显示的是正常的返回值,还有一些时候返回的并不是这样的格式:
1. Request time out
这个有几种情况,一是目标主机关机或网络上没有这个地址;二是目标主机不在同一个网段内;三是对方的防火墙之类的设置过滤了ICMP数据包;四是本机 IP/ICP 设置有问题。
2. Destination host Unreachable
产生这个的原因:一是目标主机不在同一个网段内;二是与路由的连接出现了故障
3. Bad IP address
这表示没有连接到 DNS 服务器,无法对域名进行解析,或者是 IP 地址不存在。
4. Source quench received
这个信息比较特殊,它出现的机率很少。说明 ping 的服务器或 ping 的路由中由于繁忙无法回应;如果是直 ping,说明服务器有问题,比如网络故障或者服务器有病毒等;如果是多路由PING,还可能你 ping 的路由中间有网络故障或中转的路由器故障等。
5. Unknown host
这种出错信息的意思是,目标主机的名字不能被 DNS 服务器转换成 IP 地址,可能是域名服务器有故障,或者名字不正确,或者通信线路有故障。
6. No answer
说明能发送,但是不能接收。原因一是中心主机没有工作;二是网络配置不正确;三是路由器没有工作;四是通信线路有故障;五是存在路由选择问题。
7. no rout to host
网卡没有正常工作。
8. transmit failed,error code
网卡驱动不正常。
9. unknown host name
DNS配置错误。
3.使用 ping 命令检查网络通信故障的步骤:
- 使用 ipconfig /all 观察本地网络设置是否正确
- Ping 127.0.0.1。如果无法 Ping 通,则表明本地机 TCP/IP 协议不能正常工作
- 在局域网中,可以Ping 网关或本网IP地址,检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常。
- Ping公网IP地址,这主要是检查本机与外部的连接是否正常。
二、tracert命令
tracert也被称为Windows路由跟踪实用程序,使用tracert命令可以用于确定IP数据包访问目标时所选择的路径。
1.Tracert 命令的用法和参数
用法:
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
最常用的命令就是:
tracert target_name
其中target_name代表目标主机
-d 参数
不将地址解析成主机名。
-h maximum_hops 参数
搜索目标的最大跃点数。
默认为30,最大支持255。
-j host-list 参数
与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 参数
等待每个回复的超时时间(以毫秒为单位)。
-R 参数
跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 参数
要使用的源地址(仅适用于 IPv6)。
-4 参数
强制使用 IPv4。
-6 参数
强制使用 IPv6。
2.Tracert 命令的返回结果
例如使用命令:
tracert www.baidu.com
得到的返回结果:
通过最多 30 个跃点跟踪
到 www.a.shifen.com [61.135.169.125] 的路由:
1 5 ms 1 ms 1 ms www.routerlogin.com [10.0.0.1]
2 8 ms 2 ms 1 ms bogon [192.168.1.254]
3 * * * 请求超时。
4 7 ms 5 ms 9 ms bj141-158-205.bjtelecom.net [219.141.158.205]
5 13 ms 17 ms 8 ms bj141-162-181.bjtelecom.net [219.141.162.181]
6 * * * 请求超时。
7 48 ms 40 ms 34 ms 219.158.38.161
8 24 ms 18 ms 4 ms 219.158.6.33
9 34 ms 9 ms 7 ms 124.65.194.78
10 97 ms 96 ms 170 ms 124.65.63.218
11 42 ms 34 ms 14 ms 123.125.248.42
12 * * * 请求超时。
13 5 ms 5 ms 5 ms 61.135.169.125
跟踪完成。
- 最左面的1~13表明经过了13个路由节点可以到达百度的主机;不同的网络环境和不同的目标主机得到的数量可能会不同,默认最多跟踪30个路由节点,可以通过 -h 参数进行设置。
- 中间的三个以 ms 为单位的数字,表明连接到每一个节点的速度,返回的速度和多字连接返回的平均值,这个值有一定的参考性,但是不能作为主要的参考。
- 最后一排的 IP 就是路由节点的IP地址。
- * ,在第3,6,12行返回的是请求超时,这表明没有接收到返回值,有可能是节点路由做了过滤设置,也有可能是节点路由器有故障。
- 如果大量的*和请求超时,证明通讯是有故障的。