ping丢包以及ping不通网络诊断
当客户端访问目标服务器出现 ping 丢包或 ping 不通时,可以通过 tracert 进行链路测试来判断问题来源。本文先介绍了进行链路测试的相关工具,然后对测试结果分析及测试步骤进行了说明。
WIndows下tracert工具
TRACERT (Trace Route) 是 Windows 自带的网络诊断命令行实用程序,可跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。
用法: tracert (选项) (参数)
选项:
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
参数
主机:指定目的主机IP地址或主机名。
比如,主机与www.baidu.com这个网址通信会出现什么结果呢?
示例:tracert www.baidu.com
通过以上测试,我们发现可以到达目的地。中间的*号是某些路由器的一些策略性舍弃。属于正常情况。
Linux下traceroute 命令行工具
traceroute 是几乎所有 Linux 发行版本预装的网络测试工具,用于跟踪 Internet 协议(IP)数据包传送到目标地址时经过的路径。
traceroute 先发送具有小的最大存活时间值(Max_TTL)的 UDP 探测数据包,然后侦听从网关开始的整个链路上的 ICMP TIME_EXCEEDED 响应。探测从 TTL=1 开始,TTL 值逐步增加,直至接收到ICMP PORT_UNREACHABLE 消息。ICMP PORT_UNREACHABLE 消息用于标识目标主机已经被定位,或命令已经达到允许跟踪的最大 TTL 值。
traceroute 默认发送 UDP 数据包进行链路探测。可以通过 -I 参数来指定发送 ICMP 数据包用于探测。
用法:
traceroute(选项) (参数)
常见可选项说明:
-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-F 设置不要分段标识。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网卡送出数据包。用于主机有多个网卡时。
-I 使用ICMP数据包替代 UDP 数据包进行探测。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称(禁用 DNS 反查)。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回包时间。
-x 开启或关闭数据包的正确性检验。
参数
主机:指定目的主机IP地址或主机名。
比如,主机与www.google.com.hk这个网址通信会出现什么结果呢?
示例:traceroute -I www.google.com.hk
输出截图:
我们发现从起始点出发,最后到了124.65.194.97北京 联通,这个IP后,之后的所有都是*号了,出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。也就是说最后我们没有到达目的地。说明我们被关进小黑屋了。什么原因大家懂得......
菜鸟一枚,权当分享交流学习。说的不好,欢迎大佬批评指正。
- 点赞
- 收藏
- 关注作者
评论(0)