关于tracert命令的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于tracert命令的问题相关的知识,希望对你有一定的参考价值。

我看网上说用抓包的方式就能知道网关,可我运行了tracert命令后,出是出了很多IP,可没一个是网关,我的是能上网的,我只是想试试灵不灵,请问为什么我的不一致呢,而且还有个9是请求超时的?但我能上网

首先说网关问题。tracert的 第一跳就应该是网关,但是 一般情况下,内网NAT上网的用户 显示的是 公网IP 。所以你看到的可能不是你熟悉的网关信息。

然后在说 9个超时。

你测试的是不是一个域名,或者一个经过很多跳级的地址。这样的话 有可能 路由经过了 虚链路,或者 IDC网,或者允与线路 之类的。这些网的 路由是禁止ping的,所以你出现了timeout 。这是正常的。
参考技术A tracert的地址都是网关,第一跳就是你的默认网关。超时是对方路由器因为防火墙策略的关系没给你发包而已,但包转发的服务还是可用的。就像你可能ping不通一个网站但可以浏览它

tracert命令

  tracert命令用来查看跟踪路由,也就是可解析对访问某个地址的过程中的跳转路由地址,比如访问wikipedia,对我们中国来说weikipedia的服务器在国外,所以我们会经过多次的路由中转(跃点)才能到达其服务器,并访问其服务器上的资源。

  看了一下tracert - wikipedia,其中提到了Windows下tracert命令发送的不是UDP数据包,而是ICMP(Internet Control Message Protocol - Internet控制报文协议);Unix类系统的默认发送UDP数据包,随OS内部的实现不同而不同。

  测试windows下的tracert命令:

技术分享图片

  其中 in-addr.arpa 是 IPv4 的反向域名解析,可参考:.arpa,可看到图中的每一行前面的 ip 的反向域名为 ip 的反向,比如 1.1.168.192.in-addr.arpa ---> 192.168.1.1

  记得用套接字编写简单的聊天程序中用过 inet_addr() 函数进行ip地址的转化,而该函数在头文件#include <arpa/inet.h>中声明,这里的in-addr.arpa的原理应该与inet_addr一样。

  Linux下tracert命令使用的是traceroute。

以上是关于关于tracert命令的问题的主要内容,如果未能解决你的问题,请参考以下文章

Tracert有啥用途?

通过ping和tracert命令来判断网络经过多少个路由

通过ping和tracert命令来判断网络经过多少个路由

Tracert命令简介

ping和tracert命令的基本作用和用法?

tracert命令